-
Bug
-
Resolution: Fixed
-
Highest
-
4.4.0, 4.4.1, 4.4.2, 3.16.11, 3.16.8
-
None
-
4
-
Severity 1 - Critical
-
Issue Summary
If a Service Desk ticket contains mentions of other tickets in public comments, a customer won't be able to open this ticket if this user does not have access to the mentioned tickets, and will see a blank page.
The issue can also occur when hyperlinks to other sites are mentioned in either the ticket summary or ticket description
Steps to reproduce
- Install Service Desk 4.4.2
- Create a new Service Desk project
- Create a customer account in this project (let's call the user customer1)
- Create 2 tickets in the Service Desk project:
- 1 ticket that customer1 has access to, by being the reporter or a participant (let's call this ticket BASICSD-2)
- 1 ticket that customer1 does not have access to (let's call this ticket BASICSD-3)
- Log into Jira as an agent
- Open BASICSD-2, add a new public comment and include the internal URL of the issue BASICSD-3 (<JIRA_BASE_URL>/browse/BASICSD-3) in the comment
- Log into the customer portal as the user customer1
- Go to My Requests, and click on the request BASICSD-2
Expected results
The request BASICSD-2 should be opened in the customer portal.
Actual results
- The request BASICSD-2 can't be opened and the following happens:
- the ticket shows as a blank screen and a 500 error is thrown in the UI
- the following error is thrown in the Jira logs:
2019-10-18 10:03:12,746 http-nio-8080-exec-10 ERROR xxxxxx XXXxXXXXxX ubczia XXX.XX.XX.XX /servicedesk/customer/portal/1/ABC-123 [o.a.c.c.C.[.[localhost]..[default]] Servlet.service() for servlet [default] threw exception java.lang.NullPointerException at java.util.regex.Matcher.appendReplacement(Matcher.java:804) at com.atlassian.servicedesk.internal.feature.customer.request.UrlReplacer.replace(UrlReplacer.java:41) at com.atlassian.servicedesk.internal.feature.customer.request.IssueUrlConverterImpl.replaceIssueUrlsWithPortalRequestUrls(IssueUrlConverterImpl.java:71) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerTextRendererImpl.updateCustomerTextIntertal(CustomerTextRendererImpl.java:165) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerTextRendererImpl.updateTextForCustomer(CustomerTextRendererImpl.java:150) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerTextRendererImpl.renderComment(CustomerTextRendererImpl.java:84) at com.atlassian.servicedesk.internal.feature.customer.request.activitystream.responses.ActivityResponseManagerImpl.buildCommentResponse(ActivityResponseManagerImpl.java:96) at com.atlassian.servicedesk.internal.feature.customer.request.activitystream.responses.ActivityResponseManagerImpl.getResponse(ActivityResponseManagerImpl.java:72) at
- the ticket shows as a blank screen and a 500 error is thrown in the UI
- In some situations, requests on the portal won't be shown at all:
Workaround
2 possible workarounds:
- Remove the URL <JIRA_BASE_URL>/browse/BASICSD-3) from the comment added to BASICSD-2
- Add the impacted user (customer1) as a participant of the request BASICSD-3