Yes, what you described is what was happening, Mark. I didn't display
all of the code to the session methods, and I did re-read the in-coming
flowfile for different purposes than I had already read and written it.
So, I wasn't helpful enough. In the end, however, I had forgotten,
immediately after the call to session.putAllAttributes(), to update the
resulting flowfile for passing to session.transfer(). That solved it for
1.1.2 which wasn't necessary for 1.13.2 or later versions. Being
helpful, the newer versions made me a spoiled, entitled child and I will
repent immediately.
Thanks, guys! DevOps are happy they don't have to upgrade the customers
to NiFi 1.13.2. (In a way, I'm unhappy about that, but...).
Best regards,
Russ
On 5/7/24 11:53, Mark Payne wrote:
The call to session.putAttribute would throw an Exception because you
provided an outdated version of the flowFile (did not capturing the
result of calling session.write)
Now, as NiFi matured, we found that:
(a) for more complex processors that aren’t just a series of sequential
steps it becomes difficult to manage all of that bookkeeping.
(b) it was not intuitive to require this
(c) the ProcessSession already had more or less what it needed in order
to determine what the most up-to-date version of the FlowFile was.
So we updated the ProcessSession to automatically grab the latest
version of the FlowFile for these methods. But since you’re trying to
run an old version, you’ll need to make sure that you capture all of
those outputs and always keep track of the most recent version of a
FlowFile.