Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-40792

missing gadget list in dashboard

    XMLWordPrintable

Details

    • Support Request
    • Resolution: Handled by Support
    • Low
    • None
    • 6.3.7
    • None

    Description

      http://myhost/rest/config/1.0/directory.json results.

      {"categories":[{"name":"JIRA"},{"name":"Confluence"},{"name":"Fisheye/Crucible"},{"name":"Crowd"},{"name":"Clover"},{"name":"Bamboo"},{"name":"Admin"},{"name":"Charts"},{"name":"Wallboard"},{"name":"Other"}],"gadgets":[]}
      

      And gadget list is empty.

      I tried to use "strace" to find some further errors.

      It contains the following failure messages.

      • Step 1 : recv http requests.
        11125 recvfrom(742, "GET /rest/config/1.0/directory.json HTTP/1.1\r\nHost: xxxxxxxx\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: ko-kr,ko;q=0.8,en-us;q=0.5,en;q=0.3\r\nAccept-Encoding: gzip, deflate\r\nCookie: doc-sidebar=300px; mywork.tab.tasks=false; JSESSIONID=27D7916FE89F23CBF15BCEB8D1D372E9; atlassian.xsrf.token=A4V3-MN8W-MG5H-SC1H|e769f5ad0ee086eab7d86fc52012fd68aaf768d8|lin\r\nX-Forwarded-For: 10.100.4.152\r\nX-Forwarded-Host: xxxxxxxx\r\nX-Forwarded-Server: xxxxxxxx\r\nConnection: Keep-Alive\r\n\r\n", 8192, 0, NULL, NULL) = 624
        
      • Step 2: read data from 316 fd. this fd points,
        root@xxxx:/atlassian/x# ls -al /proc/10784/fd | grep 316
        lr-x------ 1 jira jira 64 11월 12 10:30 316 -> /atlassian/jira-home/plugins/.osgi-plugins/transformed-plugins/jira-gadgets-plugin-6.3.7_1411492110000.jar
        
        11125 lseek(316, 741952, SEEK_SET <unfinished ...>
        11125 <... lseek resumed> )             = 741952
        11125 read(316,  <unfinished ...>
        11125 <... read resumed> "\1\332\21%\356<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Module>\n    <ModulePrefs title=\"__MSG_gadget.labels.dashboard.name__\" directory_title=\"__MSG_gadget.labels.dashboard.name__\" description=\"__MSG_gadget.labels.dashboard.description__\"\n                 author=\"Atlassian\" author_affiliation=\"Atlassian\" author_location=\"Sydney, Australia\" height=\"100\"\n                 screenshot='#staticResourceUrl(\"com.atlassian.jira.gadgets:labels-gadget\", \"labels-screenshot.png\")'\n                 thumbnail='#staticResourceUrl(\"com.atlassian.jira.gadgets:labels-gadget\", \"labels-thumb.png\")'>\n        <Optional feature=\"gadget-directory\">\n            <Param name=\"categories\">JIRA</Param>\n        </Optional>\n        <Require feature=\"setprefs\" />\n        <Require feature=\"settitle\"/>\n        <Require feature=\"dynamic-height\"/>\n        <Require feature=\"views\" />\n        <Optional feature=\"atlassian.util\" />\n        <Optional feature='auth-refresh' />\n        <Require feature=\"oauthpopup\" />\n        #oauth\n        #supportedLocales(\"gadget.common,gadget.labels\")\n    </ModulePrefs>\n    <UserPref name=\"isConfigured\" datatype=\"hidden\" default_value=\"false\" />\n    <UserPref name=\"projectid\" datatype=\"hidden\" />\n    <UserPref name=\"fieldId\" datatype=\"hidden\" />\n    <UserPref name=\"refresh\" datatype=\"hidden\" default_value=\"false\" />\n    <Content type=\"html\">\n        <!-- use of requireContext below is to invoke batching of files -->\n<![CDATA[\n\n#requireContext(\"com.atlassian.jira.gadgets:common-lite\")\n#requireResource(\"com.atlassian.jira.gadgets:g-labels\")\n#includeResources()\n\n    \n\n<script type=\"text/javascript\"> \n(function() {\n\n    AJS.Gadget({\n        baseUrl: \"__ATLASSIAN_BASE_URL__\",\n        useOauth: \"/rest/gadget/1.0/currentUser\",\n        config: {\n            descriptor: function (args) {\n                var gadget = this;\n\n                return {\n                    action: \"/rest/gadget/1.0/labels/gadget/configuration/validate\",\n                    theme : function () {\n                                    if (gadgets.window.getViewportDimensions().width < 450){\n                                        return \"gdt top-label\";\n                                    } else{\n                                        return \"gdt\";\n                                    }\n                                }(),\n                    fields: [\n                        AJS.$.extend(true, {}, AJS.gadget.fields.projectPicker(gadget, \"projectid\", args.options), {\n                            description: gadget.getMsg(\"gadget.labels.dashboard.projectid.name\")\n                        }),\n                        {\n                            userpref: \"fieldId\",\n                            label: gadget.getMsg(\"gadget.labels.field.name\"),\n                            description: gadget.getMsg(\"gadget.labels.field.description\"),\n                            type: \"select\",\n                            selected: gadget.getPref(\"fieldId\"),\n                            options: args.labelFields.labelFields\n                        },\n                        AJS.gadget.fields.nowConfigured()\n                    ]\n                };\n            },\n            args : [\n                {\n                    key: \"options\",\n                    ajaxOptions: \"/rest/gadget/1.0/filtersAndProjects?showFilters=false\"\n                },\n                {\n                    key: \"labelFields\",\n                    ajaxOptions: \"/rest/gadget/1.0/labels/gadget/fields\"\n                }\n            ]\n        },\n        view: {\n            enableReload: true,\n            onResizeReload: true,\n            template: function(args) {\n                var gadget = this;\n                gadget.getView().attr(\"id\", \"labels-content\");\n                gadget.getView().html(args.labelsGroupHtml);\n\n                gadget.getView().addClass(\"g-labels\");\n\n                gadgets.window.setTitle(AJS.format(\"__MSG_gadget.labels.title__\", AJS.$(\"input[name='fieldName']\").val(), AJS.$(\"input[name='projectName']\").val()));\n\n                gadgets.window.adjustHeight();\n            },\n            args: [{\n                key: \"labelsGroupHtml\",\n                ajaxOptions: function() {\n                    return {\n                        type: \"GET\",\n                        url: \"/rest/gadget/1.0/labels/gadget/\" + this.getPref(\"projectid\") + \"/\" + this.getPref(\"fieldId\") + \"/groups\",\n                        dataType: \"html\",\n                        data: {}\n                    };\n                }\n            }]\n        }\n    });\n})();\n</script>\n        ]]>\n    </Content>\n</Modul", 4572) = 4572
        
      • Step 3: If failed, in xml validation...
        11125 write(2, "[Fatal Error] :19:95622: An invalid XML character (Unicode: 0x1c) was found in the element content of the document.\n", 116) = 116
        11125 write(1, "2014-11-12 10:23:42,857 http-bio-8080-exec-8 WARN kihyoon 623x1513x1 1ub1dbf 10.100.4.152,127.0.0.1 /rest/config/1.0/directory.json [directory.internal.impl.DirectoryImpl] Could not retrieve directory entries from application-provided gadget specs: plugin gadget 'Key{pluginKey='com.atlassian.jira.gadgets', location='gadgets/labels-gadget.xml'}' failed validation\n", 365) = 365
        11125 write(267, "2014-11-12 10:23:42,857 http-bio-8080-exec-8 WARN kihyoon 623x1513x1 1ub1dbf 10.100.4.152,127.0.0.1 /rest/config/1.0/directory.json [directory.internal.impl.DirectoryImpl] Could not retrieve directory entries from application-provided gadget specs: plugin gadget 'Key{pluginKey='com.atlassian.jira.gadgets', location='gadgets/labels-gadget.xml'}' failed validation\n", 365) = 365
        

      Please fix it.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              c50882642501 Kihyun Yun
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: