bharatviswa504 commented on a change in pull request #1451: URL: https://github.com/apache/hadoop-ozone/pull/1451#discussion_r508891177
########## File path: hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java ########## @@ -919,12 +920,32 @@ private boolean isKeyEmpty(OmKeyInfo keyInfo) { // underlying table using an iterator. That automatically creates a // snapshot of the data, so we don't need these locks at a higher level // when we iterate. + + startKey = normalizeListKeyPath(startKey); + keyPrefix = normalizeListKeyPath(keyPrefix); + List<OmKeyInfo> keyList = metadataManager.listKeys(volumeName, bucketName, startKey, keyPrefix, maxKeys); refreshPipeline(keyList); return keyList; } + private String normalizeListKeyPath(String keyPath) { + + String normalizeKeyPath = keyPath; + if (enableFileSystemPaths) { + // For empty strings do nothing. + if (StringUtils.isBlank(keyPath)) { Review comment: Thanks for clear explanation, I have updated to move null check to normalizeKey method. >BTW (just a discussion not a code review comment): it can be useful to differentiate between normalization >(removing/resolving .., //) and handling closing /. My impression is that we need different rules for them. Updated OmUtils.normalizeKey to take the boolean flag to preseverTralingSlash if true will preserve it. In this way, this method can be used in listKey case with true, rest all code with false. Have a look in to it, and share ur suggestions on the approach. ---------------------------------------------------------------- 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 --------------------------------------------------------------------- To unsubscribe, e-mail: ozone-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: ozone-issues-h...@hadoop.apache.org