-
Bug
-
Resolution: Fixed
-
Low
-
7.5.0
-
7.05
-
1
-
Severity 3 - Minor
-
Summary
Displaying Jira issue that is linked to restricted epic will cause permitions issue in Confluence Jira issue macro if in display option "Epic Name" is used.
Environment
- Confluence 6.4.1
- Jira 7.5.0
Steps to Reproduce
- Create application link and user directory link with Confluence and Jira.
- create two tickets on Jira (TICKET-01, TICKET-02)
- create an epic on Jira (EPIC-01)
- assign one of the tickets (TICKET-01) to the epic
- make sure the user does not have access permissions to the epic
- go to Confluence, use and configure Jira Issue Macro to filter both tickets
- make sure that JiraIssuesMacro uses / displays "epic name" field
- make the user open the Confluence page containing the Jira Issue Macro
Expected Results
- Jira Issue Macro is able to handle lack of permissions for EPIC-01
- no error is presented by the UI
- no stacktrace is logged in the Confluence application logs
- TICKET-02 is still listed by the macro alongside with TICKET-01 and with the epic name
Actual Results
The below exception is thrown in the atlassian-confluence.log file:
2018-01-23 11:26:18,658 ERROR [JIM Marshaller:thread-2286] [confluence.extra.jira.JiraIssuesMacro] executeRest ResponseExceptionException -- url: /display/space/title | page: 81725357 | traceId: 55bde6fe5ebdbf3a | userName: username | referer: https://confluence/pages/resumedraft.action?draftId=81725360&draftShareId=a49a8c31-40f4-4ddb-acf9-2efe2a0\\ com.atlassian.sal.api.net.ResponseStatusException: Unexpected response received. Status code: 403 at com.atlassian.applinks.core.auth.ApplicationLinksStringReturningResponseHandler.handle(ApplicationLinksStringReturningResponseHandler.java:16) at com.atlassian.applinks.core.auth.ApplicationLinksStringReturningResponseHandler.handle(ApplicationLinksStringReturningResponseHandler.java:13) at com.atlassian.applinks.oauth.auth.OAuthApplinksReturningResponseHandler.handle(OAuthApplinksReturningResponseHandler.java:48) at com.atlassian.plugins.rest.module.jersey.JerseyRequest$2.handle(JerseyRequest.java:134) at com.atlassian.sal.core.net.HttpClientRequest.executeAndReturn(HttpClientRequest.java:104) at com.atlassian.plugins.rest.module.jersey.JerseyRequest.executeAndReturn(JerseyRequest.java:131) at com.atlassian.applinks.core.auth.ApplicationLinkRequestAdaptor.executeAndReturn(ApplicationLinkRequestAdaptor.java:53) at com.atlassian.applinks.oauth.auth.OAuthRequest.executeAndReturn(OAuthRequest.java:84) at com.atlassian.applinks.core.auth.AbstractApplicationLinkRequest.execute(AbstractApplicationLinkRequest.java:114) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.executeRest(JiraIssuesMacro.java:639) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.getEpicInformation(JiraIssuesMacro.java:775) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.populateTableEpicData(JiraIssuesMacro.java:695) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.populateContextMapForStaticTable(JiraIssuesMacro.java:889) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.createContextMapFromParams(JiraIssuesMacro.java:423) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.execute(JiraIssuesMacro.java:1141) at com.atlassian.confluence.extra.jira.executor.StreamableMacroFutureTask.renderValue(StreamableMacroFutureTask.java:86) at com.atlassian.confluence.extra.jira.services.DefaultAsyncJiraIssueBatchService$2.call(DefaultAsyncJiraIssueBatchService.java:212) at com.atlassian.confluence.extra.jira.services.DefaultAsyncJiraIssueBatchService$2.call(DefaultAsyncJiraIssueBatchService.java:201) at com.atlassian.sal.core.executor.ThreadLocalDelegateCallable.call(ThreadLocalDelegateCallable.java:38) at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:87) at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:71) at com.atlassian.confluence.vcache.VCacheRequestContextOperations.lambda$withRequestContext$1(VCacheRequestContextOperations.java:59) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) 2018-01-23 11:26:18,659 ERROR [JIM Marshaller:thread-2286] [extra.jira.helper.JiraExceptionHelper] throwMacroExecutionException Macro execution exception: -- url: /display/space/title | page: 81725357 | traceId: 55bde6fe5ebdbf3a | userName: username | referer: https://confluence/pages/resumedraft.action?draftId=81725360&draftShareId=a49a8c31-40f4-4ddb-acf9-2efe2a0\\ java.lang.IllegalStateException: Not a JSON Object: null at com.google.gson.JsonElement.getAsJsonObject(JsonElement.java:90) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.parseCustomField(JiraIssuesMacro.java:820) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.getEpicInformation(JiraIssuesMacro.java:776) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.populateTableEpicData(JiraIssuesMacro.java:695) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.populateContextMapForStaticTable(JiraIssuesMacro.java:889) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.createContextMapFromParams(JiraIssuesMacro.java:423) at com.atlassian.confluence.extra.jira.JiraIssuesMacro.execute(JiraIssuesMacro.java:1141) at com.atlassian.confluence.extra.jira.executor.StreamableMacroFutureTask.renderValue(StreamableMacroFutureTask.java:86) at com.atlassian.confluence.extra.jira.services.DefaultAsyncJiraIssueBatchService$2.call(DefaultAsyncJiraIssueBatchService.java:212) at com.atlassian.confluence.extra.jira.services.DefaultAsyncJiraIssueBatchService$2.call(DefaultAsyncJiraIssueBatchService.java:201) at com.atlassian.sal.core.executor.ThreadLocalDelegateCallable.call(ThreadLocalDelegateCallable.java:38) at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:87) at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:71) at com.atlassian.confluence.vcache.VCacheRequestContextOperations.lambda$withRequestContext$1(VCacheRequestContextOperations.java:59) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748)
Notes
Issue is not present in Jira 7.5.3
Workaround
Upgrade to latest version of Jira or 7.5.3