Mark Payne created NIFI-5626:
--------------------------------
Summary: MockProcessSession's getQueueSize() inconsistent with
StandardProcessSession's
Key: NIFI-5626
URL: https://issues.apache.org/jira/browse/NIFI-5626
Project: Apache NiFi
Issue Type: Bug
Reporter: Mark Payne
When calling StandardProcessSession.getQueueSize() it returns the size of the
queues, including any FlowFiles that are held by the Processor. However,
MockProcessSession does not include the size of FlowFiles held by the
Processor. As a result, we can have a processor that passes a unit test but
does not perform the same behavior in production. For example, if a processor
calls:
{code:java}
FlowFile flowFile = session.get();
if (flowFile != null) {
// Process FlowFile
}
QueueSize queueSize = session.getQueueSize();
if (queueSize.getObjectCount() == 0) {
// Perform some logic now that the queue is empty
}{code}
When running a unit test, if a single FlowFiles is enqueued, and then the
Processor is triggered, in the unit test, QueueSize.getObjectCount() will be 0.
However, in production, QueueSize.getObjectCount() will be 1, because the
Processor is still holding the FlowFile.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)