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

Confusing Error Notifications for Reports without Process Definition

XMLWordPrintable

    • Icon: Bug Report Bug Report
    • Resolution: Fixed
    • Icon: L3 - Default L3 - Default
    • 2.3.0-alpha1, 2.3.0
    • None
    • backend
    • None

      When
      I save an empty report (I created a new report without process definition)

      Then
      an error message appears in the server log whenever I open the report or if I open a dashboard that contains the empty report

      Expected Behavior
      As Optimize allows to save empty reports I expect that this is not handled as an error

      15:53:38.410 [qtp346224929-293] ERROR o.c.o.r.p.GenericExceptionMapper - Mapping REST error
      org.camunda.optimize.service.exceptions.ReportEvaluationException: view is not allowed to be null
              at org.camunda.optimize.service.es.report.ReportEvaluationHandler.evaluateSingleReportWithErrorCheck(ReportEvaluationHandler.java:153)
              at org.camunda.optimize.service.es.report.ReportEvaluationHandler.evaluateSingleReport(ReportEvaluationHandler.java:139)
              at org.camunda.optimize.service.es.report.ReportEvaluationHandler.evaluateReport(ReportEvaluationHandler.java:53)
              at org.camunda.optimize.service.es.report.AuthorizationCheckReportEvaluationHandler.evaluateReport(AuthorizationCheckReportEvaluationHandler.java:21)
              at org.camunda.optimize.service.es.report.ReportEvaluationHandler.evaluateSavedReport(ReportEvaluationHandler.java:45)
              at org.camunda.optimize.service.es.report.AuthorizationCheckReportEvaluationHandler.evaluateSavedReport(AuthorizationCheckReportEvaluationHandler.java:17)
              at org.camunda.optimize.service.report.ReportService.evaluateSavedReport(ReportService.java:174)
              at org.camunda.optimize.rest.ReportRestService.evaluateReport(ReportRestService.java:139)
              at sun.reflect.GeneratedMethodAccessor228.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76)
              at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148)
              at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191)
              at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:243)
              at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103)
              at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493)
              at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415)
              at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104)
              at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277)
              at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272)
              at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268)
              at org.glassfish.jersey.internal.Errors.process(Errors.java:316)
              at org.glassfish.jersey.internal.Errors.process(Errors.java:298)
              at org.glassfish.jersey.internal.Errors.process(Errors.java:268)
              at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289)
              at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256)
              at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
              at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416)
              at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
              at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
              at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
              at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
              at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
              at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:201)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
              at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)
              at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:365)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
              at org.camunda.optimize.jetty.LicenseFilter.doFilter(LicenseFilter.java:66)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
              at org.eclipse.jetty.server.Server.handle(Server.java:499)
              at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
              at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
              at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
              at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
              at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
              at java.lang.Thread.run(Thread.java:748)
      Caused by: org.camunda.optimize.service.exceptions.OptimizeValidationException: view is not allowed to be null
              at org.camunda.optimize.service.util.ValidationHelper.ensureNotNull(ValidationHelper.java:119)
              at org.camunda.optimize.service.util.ValidationHelper.validate(ValidationHelper.java:76)
              at org.camunda.optimize.service.es.report.ReportEvaluator.extractCommand(ReportEvaluator.java:274)
              at org.camunda.optimize.service.es.report.ReportEvaluator.evaluate(ReportEvaluator.java:267)
              at org.camunda.optimize.service.es.report.ReportEvaluationHandler.evaluateSingleReportWithErrorCheck(ReportEvaluationHandler.java:147)
              ... 56 common frames omitted
      

      Hint:
      The exception output should not be logged as an error but rather as a debug statement. Be also aware that we need to throw an error here, so that a 500 response code is returned as an response, since the evaluation of the report is not successful.

        This is the controller panel for Smart Panels app

              Unassigned Unassigned
              michael.schoettes Michael Schoettes
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: