Compensation end event should have id set during transformation.
Log/Stacktrace
Full Stacktrace
```
java.lang.NullPointerException: Cannot invoke "String.getBytes(java.nio.charset.Charset)" because "value" is null
at io.camunda.zeebe.util.StringUtil.getBytes(StringUtil.java:39) ~[zeebe-util-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.util.StringUtil.getBytes(StringUtil.java:35) ~[zeebe-util-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.util.buffer.BufferUtil.wrapString(BufferUtil.java:42) ~[zeebe-util-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.element.AbstractFlowElement.(AbstractFlowElement.java:23) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.element.ExecutableCompensation.(ExecutableCompensation.java:19) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformer.EndEventTransformer.transformCompensationEventDefinition(EndEventTransformer.java:123) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformer.EndEventTransformer.transformEventDefinition(EndEventTransformer.java:77) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformer.EndEventTransformer.transform(EndEventTransformer.java:44) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformer.EndEventTransformer.transform(EndEventTransformer.java:26) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformation.TransformationVisitor.visit(TransformationVisitor.java:42) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.model.bpmn.traversal.TypeHierarchyVisitor.visit(TypeHierarchyVisitor.java:39) ~[zeebe-bpmn-model-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.model.bpmn.traversal.ModelWalker.walk(ModelWalker.java:73) ~[zeebe-bpmn-model-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformation.BpmnTransformer.transformDefinitions(BpmnTransformer.java:118) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.transform.BpmnResourceTransformer.lambda$transformResource$3(BpmnResourceTransformer.java:77) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.util.Either$Right.flatMap(Either.java:417) ~[zeebe-util-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.transform.BpmnResourceTransformer.transformResource(BpmnResourceTransformer.java:70) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.transform.DeploymentTransformer.transformResource(DeploymentTransformer.java:130) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.transform.DeploymentTransformer.transform(DeploymentTransformer.java:106) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.DeploymentCreateProcessor.transformAndDistributeDeployment(DeploymentCreateProcessor.java:151) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.DeploymentCreateProcessor.processNewCommand(DeploymentCreateProcessor.java:105) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.streamprocessor.DistributedTypedRecordProcessor.processRecord(DistributedTypedRecordProcessor.java:33) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.Engine.process(Engine.java:127) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.batchProcessing(ProcessingStateMachine.java:370) ~[zeebe-stream-platform-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.lambda$processCommand$3(ProcessingStateMachine.java:283) ~[zeebe-stream-platform-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.db.impl.rocksdb.transaction.ZeebeTransaction.run(ZeebeTransaction.java:116) ~[zeebe-db-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.processCommand(ProcessingStateMachine.java:283) ~[zeebe-stream-platform-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.tryToReadNextRecord(ProcessingStateMachine.java:241) ~[zeebe-stream-platform-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorJob.invoke(ActorJob.java:94) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorJob.execute(ActorJob.java:47) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorTask.execute(ActorTask.java:122) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorThread.executeCurrentTask(ActorThread.java:130) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorThread.doWork(ActorThread.java:108) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorThread.run(ActorThread.java:227) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
```
Describe the bug
id
of a compensation end event is set tonull
leading to a NPE during BPMN transformation.To Reproduce
Tested locally if it is possible to deploy a compensation end event without an end event element id and get a validation error back as expected.
But when the
compensateEventDefinition
id removed from the BPMN xml (seeid="CompensateEventDefinition_11dncci"
below), the error is produced.Expected behavior
Compensation end event should have id set during transformation.
Log/Stacktrace
Full Stacktrace
``` java.lang.NullPointerException: Cannot invoke "String.getBytes(java.nio.charset.Charset)" because "value" is null at io.camunda.zeebe.util.StringUtil.getBytes(StringUtil.java:39) ~[zeebe-util-8.6.0-alpha1.jar:8.6.0-alpha1] at io.camunda.zeebe.util.StringUtil.getBytes(StringUtil.java:35) ~[zeebe-util-8.6.0-alpha1.jar:8.6.0-alpha1] at io.camunda.zeebe.util.buffer.BufferUtil.wrapString(BufferUtil.java:42) ~[zeebe-util-8.6.0-alpha1.jar:8.6.0-alpha1] at io.camunda.zeebe.engine.processing.deployment.model.element.AbstractFlowElement.(AbstractFlowElement.java:23) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.element.ExecutableCompensation.(ExecutableCompensation.java:19) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformer.EndEventTransformer.transformCompensationEventDefinition(EndEventTransformer.java:123) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformer.EndEventTransformer.transformEventDefinition(EndEventTransformer.java:77) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformer.EndEventTransformer.transform(EndEventTransformer.java:44) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformer.EndEventTransformer.transform(EndEventTransformer.java:26) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformation.TransformationVisitor.visit(TransformationVisitor.java:42) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.model.bpmn.traversal.TypeHierarchyVisitor.visit(TypeHierarchyVisitor.java:39) ~[zeebe-bpmn-model-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.model.bpmn.traversal.ModelWalker.walk(ModelWalker.java:73) ~[zeebe-bpmn-model-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.model.transformation.BpmnTransformer.transformDefinitions(BpmnTransformer.java:118) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.transform.BpmnResourceTransformer.lambda$transformResource$3(BpmnResourceTransformer.java:77) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.util.Either$Right.flatMap(Either.java:417) ~[zeebe-util-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.transform.BpmnResourceTransformer.transformResource(BpmnResourceTransformer.java:70) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.transform.DeploymentTransformer.transformResource(DeploymentTransformer.java:130) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.transform.DeploymentTransformer.transform(DeploymentTransformer.java:106) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.DeploymentCreateProcessor.transformAndDistributeDeployment(DeploymentCreateProcessor.java:151) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.deployment.DeploymentCreateProcessor.processNewCommand(DeploymentCreateProcessor.java:105) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.processing.streamprocessor.DistributedTypedRecordProcessor.processRecord(DistributedTypedRecordProcessor.java:33) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.engine.Engine.process(Engine.java:127) ~[zeebe-workflow-engine-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.batchProcessing(ProcessingStateMachine.java:370) ~[zeebe-stream-platform-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.lambda$processCommand$3(ProcessingStateMachine.java:283) ~[zeebe-stream-platform-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.db.impl.rocksdb.transaction.ZeebeTransaction.run(ZeebeTransaction.java:116) ~[zeebe-db-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.processCommand(ProcessingStateMachine.java:283) ~[zeebe-stream-platform-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.stream.impl.ProcessingStateMachine.tryToReadNextRecord(ProcessingStateMachine.java:241) ~[zeebe-stream-platform-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorJob.invoke(ActorJob.java:94) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorJob.execute(ActorJob.java:47) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorTask.execute(ActorTask.java:122) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorThread.executeCurrentTask(ActorThread.java:130) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorThread.doWork(ActorThread.java:108) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
at io.camunda.zeebe.scheduler.ActorThread.run(ActorThread.java:227) [zeebe-scheduler-8.6.0-alpha1.jar:8.6.0-alpha1]
```
Environment:
SaaS Prod Trial Cluster
8.6.0-alpha1
Related issue: https://github.com/camunda/camunda/issues/14929