-
Bug Report
-
Resolution: Done
-
L3 - Default
-
3.7.0, 3.8.0
-
None
-
1
-
S
Brief summary of the bug. What is it ? Where is it ?
The raw data report was observed to fail in Camunda 8 SaaS showing the following error in the report UI: "Error loading data - An internal server error occured"
The stacktrace in the log was:
java.lang.NullPointerException: null at java.base/java.util.Objects.requireNonNull(Objects.java:221) at java.base/java.lang.String.join(String.java:2440) at org.camunda.optimize.service.es.report.command.process.mapping.RawProcessDataResultDtoMapper.getVariables(RawProcessDataResultDtoMapper.java:82) at org.camunda.optimize.service.es.report.command.process.mapping.RawProcessDataResultDtoMapper.lambda$mapFrom$0(RawProcessDataResultDtoMapper.java:36) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at org.camunda.optimize.service.es.report.command.process.mapping.RawProcessDataResultDtoMapper.mapFrom(RawProcessDataResultDtoMapper.java:35) at org.camunda.optimize.service.es.report.command.modules.view.process.ProcessViewRawData.retrieveResult(ProcessViewRawData.java:195) at org.camunda.optimize.service.es.report.command.modules.distributed_by.process.ProcessDistributedByNone.retrieveResult(ProcessDistributedByNone.java:41) at org.camunda.optimize.service.es.report.command.modules.group_by.process.none.ProcessGroupByNone.addQueryResult(ProcessGroupByNone.java:45) at org.camunda.optimize.service.es.report.command.modules.group_by.GroupByPart.retrieveQueryResult(GroupByPart.java:54) at org.camunda.optimize.service.es.report.command.exec.ReportCmdExecutionPlan.retrieveQueryResult(ReportCmdExecutionPlan.java:171) at org.camunda.optimize.service.es.report.command.exec.ReportCmdExecutionPlan.evaluate(ReportCmdExecutionPlan.java:117) at org.camunda.optimize.service.es.report.command.exec.ReportCmdExecutionPlan.evaluate(ReportCmdExecutionPlan.java:71) at org.camunda.optimize.service.es.report.command.ProcessCmd.evaluate(ProcessCmd.java:29) at org.camunda.optimize.service.es.report.command.process.processinstance.raw.RawProcessInstanceDataGroupByNoneCmd.evaluate(RawProcessInstanceDataGroupByNoneCmd.java:49) at org.camunda.optimize.service.es.report.SingleReportEvaluator.evaluate(SingleReportEvaluator.java:73) at org.camunda.optimize.service.es.report.ReportEvaluationHandler.evaluateSingleReportWithErrorCheck(ReportEvaluationHandler.java:143) at org.camunda.optimize.service.es.report.ReportEvaluationHandler.evaluateReport(ReportEvaluationHandler.java:74) at org.camunda.optimize.service.report.ReportEvaluationService.evaluateUnsavedReport(ReportEvaluationService.java:56) at org.camunda.optimize.rest.ReportRestService.evaluateProvidedReport(ReportRestService.java:202) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Steps to reproduce:
- Have variable instances in zeebe with a `null` value
- Create a raw data report on the data
Actual result:
3. Report fails, log contains a NPE
Expected result:
4. null value should be listed
Hint:
This seems to have been introduced with list variable support in Optimize 3.7.0.
The String.join call is not save to take a null value.