Options

Operator "Subprocess" doesn't pass through data

colocolo Member Posts: 236 Maven
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

Answers

  • Options
    Marco_BoeckMarco_Boeck Administrator, Moderator, Employee, Member, University Professor Posts: 1,996 RM Engineering
    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,
    Marco
  • Options
    colocolo Member Posts: 236 Maven
    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

    for (Operator operator : parentProcess.getOperators()) {
    if (operator.getName().startsWith(dummyOperatorName)) {
    parentProcess.getOperatorByName(operator.getName()).setEnabled(false);
    parentProcess.getOperatorByName(operator.getName()).disconnectPorts();
    }
    }
    where parentProcess refers to the ExecutionUnit

    ((OperatorChain) myProcess.getProcess().getOperator("Subprocess1")).getSubprocess(0);
    this results in the following exception:
    Exception in thread "main" java.util.ConcurrentModificationException
    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)
    Disabling the operator works, but trying to disconnect or remove it raises this exception.

    Any idea? :)

    Edit: I just received the same exception when trying to delete an attribute from the attribute set via
    attributes.remove(attribute);
    .

    Best regards
    Matthias
Sign In or Register to comment.