Operator "Subprocess" doesn't pass through data
colo
New Altair Community Member
Hi (Marco),
I experienced a new issue, that should again be something to fix easily
If the operator "Subprocess" contains no active operators, there are no results delivered at the output port of the operator, although input and output ports of the inner process are connected. Adding some dummy operator (I chose "Select Attributes" with all attributes) changes this. I guess this again should just require a small change/fix, but please let me know if I may expect a general fix from your side, or if I have to do this by myself for now.
Best regards
Matthias
I experienced a new issue, that should again be something to fix easily
If the operator "Subprocess" contains no active operators, there are no results delivered at the output port of the operator, although input and output ports of the inner process are connected. Adding some dummy operator (I chose "Select Attributes" with all attributes) changes this. I guess this again should just require a small change/fix, but please let me know if I may expect a general fix from your side, or if I have to do this by myself for now.
Best regards
Matthias
Tagged:
0
Answers
-
Hi,
I'm afraid I have to ask you to file a bug report on that one, I don't have time for quick fixes right now
Regards,
Marco0 -
Hi Marco,
I tried to add a dummy operator to the Subprocess templates and remove this if a operator chain shall be added. The template now is a Subprocess super-operator, containing a single "Delay" operator that is attached to the connection from "in 1" to "out 1". When trying to execute the code
where parentProcess refers to the ExecutionUnit
for (Operator operator : parentProcess.getOperators()) {
if (operator.getName().startsWith(dummyOperatorName)) {
parentProcess.getOperatorByName(operator.getName()).setEnabled(false);
parentProcess.getOperatorByName(operator.getName()).disconnectPorts();
}
}
this results in the following exception:
((OperatorChain) myProcess.getProcess().getOperator("Subprocess1")).getSubprocess(0);Exception in thread "main" java.util.ConcurrentModificationException
Disabling the operator works, but trying to disconnect or remove it raises this exception.
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at java.util.Collections$UnmodifiableCollection$1.next(Unknown Source)
at com.rapidminer.operator.Operator.disconnectPorts(Operator.java:2038)
at core.rapidminer.factory.ExtractionChain.removeDummyOperators(ExtractionChain.java:50)
at core.rapidminer.factory.ExtractionChain.insertChain(ExtractionChain.java:160)
at datacollection.rapidminer.processwrapper.PortalIterationProcess.configureOperators(PortalIterationProcess.java:76)
at datacollection.rapidminer.processwrapper.PortalProcess.createProcesses(PortalProcess.java:131)
at datacollection.rapidminer.processwrapper.PortalProcess.configureOperators(PortalProcess.java:225)
at test.TestPortalComplete.main(TestPortalComplete.java:90)
Any idea?
Edit: I just received the same exception when trying to delete an attribute from the attribute set viaattributes.remove(attribute);
.
Best regards
Matthias0