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

Report update script fails with NullPointerException on empty/incomplete report configs

    XMLWordPrintable

Details

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

    Description

      Given:
      I have an empty report stored (with view being null)

      When:
      The Update to 3.4.0 is run

      Then:
      it fails with an error during report reindex, in the elastic log this error is visible:

      {"type": "server", "timestamp": "2021-04-07T13:23:21,013Z", "level": "WARN", "component": "o.e.t.LoggingTaskListener", "cluster.name": "elasticsearch", "node.name": "4c40ad8878e1", "message": "1870 failed with exception", "cluster.uuid": "2K7WakHqSyiW9DPXnH7DWA", "node.id": "7bR4CZA8RjC2NfYebQFJ8Q" , 
      "stacktrace": ["org.elasticsearch.script.ScriptException: runtime error",
      "at org.elasticsearch.painless.PainlessScript.convertToScriptException(PainlessScript.java:85) ~[?:?]",
      "at org.elasticsearch.painless.PainlessScript$Script.execute(def reportEntityType = ctx._source.data.view.entity; ...:1) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction$ScriptApplier.apply(AbstractAsyncBulkByScrollAction.java:764) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction$ScriptApplier.apply(AbstractAsyncBulkByScrollAction.java:725) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction.buildBulk(AbstractAsyncBulkByScrollAction.java:196) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction.prepareBulkRequest(AbstractAsyncBulkByScrollAction.java:315) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction$1.doRun(AbstractAsyncBulkByScrollAction.java:277) ~[?:?]",
      "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:732) [elasticsearch-7.11.0.jar:7.11.0]",
      "at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) [elasticsearch-7.11.0.jar:7.11.0]",
      "at org.elasticsearch.common.util.concurrent.RunOnce.run(RunOnce.java:29) ~[elasticsearch-7.11.0.jar:7.11.0]",
      "at org.elasticsearch.index.reindex.WorkerBulkByScrollTaskState$DelayedPrepareBulkRequest.lambda$new$0(WorkerBulkByScrollTaskState.java:248) ~[elasticsearch-7.11.0.jar:7.11.0]",{"type": "server", "timestamp": "2021-04-07T13:23:21,013Z", "level": "WARN", "component": "o.e.t.LoggingTaskListener", "cluster.name": "elasticsearch", "node.name": "4c40ad8878e1", "message": "1870 failed with exception", "cluster.uuid": "2K7WakHqSyiW9DPXnH7DWA", "node.id": "7bR4CZA8RjC2NfYebQFJ8Q" , 
      "stacktrace": ["org.elasticsearch.script.ScriptException: runtime error",
      "at org.elasticsearch.painless.PainlessScript.convertToScriptException(PainlessScript.java:85) ~[?:?]",
      "at org.elasticsearch.painless.PainlessScript$Script.execute(def reportEntityType = ctx._source.data.view.entity; ...:1) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction$ScriptApplier.apply(AbstractAsyncBulkByScrollAction.java:764) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction$ScriptApplier.apply(AbstractAsyncBulkByScrollAction.java:725) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction.buildBulk(AbstractAsyncBulkByScrollAction.java:196) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction.prepareBulkRequest(AbstractAsyncBulkByScrollAction.java:315) ~[?:?]",
      "at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction$1.doRun(AbstractAsyncBulkByScrollAction.java:277) ~[?:?]",
      "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:732) [elasticsearch-7.11.0.jar:7.11.0]",
      "at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) [elasticsearch-7.11.0.jar:7.11.0]",
      "at org.elasticsearch.common.util.concurrent.RunOnce.run(RunOnce.java:29) ~[elasticsearch-7.11.0.jar:7.11.0]",
      "at org.elasticsearch.index.reindex.WorkerBulkByScrollTaskState$DelayedPrepareBulkRequest.lambda$new$0(WorkerBulkByScrollTaskState.java:248) ~[elasticsearch-7.11.0.jar:7.11.0]",
      "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:673) ~[elasticsearch-7.11.0.jar:7.11.0]",in Optimize
      "at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]",
      "at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]",
      "at java.lang.Thread.run(Thread.java:832) [?:?]",
      "Caused by: java.lang.NullPointerException: Cannot invoke \"Object.getClass()\" because \"receiver\" is null",
      "at org.elasticsearch.painless.DefBootstrap$PIC.checkClass(DefBootstrap.java:134) ~[?:?]",
      "at org.elasticsearch.painless.PainlessScript$Script.execute(def reportEntityType = ctx._source.data.view.entity; ...:45) ~[?:?]",
      "... 13 more"] }
      
      "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:673) ~[elasticsearch-7.11.0.jar:7.11.0]",
      "at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]",
      "at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]",
      "at java.lang.Thread.run(Thread.java:832) [?:?]",
      "Caused by: java.lang.NullPointerException: Cannot invoke \"Object.getClass()\" because \"receiver\" is null",
      "at org.elasticsearch.painless.DefBootstrap$PIC.checkClass(DefBootstrap.java:134) ~[?:?]",
      "at org.elasticsearch.painless.PainlessScript$Script.execute(def reportEntityType = ctx._source.data.view.entity; ...:45) ~[?:?]",
      "... 13 more"] }
      

      Expected:
      The update should be able to cope with empty reports

      mgm-controller-panel

        This is the controller panel for Smart Panels app

        Attachments

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                Salesforce