-
Bug
-
Resolution: Won't Do
-
Major
-
None
-
8.30.0.Final
-
None
-
2022 Week 44-46 (from Oct 31)
-
NEW
-
NEW
-
---
-
---
In a drools rule I'm trying to build logic using Java's ternary operator like this:
rule "ternary" when $foo: Number() from 0 $bar: Boolean() from ($foo > 0 ? true : false) then System.out.println("value of $bar: " + $bar); end
The compilation of the rule fails with the following exception:
2022-11-10 08:37:46,380 ERROR [io.qua.dep.dev.IsolatedDevModeMain] (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.common.deployment.KogitoAssetsProcessor#generateSources threw an exception: org.kie.kogito.codegen.rules.RuleCodegenError: Errors were generated during the code-generation process: null at org.kie.kogito.codegen.rules.RuleCodegen.internalGenerate(RuleCodegen.java:115) at org.kie.kogito.codegen.core.AbstractGenerator.generate(AbstractGenerator.java:69) at org.kie.kogito.codegen.core.ApplicationGenerator.lambda$generateComponents$0(ApplicationGenerator.java:95) at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at org.kie.kogito.codegen.core.ApplicationGenerator.generateComponents(ApplicationGenerator.java:97) at org.kie.kogito.codegen.core.ApplicationGenerator.generate(ApplicationGenerator.java:74) at org.kie.kogito.quarkus.common.deployment.KogitoAssetsProcessor.generateFiles(KogitoAssetsProcessor.java:263) at org.kie.kogito.quarkus.common.deployment.KogitoAssetsProcessor.generateSources(KogitoAssetsProcessor.java:140) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:909) at io.quarkus.builder.BuildContext.run(BuildContext.java:281) at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478) at java.base/java.lang.Thread.run(Thread.java:833) at org.jboss.threads.JBossThread.run(JBossThread.java:501) Caused by: java.lang.UnsupportedOperationException at org.drools.model.codegen.execmodel.generator.expressiontyper.ExpressionTyper.toTypedExpressionRec(ExpressionTyper.java:386) at org.drools.model.codegen.execmodel.generator.expressiontyper.ExpressionTyper.toTypedExpression(ExpressionTyper.java:161) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.compileToJavaRecursive(ConstraintParser.java:292) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.compileStart(ConstraintParser.java:200) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:150) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:142) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:138) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.createArg(FromVisitor.java:282) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.addLambdaToFromExpression(FromVisitor.java:264) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.fromExpressionUsingArguments(FromVisitor.java:199) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.lambda$fromExpression$0(FromVisitor.java:140) at java.base/java.util.Optional.orElseGet(Optional.java:364) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.fromExpression(FromVisitor.java:140) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.createSingleFrom(FromVisitor.java:109) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.visit(FromVisitor.java:82) at java.base/java.util.Optional.flatMap(Optional.java:289) at org.drools.model.codegen.execmodel.generator.visitor.pattern.PatternDSL.buildFromDeclaration(PatternDSL.java:104) at org.drools.model.codegen.execmodel.generator.visitor.pattern.PatternDSL.initPattern(PatternDSL.java:87) at org.drools.model.codegen.execmodel.generator.visitor.pattern.PatternDSL.buildPattern(PatternDSL.java:304) at org.drools.model.codegen.execmodel.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:131) at org.drools.drl.ast.descr.PatternDescr.accept(PatternDescr.java:275) at org.drools.model.codegen.execmodel.generator.visitor.AndVisitor.visit(AndVisitor.java:51) at org.drools.model.codegen.execmodel.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:69) at org.drools.model.codegen.execmodel.generator.ModelGenerator.processRule(ModelGenerator.java:228) at org.drools.model.codegen.execmodel.generator.ModelGenerator.processRuleDescr(ModelGenerator.java:213) at org.drools.model.codegen.execmodel.generator.ModelGenerator.processRules(ModelGenerator.java:200) at org.drools.model.codegen.execmodel.generator.ModelGenerator.generateModel(ModelGenerator.java:153) at org.drools.model.codegen.execmodel.processors.ModelGeneratorPhase.process(ModelGeneratorPhase.java:48) at org.drools.compiler.builder.impl.processors.IteratingPhase.process(IteratingPhase.java:59) at org.drools.model.codegen.tool.ExplicitCanonicalModelCompiler.process(ExplicitCanonicalModelCompiler.java:138) at org.drools.model.codegen.project.DroolsModelBuilder.build(DroolsModelBuilder.java:122) at org.kie.kogito.codegen.rules.RuleCodegen.internalGenerate(RuleCodegen.java:113) ... 24 more at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:335) at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:252) at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:60) at io.quarkus.deployment.dev.IsolatedDevModeMain.firstStart(IsolatedDevModeMain.java:86) at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:447) at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:59) at io.quarkus.bootstrap.app.CuratedApplication.runInCl(CuratedApplication.java:149) at io.quarkus.bootstrap.app.CuratedApplication.runInAugmentClassLoader(CuratedApplication.java:104) at io.quarkus.deployment.dev.DevModeMain.start(DevModeMain.java:131) at io.quarkus.deployment.dev.DevModeMain.main(DevModeMain.java:62) Caused by: io.quarkus.builder.BuildException: Build failure: Build failed due to errors [error]: Build step org.kie.kogito.quarkus.common.deployment.KogitoAssetsProcessor#generateSources threw an exception: org.kie.kogito.codegen.rules.RuleCodegenError: Errors were generated during the code-generation process: null at org.kie.kogito.codegen.rules.RuleCodegen.internalGenerate(RuleCodegen.java:115) at org.kie.kogito.codegen.core.AbstractGenerator.generate(AbstractGenerator.java:69) at org.kie.kogito.codegen.core.ApplicationGenerator.lambda$generateComponents$0(ApplicationGenerator.java:95) at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at org.kie.kogito.codegen.core.ApplicationGenerator.generateComponents(ApplicationGenerator.java:97) at org.kie.kogito.codegen.core.ApplicationGenerator.generate(ApplicationGenerator.java:74) at org.kie.kogito.quarkus.common.deployment.KogitoAssetsProcessor.generateFiles(KogitoAssetsProcessor.java:263) at org.kie.kogito.quarkus.common.deployment.KogitoAssetsProcessor.generateSources(KogitoAssetsProcessor.java:140) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:909) at io.quarkus.builder.BuildContext.run(BuildContext.java:281) at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478) at java.base/java.lang.Thread.run(Thread.java:833) at org.jboss.threads.JBossThread.run(JBossThread.java:501) Caused by: java.lang.UnsupportedOperationException at org.drools.model.codegen.execmodel.generator.expressiontyper.ExpressionTyper.toTypedExpressionRec(ExpressionTyper.java:386) at org.drools.model.codegen.execmodel.generator.expressiontyper.ExpressionTyper.toTypedExpression(ExpressionTyper.java:161) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.compileToJavaRecursive(ConstraintParser.java:292) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.compileStart(ConstraintParser.java:200) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:150) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:142) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:138) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.createArg(FromVisitor.java:282) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.addLambdaToFromExpression(FromVisitor.java:264) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.fromExpressionUsingArguments(FromVisitor.java:199) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.lambda$fromExpression$0(FromVisitor.java:140) at java.base/java.util.Optional.orElseGet(Optional.java:364) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.fromExpression(FromVisitor.java:140) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.createSingleFrom(FromVisitor.java:109) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.visit(FromVisitor.java:82) at java.base/java.util.Optional.flatMap(Optional.java:289) at org.drools.model.codegen.execmodel.generator.visitor.pattern.PatternDSL.buildFromDeclaration(PatternDSL.java:104) at org.drools.model.codegen.execmodel.generator.visitor.pattern.PatternDSL.initPattern(PatternDSL.java:87) at org.drools.model.codegen.execmodel.generator.visitor.pattern.PatternDSL.buildPattern(PatternDSL.java:304) at org.drools.model.codegen.execmodel.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:131) at org.drools.drl.ast.descr.PatternDescr.accept(PatternDescr.java:275) at org.drools.model.codegen.execmodel.generator.visitor.AndVisitor.visit(AndVisitor.java:51) at org.drools.model.codegen.execmodel.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:69) at org.drools.model.codegen.execmodel.generator.ModelGenerator.processRule(ModelGenerator.java:228) at org.drools.model.codegen.execmodel.generator.ModelGenerator.processRuleDescr(ModelGenerator.java:213) at org.drools.model.codegen.execmodel.generator.ModelGenerator.processRules(ModelGenerator.java:200) at org.drools.model.codegen.execmodel.generator.ModelGenerator.generateModel(ModelGenerator.java:153) at org.drools.model.codegen.execmodel.processors.ModelGeneratorPhase.process(ModelGeneratorPhase.java:48) at org.drools.compiler.builder.impl.processors.IteratingPhase.process(IteratingPhase.java:59) at org.drools.model.codegen.tool.ExplicitCanonicalModelCompiler.process(ExplicitCanonicalModelCompiler.java:138) at org.drools.model.codegen.project.DroolsModelBuilder.build(DroolsModelBuilder.java:122) at org.kie.kogito.codegen.rules.RuleCodegen.internalGenerate(RuleCodegen.java:113) ... 24 more at io.quarkus.builder.Execution.run(Execution.java:123) at io.quarkus.builder.BuildExecutionBuilder.execute(BuildExecutionBuilder.java:79) at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:160) at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:331) ... 9 more Caused by: org.kie.kogito.codegen.rules.RuleCodegenError: Errors were generated during the code-generation process: null at org.kie.kogito.codegen.rules.RuleCodegen.internalGenerate(RuleCodegen.java:115) at org.kie.kogito.codegen.core.AbstractGenerator.generate(AbstractGenerator.java:69) at org.kie.kogito.codegen.core.ApplicationGenerator.lambda$generateComponents$0(ApplicationGenerator.java:95) at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at org.kie.kogito.codegen.core.ApplicationGenerator.generateComponents(ApplicationGenerator.java:97) at org.kie.kogito.codegen.core.ApplicationGenerator.generate(ApplicationGenerator.java:74) at org.kie.kogito.quarkus.common.deployment.KogitoAssetsProcessor.generateFiles(KogitoAssetsProcessor.java:263) at org.kie.kogito.quarkus.common.deployment.KogitoAssetsProcessor.generateSources(KogitoAssetsProcessor.java:140) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:909) at io.quarkus.builder.BuildContext.run(BuildContext.java:281) at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478) at java.base/java.lang.Thread.run(Thread.java:833) at org.jboss.threads.JBossThread.run(JBossThread.java:501) Caused by: java.lang.UnsupportedOperationException at org.drools.model.codegen.execmodel.generator.expressiontyper.ExpressionTyper.toTypedExpressionRec(ExpressionTyper.java:386) at org.drools.model.codegen.execmodel.generator.expressiontyper.ExpressionTyper.toTypedExpression(ExpressionTyper.java:161) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.compileToJavaRecursive(ConstraintParser.java:292) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.compileStart(ConstraintParser.java:200) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:150) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:142) at org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:138) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.createArg(FromVisitor.java:282) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.addLambdaToFromExpression(FromVisitor.java:264) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.fromExpressionUsingArguments(FromVisitor.java:199) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.lambda$fromExpression$0(FromVisitor.java:140) at java.base/java.util.Optional.orElseGet(Optional.java:364) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.fromExpression(FromVisitor.java:140) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.createSingleFrom(FromVisitor.java:109) at org.drools.model.codegen.execmodel.generator.visitor.FromVisitor.visit(FromVisitor.java:82) at java.base/java.util.Optional.flatMap(Optional.java:289) at org.drools.model.codegen.execmodel.generator.visitor.pattern.PatternDSL.buildFromDeclaration(PatternDSL.java:104) at org.drools.model.codegen.execmodel.generator.visitor.pattern.PatternDSL.initPattern(PatternDSL.java:87) at org.drools.model.codegen.execmodel.generator.visitor.pattern.PatternDSL.buildPattern(PatternDSL.java:304) at org.drools.model.codegen.execmodel.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:131) at org.drools.drl.ast.descr.PatternDescr.accept(PatternDescr.java:275) at org.drools.model.codegen.execmodel.generator.visitor.AndVisitor.visit(AndVisitor.java:51) at org.drools.model.codegen.execmodel.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:69) at org.drools.model.codegen.execmodel.generator.ModelGenerator.processRule(ModelGenerator.java:228) at org.drools.model.codegen.execmodel.generator.ModelGenerator.processRuleDescr(ModelGenerator.java:213) at org.drools.model.codegen.execmodel.generator.ModelGenerator.processRules(ModelGenerator.java:200) at org.drools.model.codegen.execmodel.generator.ModelGenerator.generateModel(ModelGenerator.java:153) at org.drools.model.codegen.execmodel.processors.ModelGeneratorPhase.process(ModelGeneratorPhase.java:48) at org.drools.compiler.builder.impl.processors.IteratingPhase.process(IteratingPhase.java:59) at org.drools.model.codegen.tool.ExplicitCanonicalModelCompiler.process(ExplicitCanonicalModelCompiler.java:138) at org.drools.model.codegen.project.DroolsModelBuilder.build(DroolsModelBuilder.java:122) at org.kie.kogito.codegen.rules.RuleCodegen.internalGenerate(RuleCodegen.java:113) ... 24 more
Looking at the ExpressionTyper class this looks like a yet unsupported case to me.
Ternaries in general seem to work - an expression like $bar: Boolean() from (1 > 0 ? true : false) compiles fine.
- is duplicated by
-
DROOLS-7236 executable-model fails with "from" and ternary expression
-
- Resolved
-