[ https://issues.apache.org/jira/browse/NIFI-3860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16010798#comment-16010798 ]
Joseph Witt commented on NIFI-3860: ----------------------------------- commented on the PR but now with the updates to the javadocs and the fix for allowing/tracking multiple readers corrected I am a +1. This maintains the existing stability of the API but flexes to better handle the obvious intent the user had. Doesn't break existing code but lets easier implementation patterns exist. > Consider relaxing the constraint that ProcessSession enforces we give it the > most recent version of a FlowFile > -------------------------------------------------------------------------------------------------------------- > > Key: NIFI-3860 > URL: https://issues.apache.org/jira/browse/NIFI-3860 > Project: Apache NiFi > Issue Type: Improvement > Components: Core Framework > Reporter: Mark Payne > Assignee: Mark Payne > > Currently, when we call methods on ProcessSession to access or modify a > FlowFile, the ProcessSession will roll itself back and throw a > FlowFileHandlingException with the message "<FlowFile> is not the most recent > version of this FlowFile within this session". This was done to ensure that > Processor developers ensure that they know what they are doing and always > have the most recent version of a FlowFile. However, this comes with a few > downsides: > * It can result in code being complex in error-handling cases when we need to > ensure that no matter what we hold the most recent version of a FlowFile > * It's easy to call session.putAttribute and forget to store the most recent > version of the FlowFile, which gets returned - this is most problematic when > dealing with a Collection<FlowFile>. > * We have a method for ProcessSession.read(FlowFile) that returns an > InputStream. However, we don't have a corresponding write() method. This is > due to the fact that once we finish writing to the FlowFile, we would have to > return the most up-to-date version of the FlowFile and there's no way to do > that if returning an OutputStream. > We should consider relaxing this constraint and instead just always make use > of the most recent version of the FlowFile, even if an older version of the > FlowFile is passed in. -- This message was sent by Atlassian JIRA (v6.3.15#6346)