Github user mattyb149 commented on the issue:
https://github.com/apache/nifi/pull/2448
From an awesome suggestion by @markap14, you could extend
AbstractSessionFactoryProcessor (although this has implications since you're
sharing a base class already) and use two sessions, one to get the incoming
flow file, and one to create the child flow files. Then you can use
session1.get() and save off the FlowFile, call session2.create(flowFile), and
session2.commit() as many times as you want. Then at the end of processing you
can do session1.transfer(flowFile, REL_ORIGINAL) and session1.commit().
That's a great solution IMO because it retains the "original" use case and
behavior while still allowing incremental commits. We should consider this
pattern when doing any source processor that allows incoming flow files and
also wants to offer incremental commits.
---