This is an automated email from the ASF dual-hosted git repository.
mweiler pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git
The following commit(s) were added to refs/heads/main by this push:
new 39cb7b0458 [incubator-kie-issues#2004] Handle scripts that end with a
comment line (#3956)
39cb7b0458 is described below
commit 39cb7b04588faabc1dfb09a1bd4a452505ff1296
Author: Martin Weiler <[email protected]>
AuthorDate: Mon Jul 14 09:12:07 2025 -0600
[incubator-kie-issues#2004] Handle scripts that end with a comment line
(#3956)
---
.../jbpm/compiler/canonical/ActionNodeVisitor.java | 2 +-
.../builtin/JavaConstraintEvaluatorBuilder.java | 2 +-
.../process/builder/action/JavaActionCompiler.java | 2 +-
.../canonical/ProcessToExecModelGeneratorTest.java | 37 ++++++++++++++++++++++
4 files changed, 40 insertions(+), 3 deletions(-)
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ActionNodeVisitor.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ActionNodeVisitor.java
index 0028588d28..f48bca064e 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ActionNodeVisitor.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ActionNodeVisitor.java
@@ -103,7 +103,7 @@ public class ActionNodeVisitor extends
AbstractNodeVisitor<ActionNode> {
.map(ActionNodeVisitor::makeAssignment)
.forEach(actionBody::addStatement);
- BlockStmt blockStmt = StaticJavaParser.parseBlock("{" +
consequence + "}");
+ BlockStmt blockStmt = StaticJavaParser.parseBlock("{" +
consequence + "\n}");
blockStmt.getStatements().forEach(actionBody::addStatement);
}
LambdaExpr lambda = new LambdaExpr(
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/builtin/JavaConstraintEvaluatorBuilder.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/builtin/JavaConstraintEvaluatorBuilder.java
index ae82b5fb7e..53d10bb707 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/builtin/JavaConstraintEvaluatorBuilder.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/builtin/JavaConstraintEvaluatorBuilder.java
@@ -61,7 +61,7 @@ public class JavaConstraintEvaluatorBuilder implements
ReturnValueEvaluatorBuild
}
if (blockStmt == null) {
- blockStmt = StaticJavaParser.parseBlock("{" + expression + "}");
+ blockStmt = StaticJavaParser.parseBlock("{" + expression + "\n}");
}
Set<NameExpr> identifiers = new
HashSet<>(blockStmt.findAll(NameExpr.class));
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/process/builder/action/JavaActionCompiler.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/process/builder/action/JavaActionCompiler.java
index f2762126f2..2fca4e8a7c 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/process/builder/action/JavaActionCompiler.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/process/builder/action/JavaActionCompiler.java
@@ -57,7 +57,7 @@ public class JavaActionCompiler implements ActionCompiler {
@Override
public Expression buildAction(NodeImpl nodeImpl, String script) {
BlockStmt newDroolsConsequenceActionExpression = new BlockStmt();
- newDroolsConsequenceActionExpression = StaticJavaParser.parseBlock("{"
+ script + "}");
+ newDroolsConsequenceActionExpression = StaticJavaParser.parseBlock("{"
+ script + "\n}");
Set<NameExpr> identifiers = new
HashSet<>(newDroolsConsequenceActionExpression.findAll(NameExpr.class));
for (NameExpr identifier : identifiers) {
VariableScope scope = (VariableScope)
nodeImpl.resolveContext(VariableScope.VARIABLE_SCOPE,
identifier.getNameAsString());
diff --git
a/jbpm/jbpm-flow-builder/src/test/java/org/jbpm/compiler/canonical/ProcessToExecModelGeneratorTest.java
b/jbpm/jbpm-flow-builder/src/test/java/org/jbpm/compiler/canonical/ProcessToExecModelGeneratorTest.java
index eec5facfaf..b4643e801c 100644
---
a/jbpm/jbpm-flow-builder/src/test/java/org/jbpm/compiler/canonical/ProcessToExecModelGeneratorTest.java
+++
b/jbpm/jbpm-flow-builder/src/test/java/org/jbpm/compiler/canonical/ProcessToExecModelGeneratorTest.java
@@ -162,4 +162,41 @@ public class ProcessToExecModelGeneratorTest {
ProcessMetaData processMetadata =
ProcessToExecModelGenerator.INSTANCE.generate(process);
assertThat(processMetadata).as("Dumper should return non null class
for process").isNotNull();
}
+
+ @Test
+ public void testScriptsWithTrailingComment() {
+
+ RuleFlowProcessFactory factory =
RuleFlowProcessFactory.createProcess("demo.orders");
+ factory
+ .variable("order", new
ObjectDataType("com.myspace.demo.Order"))
+ .variable("approver", new StringDataType(), "john",
Collections.singletonMap("customTags", null))
+ .variable("age", new IntegerDataType(), "1",
Collections.singletonMap("customTags", null))
+ .name("orders")
+ .packageName("com.myspace.demo")
+ .dynamic(false)
+ .version("1.0")
+ .actionNode(one)
+ .name("Dump order")
+ .action("java", "System.out.println();\n// this is a comment")
+ .done()
+ .stateNode(two)
+ .name("OnEntry")
+ .onEntryAction("java", "System.out.println();\n// this is a
comment")
+ .done()
+ .endNode(three)
+ .name("end")
+ .terminate(false)
+ .done()
+ .startNode(four)
+ .name("start")
+ .done()
+ .connection(two, one)
+ .connection(four, two)
+ .connection(one, three);
+
+ WorkflowProcess process = factory.validate().getProcess();
+
+ ProcessMetaData processMetadata =
ProcessToExecModelGenerator.INSTANCE.generate(process);
+ assertThat(processMetadata).as("Dumper should return non null class
for process").isNotNull();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]