Github user mattyb149 commented on a diff in the pull request:
https://github.com/apache/nifi/pull/3051#discussion_r223701761
--- Diff:
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java
---
@@ -192,15 +205,17 @@ public void onScheduled(final ProcessContext context)
{
@Override
public void onTrigger(final ProcessContext context, final
ProcessSession session) throws ProcessException {
FlowFile fileToProcess = null;
+ FlowFile inputFlowFile = null;
if (context.hasIncomingConnection()) {
- fileToProcess = session.get();
+ inputFlowFile = session.get();
// If we have no FlowFile, and all incoming connections are
self-loops then we can continue on.
// However, if we have no FlowFile and we have connections
coming from other Processors, then
// we know that we should run only if we have a FlowFile.
- if (fileToProcess == null && context.hasNonLoopConnection()) {
+ if (inputFlowFile == null && context.hasNonLoopConnection()) {
return;
}
+ session.remove(inputFlowFile);
--- End diff --
I don't follow the logic here. If there is a flow file in the incoming
connection, this appears to remove it from the session, and fileToProcess will
always be null, which means we couldn't use flow file attributes to evaluate
properties such as CQL Query, Query Timeout, Charset, etc. Another effect is
that provenance/lineage will not be preserved for incoming files, as the
incoming file will be removed, and any flow files generated by this processor
will appear to have been created here, so you can't track that a flow file "A"
came in and, as a result, generated flow files X,Y,Z.
---