Github user adamlamar commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2361#discussion_r158593061
  
    --- Diff: 
nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/ListS3.java
 ---
    @@ -267,26 +267,28 @@ public void onTrigger(final ProcessContext context, 
final ProcessSession session
                 commit(context, session, listCount);
                 listCount = 0;
             } while (bucketLister.isTruncated());
    -        currentTimestamp = maxTimestamp;
    +
    +        if (maxTimestamp > currentTimestamp) {
    +            currentTimestamp = maxTimestamp;
    +        }
     
             final long listMillis = 
TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNanos);
             getLogger().info("Successfully listed S3 bucket {} in {} millis", 
new Object[]{bucket, listMillis});
     
             if (!commit(context, session, listCount)) {
    -            if (currentTimestamp > 0) {
    -                persistState(context);
    -            }
                 getLogger().debug("No new objects in S3 bucket {} to list. 
Yielding.", new Object[]{bucket});
                 context.yield();
             }
    +
    +        // Persist all state, including any currentKeys
    +        persistState(context);
    --- End diff --
    
    Both exit paths already perform `persistState` - this just makes that more 
clear.


---

Reply via email to