The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here

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

  • Marco_BoeckMarco_Boeck Administrator, Moderator, Employee-RapidMiner, 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
  • 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.