-
Enhancement
-
Resolution: Done
-
Minor
-
0.10.0
-
None
-
1
-
2020 Week 16-18 (from Apr 13), 2020 Week 19-21 (from May 4)
If DMN definitions name is empty (= Leave "Name" property blank in DMN Editor),
<dmn:definitions ... name="" ...>
kogito start-up fails with the following Exception. We may want to log a more informative error message.
2020-04-27 18:22:51,063 ERROR [io.qua.dep.dev.DevModeMain] (main) Failed to start Quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors [error]: Build step org.kie.kogito.quarkus.deployment.KogitoAssetsProcessor#generateModel threw an exception: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47) at java.base/java.lang.String.charAt(String.java:693) at org.drools.core.util.StringUtils.capitalize(StringUtils.java:1292) at org.kie.kogito.codegen.decision.DMNRestResourceGenerator.<init>(DMNRestResourceGenerator.java:69) at org.kie.kogito.codegen.decision.DecisionCodegen.generate(DecisionCodegen.java:158) at org.kie.kogito.codegen.decision.DecisionCodegen.generate(DecisionCodegen.java:59) at org.kie.kogito.codegen.ApplicationGenerator.lambda$generateComponents$10(ApplicationGenerator.java:226) at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:271) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) at org.kie.kogito.codegen.ApplicationGenerator.generateComponents(ApplicationGenerator.java:227) at org.kie.kogito.codegen.ApplicationGenerator.generate(ApplicationGenerator.java:208) at org.kie.kogito.quarkus.deployment.KogitoAssetsProcessor.generateModel(KogitoAssetsProcessor.java:180) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:931) at io.quarkus.builder.BuildContext.run(BuildContext.java:277) at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2027) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1551) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1442) at java.base/java.lang.Thread.run(Thread.java:834) at org.jboss.threads.JBossThread.run(JBossThread.java:479)
DMN core can execute DMN definisions which name is empty (""). But Kogito requires the name for code generation. So I think a fix is required in kogito side.