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.
---