Hi folks, I'd like to write InvokeScriptedProcessor that inspect all files in the incoming queue without actually processing/transfering them until a given business condition is met.
So I looked for some examples of how could I get all flowfiles in a queue using session.get(FlowFileFilter) and I would like to confirm if I'm getting it right. 1) If I have more than one thread executing my processor calling session.get(FlowFileFilter) can the same flowfile be present to both threads? 2) If I retrieve some flowfiles using session.get(FlowFileFilter) can I add/modify their attributes but keep them in the current queue (ie set attributes but don't transfer them to any relationship)? 3) Am I correct that session.get(FlowFileFilter) don't requires neither session.commit nor session.rollback? Those were required only if I modify the flowfile. 4) When obtain a list of flowfiles using session.get(FlowFileFilter) does it marks/lock/hides the selected files in anyway? 5) I'm playing with this concept with some groovy script using a InvokeScriptedProcessor and very often, after the second or third processor's on trigger execution I'm receiving an error *java.io.IOException: All Partitions have been blacklisted due to failures when attempting to update. If the Write-Ahead Log is able to perform a checkpoint, this issue may resolve itself. Otherwise, manual intervention will be required. *What could be the source of this error? Could it be related to the use of session.get(FlowFileFilter)? I'm having a hard time to detect what I'm doing that raises this error. Thanks in advance!
