Issue Summary
For unknown reasons, if a clustered environment has a null progress id on the AO_8542F1_IFJ_PRG_IN_PRG table, then users will not be able to run Assets imports
This seems to impact multi-node, or clustered, environments only.
This is a similar to JSDSERVER-15076 but it seems there is an issue a bit further down the line.
Steps to Reproduce
Unknown at this time
Expected Results
A Null Progress ID in the AO_8542F1_IFJ_PRG_IN_PRG table should not be present.
Actual Results
When null is present, in the atlassian jira logs we observed the following exception:
2025-05-12 14:55:07,704+0200 https-jsse-nio-8443-exec-16 WARN 895x29889x1 1qm1dt0 /rest/insight/1.0/global/config/object [c.r.j.p.i.s.c.dal.impl.ProgressDalImpl] Unable to assemble ProgressInProgress from AO. Ignoring this record. ProgressInProgress ID: 167
java.lang.NullPointerException: Cannot invoke "String.split(String)" because "cacheKey" is null
at com.riadalabs.jira.plugins.insight.services.progress.model.ProgressId.newInstanceFromCacheKey(ProgressId.java:75)
at com.riadalabs.jira.plugins.insight.services.core.dal.impl.ProgressDalImpl.assembleProgressInProgress(ProgressDalImpl.java:452)
at com.riadalabs.jira.plugins.insight.services.core.dal.impl.ProgressDalImpl.findAllProgressInProgress(ProgressDalImpl.java:190)
at com.riadalabs.jira.plugins.insight.services.progress.ProgressServiceBase.findAllInProgressProgressCategories(ProgressServiceBase.java:512)
at com.riadalabs.jira.plugins.insight.channel.web.api.configuration.GlobalConfigurationServiceInJira.appendSpecificConfig(GlobalConfigurationServiceInJira.java:54)
at io.riada.insight.services.GlobalConfigurationServiceImpl.getInsightGlobalConfigModel(GlobalConfigurationServiceImpl.java:123)
at com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.globalconfiguration.GlobalConfigurationResource.getConfigForObjectSchema(GlobalConfigurationResource.java:105)
2025-05-12 16:57:08,805 [insight-InsightThreadGroup-worker-thread-8] {Id=40, Name=xxx, Type=rlabs-import-type-json, jira.username=xxx} | Error importing from import source: 40 (rlabs-import-type-json))
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "com.riadalabs.jira.plugins.insight.services.core.dal.dao.activeobjects.ProgressInProgressAO.getProgressId()" is null
at com.riadalabs.jira.plugins.insight.services.core.dal.impl.ProgressDalImpl.lambda$getCountOfImportsAheadOfProgressId$0(ProgressDalImpl.java:204) ~[insight-20.3.5-REL-0001.jar:?]
at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) ~[?:?]
at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source) ~[?:?]
at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source) ~[?:?]
at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
at java.util.stream.ReferencePipeline.findFirst(Unknown Source) ~[?:?]
at com.riadalabs.jira.plugins.insight.services.core.dal.impl.ProgressDalImpl.getCountOfImportsAheadOfProgressId(ProgressDalImpl.java:206) ~[insight-20.3.5-REL-0001.jar:?]
Workaround
Delete the null entry from the AO_8542F1_IFJ_PRG_IN_PRG table
DELETE from "AO_8542F1_IFJ_PRG_IN_PRG" where "PROGRESS_ID" is null;
Versions Tested
Please confirm all versions that have been tested for this issue, and indicate whether the tested version is affected or not affected, below:
Testing Requirements |
Version |
Affected Version |
Customers Reported Version |
10.3.4, 10.3.5 |
Yes |
Most Recent Bug-Fix Release |
|
|
Previous Major Release |
|
|
Most Recent LTS |
|
|
Previous Supported LTS |
|
|
Other Versions.. |
|
|
(Add rows as needed) |
|
|
Got almost the same but a little bit different error in Jira 10.3.6
Will see whether it's fixed in Jira 10.3.8 after updating.