This is an automated email from the ASF dual-hosted git repository.

gitgabrio pushed a commit to branch incubator-kie-issues#1497
in repository 
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git


The following commit(s) were added to refs/heads/incubator-kie-issues#1497 by 
this push:
     new f710fe4ccd [incubator-kie-issues#1497] Overriding  
getSerializableNodeInstances inside CompositeNodeInstance
f710fe4ccd is described below

commit f710fe4ccd6568bf5e15f2d97ca95af84ef8df5e
Author: Gabriele-Cardosi <[email protected]>
AuthorDate: Tue Oct 8 11:27:31 2024 +0200

    [incubator-kie-issues#1497] Overriding  getSerializableNodeInstances inside 
CompositeNodeInstance
---
 .../instance/node/CompositeNodeInstance.java        | 19 ++++++++++++++++++-
 .../workflow/instance/node/ForEachNodeInstance.java | 21 ++++++++++++---------
 2 files changed, 30 insertions(+), 10 deletions(-)

diff --git 
a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/CompositeNodeInstance.java
 
b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/CompositeNodeInstance.java
index 2612be7998..d804703897 100755
--- 
a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/CompositeNodeInstance.java
+++ 
b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/CompositeNodeInstance.java
@@ -28,6 +28,7 @@ import java.util.Map;
 import java.util.UUID;
 import java.util.function.Function;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 import org.jbpm.workflow.core.Node;
 import org.jbpm.workflow.core.node.CompositeNode;
@@ -204,7 +205,12 @@ public class CompositeNodeInstance extends 
StateBasedNodeInstance implements Nod
 
     @Override
     public Collection<org.kie.api.runtime.process.NodeInstance> 
getNodeInstances() {
-        return new ArrayList<>(getNodeInstances(false));
+        return Collections.unmodifiableCollection(nodeInstances);
+    }
+
+    @Override
+    public Collection<org.kie.api.runtime.process.NodeInstance> 
getSerializableNodeInstances() {
+        return 
nodeInstances.stream().filter(this::isSerializable).collect(Collectors.toUnmodifiableList());
     }
 
     @Override
@@ -473,4 +479,15 @@ public class CompositeNodeInstance extends 
StateBasedNodeInstance implements Nod
         return iterationLevels;
     }
 
+    /**
+     * Check if the given 
<code>org.kie.api.runtime.process.NodeInstance</code> is serializable.
+     * Every subclass should override it, if needed, to avoid polluting the 
parent one (this) with children details
+     * 
+     * @param toCheck
+     * @return
+     */
+    protected boolean isSerializable(org.kie.api.runtime.process.NodeInstance 
toCheck) {
+        return true;
+    }
+
 }
diff --git 
a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/ForEachNodeInstance.java
 
b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/ForEachNodeInstance.java
index 5f665df485..ae9fd86937 100755
--- 
a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/ForEachNodeInstance.java
+++ 
b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/ForEachNodeInstance.java
@@ -18,8 +18,15 @@
  */
 package org.jbpm.workflow.instance.node;
 
-import java.util.*;
-import java.util.stream.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 
 import org.jbpm.process.core.ContextContainer;
 import org.jbpm.process.core.context.variable.VariableScope;
@@ -42,7 +49,7 @@ import org.jbpm.workflow.instance.impl.MVELProcessHelper;
 import org.jbpm.workflow.instance.impl.NodeInstanceImpl;
 import org.jbpm.workflow.instance.impl.NodeInstanceResolverFactory;
 import org.kie.api.definition.process.Connection;
-import org.kie.kogito.internal.process.runtime.*;
+import org.kie.kogito.internal.process.runtime.KogitoNodeInstance;
 import org.mvel2.integration.VariableResolver;
 import org.mvel2.integration.impl.SimpleValueResolver;
 
@@ -127,11 +134,6 @@ public class ForEachNodeInstance extends 
CompositeContextNodeInstance {
         return getForEachNode().getCompositeNode();
     }
 
-    @Override
-    public Collection<org.kie.api.runtime.process.NodeInstance> 
getSerializableNodeInstances() {
-        return 
getNodeInstances().stream().filter(this::isSerializable).collect(Collectors.toUnmodifiableList());
-    }
-
     private boolean isSequential() {
         return getForEachNode().isSequential() || hasAsyncInstances;
     }
@@ -351,7 +353,8 @@ public class ForEachNodeInstance extends 
CompositeContextNodeInstance {
         return 1;
     }
 
-    private boolean isSerializable(org.kie.api.runtime.process.NodeInstance 
toCheck) {
+    @Override
+    protected boolean isSerializable(org.kie.api.runtime.process.NodeInstance 
toCheck) {
         return !NOT_SERIALIZABLE_CLASSES.contains(toCheck.getClass());
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to