markap14 commented on a change in pull request #3702: NIFI-6636: Fixed ListGCSBucket file duplication error URL: https://github.com/apache/nifi/pull/3702#discussion_r322364290
########## File path: nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/storage/ListGCSBucket.java ########## @@ -381,40 +384,36 @@ public void onTrigger(ProcessContext context, ProcessSession session) throws Pro // Update state if (lastModified > maxTimestamp) { maxTimestamp = lastModified; - currentKeys.clear(); + maxKeys.clear(); } if (lastModified == maxTimestamp) { - currentKeys.add(blob.getName()); + maxKeys.add(blob.getName()); } - listCount++; + loadCount++; } - blobPages = blobPages.getNextPage(); - commit(context, session, listCount); - listCount = 0; - } while (blobPages != null); - - currentTimestamp = maxTimestamp; + commit(context, session, loadCount); - final long listMillis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNanos); - getLogger().info("Successfully listed GCS bucket {} in {} millis", new Object[]{bucket, listMillis}); + blobPage = blobPage.getNextPage(); + } while (blobPage != null); - if (!commit(context, session, listCount)) { - if (currentTimestamp > 0) { - persistState(context); - } - getLogger().debug("No new objects in GCS bucket {} to list. Yielding.", new Object[]{bucket}); + if (maxTimestamp != 0) { + currentTimestamp = maxTimestamp; + currentKeys = maxKeys; + persistState(context); + } else { + getLogger().debug("No new objects in GCS bucket {} to load. Yielding.", new Object[]{bucket}); context.yield(); } + + final long listMillis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNanos); + getLogger().info("Successfully listed GCS bucket {} in {} millis", new Object[]{bucket, listMillis}); } - private boolean commit(final ProcessContext context, final ProcessSession session, int listCount) { - boolean willCommit = listCount > 0; - if (willCommit) { - getLogger().info("Successfully listed {} new files from GCS; routing to success", new Object[] {listCount}); + private void commit(final ProcessContext context, final ProcessSession session, int loadCount) { + if (loadCount > 0) { + getLogger().info("Successfully loaded {} new files from GCS; routing to success", new Object[] {loadCount}); Review comment: Thanks, looks good to me. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services