[ https://issues.apache.org/jira/browse/UIMA-1153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jerry Cwiklik reassigned UIMA-1153: ----------------------------------- Assignee: Burn Lewis > thread safety issue with sample flow controller AdvancedFixedFlowController > --------------------------------------------------------------------------- > > Key: UIMA-1153 > URL: https://issues.apache.org/jira/browse/UIMA-1153 > Project: UIMA > Issue Type: Bug > Components: Async Scaleout, Examples > Affects Versions: 2.2.2 > Reporter: Marshall Schor > Assignee: Burn Lewis > Priority: Minor > > The AdvancedFixedFlowController implements its Flow Object class as an inner > class of its Flow Controller class. > In UIMA-AS, it is possible that more than one Flow Object can be accessing > the Flow Controller fields on different threads, and (for Cas Multipliers) it > is possible for an individual Flow Object to be called on multiple threads at > the same time (via the method (via the newCasProduced method). > In the example, the newCasProduced method is marked *synchronized*, so I > think the same Flow Object will not be running multiple threads at the same > time, because the other methods to this are all calls done on 1 thread on > behalf of the main CAS associated with this Flow Object. > However, multiple flow objects running on different threads could have their > newCasProduced method called. In this case, the references in that method to > common mutable fields in the shared Flow Controller object are not > synchronized. This code should be fixed so that those references are > synchronized on the same monitor used to synchronize other field access in > the Flow Controller. UIMA-1149 I hope will use the class instance of the > flow controller for this purpose, and, assuming that it does, this code > should explicitly synchronize on that same object, for references to mutable > fields in that class. There is one field, mSequence, which is in the > associated Flow Controller class, which is mutable (in theory). References > to this field should be synchronized with the same monitor used by the flow > controller class when manipulating it. > The other field references in the flow object should be checked, and > synchronized if they refer to mutable Flow Controller fields. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.