Mark Payne created NIFI-3860:
--------------------------------

             Summary: 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


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)

Reply via email to