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)