Details
-
Bug
-
Resolution: Timed out
-
Low
-
7
-
Minor
-
Description
Issue Summary
next-gen Board unable to load, due to corrupted workflow
An invalid XML character (Unicode: 0x8) was found in the value of attribute “name” and element is “action”. (line:147 col:27)
The above causes two Problems
#Problem 1 - The Board is unable to load
#Problem 2 - The issues within the Project returns 500 Internal Server Error
Steps to Reproduce
- Go to a next-gen project's board
- Add a column that has an escaped character in there written in plain text. E.g. "\btest" where \b represents the backspace key.
- Create the column and delete the column
- Repeat steps 2-3 until an error occurs. (sometimes ones will do)
- We now have a corrupted workflow and our board is broken (refresh the page)
Expected Results
No error, non-corrupted board, backslash should be removed or escaped
Actual Results
corrupted board and corrupted workflow
Note
Via REST to the Board, you can see the error caused by the \b which is a unicode character (Unicode: 0x8)
- https://<instance>.atlassian.net/rest/agile/1.0/board/<board-id>/configuration
{"id":23,"name":"TB2 board","type":"simple","self":"https://<instance>.atlassian.net/rest/agile/1.0/board/23/configuration","location":{"type":"project","key":"TB2","id":"10026","self":"https://<instance>.atlassian.net/rest/api/2/project/10026","name":"Test Board 2"},"filter":{"id":"10029","self":"https://<instance>.atlassian.net/rest/api/2/filter/10029"},"columnConfig":{"columns":[{"name":"To Do","statuses":[{"id":"10088","self":"https://<instance>.atlassian.net/rest/api/2/status/10088"}]},{"name":"In Progress","statuses":[{"id":"10089","self":"https://<instance>.atlassian.net/rest/api/2/status/10089"}]},{"name":"Done","statuses":[{"id":"10090","self":"https://<instance>.atlassian.net/rest/api/2/status/10090"}]},{"name":"\bREVIEW","statuses":[{"id":"10091","self":"https://<instance>.atlassian.net/rest/api/2/status/10091"}]}],"constraintType":"none"},"ranking":{"rankCustomFieldId":10011}}
#Problem 1
Caused by: java.lang.NullPointerException
at com.atlassian.jira.bc.config.DefaultConstantsService$IsStatusVisible.findMoreStatuses(DefaultConstantsService.java:217)
at com.atlassian.jira.bc.config.DefaultConstantsService$IsStatusVisible.apply(DefaultConstantsService.java:205)
at com.atlassian.jira.bc.config.DefaultConstantsService.isStatusVisible(DefaultConstantsService.java:110)
at com.atlassian.jira.bc.config.DefaultConstantsService.getStatusById(DefaultConstantsService.java:73)
at com.atlassian.jira.rest.v2.issue.StatusResource.getStatus(StatusResource.java:123)
... 397 more
Error returned as a result of Duplication
error: {"graphQLErrors":[{"message":"Cannot return null for non-nullable type: 'Boolean' within parent 'Column' (/boardScope/board/columns[1]/isDone)","path":["boardScope","board","columns",1,"isDone"],"extensions":{"applicationError":null,"statusCode":null}},{"message":"Cannot return null for non-nullable type: 'Boolean' within parent 'Column' (/boardScope/board/columns[1]/isInitial)","path":["boardScope","board","columns",1,"isInitial"],"extensions":{"applicationError":null,"statusCode":null}}],"networkError":null,"message":"GraphQL error: Cannot return null for non-nullable type: 'Boolean' within parent 'Column' (/boardScope/board/columns[1]/isDone)\nGraphQL error: Cannot return null for non-nullable type: 'Boolean' within parent 'Column' (/boardScope/board/columns[1]/isInitial)","name":"SwagError"}
The below exception is thrown in the Stack trace - Caused by :
#Problem 2:
Caused by: com.opensymphony.workflow.FactoryException: Error converting XML to workflow descriptor. at com.atlassian.jira.workflow.WorkflowUtil.createWorkflowDescriptor(WorkflowUtil.java:280) at com.atlassian.jira.workflow.WorkflowUtil.convertXMLtoWorkflowDescriptor(WorkflowUtil.java:236) ... 442 more Caused by: org.xml.sax.SAXException: An invalid XML character (Unicode: 0x8) was found in the value of attribute "name" and element is "action". (line:75 col:27) at com.opensymphony.workflow.loader.WorkflowLoader$WorkflowErrorHandler.fatalError(WorkflowLoader.java:129) at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source) at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at com.atlassian.jira.workflow.WorkflowUtil.createWorkflowDescriptor(WorkflowUtil.java:276) ... 443 more
Workaround
Contact Support for a fix