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

Team Calendars cannot display Jira Issue events when there are special characters in the Jira Description on Jira 9.x

    XMLWordPrintable

Details

    • 9
    • 58
    • Severity 2 - Major
    • 121
    • Hide
      Current status

      Jira 9.4 backport notice

      The fix has been released in Jira 9.9.

      The fix will also be released in upcoming Jira 9.4.10 release.

      Last updated on Sep 1, 2023.

      Show
      Current status Jira 9.4 backport notice The fix has been released in Jira 9.9. The fix will also be released in upcoming Jira 9.4.10 release. Last updated on Sep 1, 2023.

    Description

      Issue Summary

      After upgrading Jira 9.x, Jira events cannot be displayed (or partially displayed*) on the Team Calendars if the Jira ticket has special characters in its 'Description' field.

      This problem occurs when the issue description area contains an enter character followed by a semicolon. It does not matter if additional characters exist between enter and semicolon characters. The bug can easily be reproducible when using only one entered character followed by a semicolon in the description area of the issues. However other special characters can cause the same issue which has not been identified yet.

      Jira events are fetched to TC in batches. So, if one of the Jira tickets has a problematic character in its 'Description' field, all the events fetched in this batch are failed to be loaded in the UI. This explains why some of the tickets appear intermittently while moving back and forth through months in the calendar.

      This is reproducible on Data Center: yes

      Steps to Reproduce

      1. Instal Confluence and Jira (tested with Confluence 7.19.3/TC 7.3.21 and all Jira 9.x versions - 9.0.0, 9.1.1, 9.2.0, 9.3.1)
      2. Create Application Links between them.
      3. Create a Kanban project on the Jira
        I used TP1 for my project key. So the following steps will use this project key.
      4. Add the 'Due Date' field for the 'Story' issue type.
      5. Create a 'Story' issue
        • Add today's date for the 'Due Date' field
        • Add the below text for the 'Description' field:
          ||title-1|lorem ipsum|
          ||title-2|dummy; text|
          ||title-3| * lorem ipsum
           * dummy text|
          ||title-4|lorem ipsum: dummy text
          dolor sit|
          
      6. Save the issue.
      7. Navigate to Confluence and create a Calendar there.
      8. Click the button near the newly created calendar's name
      9. Click 'Add Event'
        1. Choose 'Jira Issue Dates' for 'Event Type'
        2. Select the relevant Jira server (it may automatically be chosen)
        3. Give a name to this event
        4. Choose JQL and enter the below JQL query:
          project = TP1 AND issuetype = Story
          
      10. Choose 'Issue Due Date' from the 'Single Date' column that is displayed after entering the JQL query.
      11. Save the event.

      Expected Results

      The event should be displayed on the Team Calendars for the chosen 'Due Date' while creating the Jira Story issue.

      Actual Results

      The event is not visible on the Team Calendars UI.

      If the DEBUG log is enabled for the com.atlassian.confluence.extra.calendar3 class the below error can be seen in the Confluence logs:

      2022-11-11 13:19:47,566 WARN [http-nio-48090-exec-9 url: /rest/calendar-services/1.0/calendar/events.json; user: admin] [extra.calendar3.calendarstore.CalendarContentCacheLoader] load Could not load calendar content from cache key. Please enable DEBUG mode to see the error detail.
       -- referer: https://confluence.acme.com/calendar/mycalendar.action | url: /rest/calendar-services/1.0/calendar/events.json | traceId: 799cbb8899340289 | userName: admin
      2022-11-11 13:19:47,566 DEBUG [http-nio-48090-exec-9 url: /rest/calendar-services/1.0/calendar/events.json; user: admin] [extra.calendar3.calendarstore.CalendarContentCacheLoader] load Could not load calendar content from cache key because of:
       -- referer: https://confluence.acme.com/calendar/mycalendar.action | url: /rest/calendar-services/1.0/calendar/events.json | traceId: 799cbb8899340289 | userName: admin
      net.fortuna.ical4j.data.ParserException: Error at line XXX:Expected [YY], read [ZZ]
      	at net.fortuna.ical4j.data.CalendarParserImpl.assertToken(CalendarParserImpl.java:475)
      	at net.fortuna.ical4j.data.CalendarParserImpl.access$700(CalendarParserImpl.java:56)
      	at net.fortuna.ical4j.data.CalendarParserImpl$ParameterParser.parse(CalendarParserImpl.java:346)
      	at net.fortuna.ical4j.data.CalendarParserImpl$ParameterParser.access$1900(CalendarParserImpl.java:324)
      	at net.fortuna.ical4j.data.CalendarParserImpl$ParameterListParser.parse(CalendarParserImpl.java:319)
      	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.parse(CalendarParserImpl.java:255)
      	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.access$1100(CalendarParserImpl.java:230)
      	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:216)
      	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.parse(CalendarParserImpl.java:435)
      	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.access$900(CalendarParserImpl.java:411)
      	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:214)
      	at net.fortuna.ical4j.data.CalendarParserImpl.parseCalendar(CalendarParserImpl.java:118)
      	at net.fortuna.ical4j.data.CalendarParserImpl.parseCalendarList(CalendarParserImpl.java:184)
      	at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:153)
      	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:183)
      	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:171)
      	at com.atlassian.confluence.extra.calendar3.calendarstore.DefaultJiraAccessor.getCalendarFromEndPoint(DefaultJiraAccessor.java:540)
      

      Workaround

      For the above example the semicolon (;) character is causing this parse error:

      ||title-2|dummy; text|
      

      After removing this character, the issue can be visible on the Team Calendars UI.

      Attachments

        Issue Links

          Activity

            People

              e7591db3c7db Antoni Kowalski
              9f7de485df51 Basar Beykoz
              Votes:
              32 Vote for this issue
              Watchers:
              54 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: