Uploaded image for project: 'Camunda Optimize'
  1. Camunda Optimize
  2. OPT-6213

Raw Data Report NullpointerException on variable with null value

XMLWordPrintable

    • Icon: Bug Report Bug Report
    • Resolution: Done
    • Icon: L3 - Default L3 - Default
    • 3.8.3, 3.9.0-preview-1
    • 3.7.0, 3.8.0
    • backend
    • 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:

      1. Have variable instances in zeebe with a `null` value
      2. 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.

        This is the controller panel for Smart Panels app

              Unassigned Unassigned
              sebastian.bathke Sebastian Bathke
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: