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

NPE on report evaluation after upgrade to 3.5.0

XMLWordPrintable

    • Icon: Bug Report Bug Report
    • Resolution: Fixed
    • Icon: L3 - Default L3 - Default
    • 3.5.0
    • None
    • backend
    • None
    • Not defined

      Problem:
      After the upgrade to Optimize 3.5.0-alpha2 some report cannot be evaluated anymore due to a NullPopinterException:

      10:01:30.698 [qtp2061440682-129] ERROR o.c.o.r.p.GenericExceptionMapper - Mapping generic REST error
      java.lang.NullPointerException: null
      	at org.camunda.optimize.service.util.DefinitionQueryUtil.createTenantIdQuery(DefinitionQueryUtil.java:82)
      	at org.camunda.optimize.service.util.DefinitionQueryUtil.createDefinitionQuery(DefinitionQueryUtil.java:68)
      	at org.camunda.optimize.service.es.report.command.exec.ProcessReportCmdExecutionPlan.setupUnfilteredBaseQuery(ProcessReportCmdExecutionPlan.java:64)
      	at org.camunda.optimize.service.es.report.command.exec.ProcessReportCmdExecutionPlan.setupBaseQuery(ProcessReportCmdExecutionPlan.java:52)
      	at org.camunda.optimize.service.es.report.command.exec.ReportCmdExecutionPlan.createBaseQuerySearchRequest(ReportCmdExecutionPlan.java:120)
      	at org.camunda.optimize.service.es.report.command.exec.ReportCmdExecutionPlan.evaluate(ReportCmdExecutionPlan.java:72)
      	at org.camunda.optimize.service.es.report.command.exec.ReportCmdExecutionPlan.evaluate(ReportCmdExecutionPlan.java:66)
      	at org.camunda.optimize.service.es.report.command.ProcessCmd.evaluate(ProcessCmd.java:29)
      	at org.camunda.optimize.service.es.report.SingleReportEvaluator.evaluate(SingleReportEvaluator.java:73)
      	at org.camunda.optimize.service.es.report.ReportEvaluationHandler.evaluateSingleReportWithErrorCheck(ReportEvaluationHandler.java:156)
      	at org.camunda.optimize.service.es.report.ReportEvaluationHandler.evaluateReport(ReportEvaluationHandler.java:74)
      	at org.camunda.optimize.service.report.ReportEvaluationService.evaluateSavedReportWithAdditionalFilters(ReportEvaluationService.java:39)
      

      Steps to reproduce:

      1. Run Optimize 3.4.0
      2. Import the attached report
      3. Upgrade to Optimize 3.5.0-alpha2-RC1
      4. Run Optimize 3.5.0-alpha2-RC1 and open the report

      Actual result :

      Report evaluation fails with a 500, see screenshot

      Expected result:

      It should just work like in 3.4.0

      Cause:
      The cause is that for some old reports (before tenantIds were part of the report config) the tenantIds field never got initialized properly in elasticsearch. It was still available on the API due to the default value in the ProcessReportDataDto. With 3.5.0 and multi definitions a new ReportDataDefinitionDto was introduced that made use of the @Builder annotation by Lombok. Thus now the missing tenantIds field in the database lead to a missing tenantId list on the object due to the @Builder annotation hiding the default values, see https://github.com/projectlombok/lombok/issues/1347.

        This is the controller panel for Smart Panels app

          1. 3.5.0-alpha2_upgrade_isse_#1.png
            109 kB
            Sebastian Bathke
          2. user_task_-_idle_-_table_3.4.0.json
            19 kB
            Sebastian Bathke
          3. user_task_-_idle_-_table_3.5.0-alpha2-RC1.json
            19 kB
            Sebastian Bathke

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

                Created:
                Updated:
                Resolved: