it-at-m / digiwf-core

central workflow automation and integration platform based on the free process framework Camunda.
MIT License
19 stars 7 forks source link

Null-Checks in IncidentNotificationHandler erforderlich #1681

Open markostreich opened 1 month ago

markostreich commented 1 month ago

Describe the bug in IncidentNotificationHandler.handleIncident müssen Null-Checks eingebaut werden. Gegenwärtig läuft eine Prozessinstanz permanent auf einen Fehler, weil incidentEntity.getProcessInstanceId() null zurückgibt.

May 14th 2024, 15:34:44.727
ENGINE-16004 Exception while closing command context: Process instance id is null
digiwf-engine-service
ERROR
May 14th 2024, 15:34:44.713ENGINE-16004 Exception while closing command context: ENGINE-13036 Process instance '62043051-1ca4-11ee-aa2a-0a580a8a389a' cannot be modified. The process instance does not exist
digiwf-engine-service
ERROR
May 14th 2024, 15:29:44.707ENGINE-16004 Exception while closing command context: Process instance id is null
digiwf-engine-service
ERROR
May 14th 2024, 15:29:44.675ENGINE-16004 Exception while closing command context: ENGINE-13036 Process instance '62043051-1ca4-11ee-aa2a-0a580a8a389a' cannot be modified. The process instance does not exist
digiwf-engine-service
ERROR
May 14th 2024, 15:24:30.686ENGINE-16004 Exception while closing command context: Process instance id is null
digiwf-engine-service
ERROR
May 14th 2024, 15:24:30.669ENGINE-16004 Exception while closing command context: ENGINE-13036 Process instance '62043051-1ca4-11ee-aa2a-0a580a8a389a' cannot be modified. The process instance does not exist
digiwf-engine-service
ERROR

Stacktrace:

org.camunda.bpm.engine.exception.NullValueException: Process instance id is null
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at org.camunda.bpm.engine.impl.util.EnsureUtil.generateException(EnsureUtil.java:398)
    at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:55)
    at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:50)
    at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:42)
    at org.camunda.bpm.engine.impl.ProcessInstanceQueryImpl.processInstanceId(ProcessInstanceQueryImpl.java:90)
    at org.camunda.bpm.engine.impl.ProcessInstanceQueryImpl.processInstanceId(ProcessInstanceQueryImpl.java:47)
    at de.muenchen.oss.digiwf.engine.incidents.IncidentNotifierHandler.handleIncident(IncidentNotifierHandler.java:66)
    at org.camunda.bpm.engine.impl.incident.IncidentHandling.createIncident(IncidentHandling.java:35)
    at org.camunda.bpm.engine.impl.persistence.entity.JobEntity.createFailedJobIncident(JobEntity.java:379)
    at org.camunda.bpm.engine.impl.persistence.entity.JobEntity.setRetries(JobEntity.java:324)
    at org.camunda.bpm.engine.impl.cmd.JobRetryCmd.decrementRetries(JobRetryCmd.java:60)
    at org.camunda.bpm.engine.impl.cmd.DefaultJobRetryCmd.executeStandardStrategy(DefaultJobRetryCmd.java:87)
    at org.camunda.bpm.engine.impl.cmd.DefaultJobRetryCmd.execute(DefaultJobRetryCmd.java:67)
    at org.camunda.bpm.engine.impl.jobexecutor.FailedJobListener$FailedJobListenerCmd.execute(FailedJobListener.java:128)
    at org.camunda.bpm.engine.impl.jobexecutor.FailedJobListener$FailedJobListenerCmd.execute(FailedJobListener.java:109)
    at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:28)
    at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:110)
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:71)
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:71)
    at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:70)
    at org.camunda.bpm.engine.impl.interceptor.CommandCounterInterceptor.execute(CommandCounterInterceptor.java:35)
    at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
    at org.camunda.bpm.engine.impl.interceptor.ExceptionCodeInterceptor.execute(ExceptionCodeInterceptor.java:55)
    at org.camunda.bpm.engine.impl.jobexecutor.FailedJobListener.execute(FailedJobListener.java:60)
    at org.camunda.bpm.engine.impl.jobexecutor.FailedJobListener.execute(FailedJobListener.java:32)
    at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:28)
    at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:110)
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:71)
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:71)
    at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:70)
    at org.camunda.bpm.engine.impl.interceptor.CommandCounterInterceptor.execute(CommandCounterInterceptor.java:35)
    at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
    at org.camunda.bpm.engine.impl.interceptor.ExceptionCodeInterceptor.execute(ExceptionCodeInterceptor.java:55)
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobHelper.callFailedJobListenerWithRetries(ExecuteJobHelper.java:112)
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobHelper.invokeJobListener(ExecuteJobHelper.java:93)
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobHelper.executeJob(ExecuteJobHelper.java:74)
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobsRunnable.executeJob(ExecuteJobsRunnable.java:110)
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobsRunnable.run(ExecuteJobsRunnable.java:71)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:840)

To Reproduce Logging des digiwf-engine-service prüfen.

Expected behavior Der IncidentNotificationHandler kann mit Null-Checks komplett durchlaufen werden.

github-actions[bot] commented 1 month ago

👋 Thanks for reporting! The maintainers have been notified and will get back to you.