[ https://issues.apache.org/jira/browse/HADOOP-13736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15590058#comment-15590058 ]
Aaron Fabbri commented on HADOOP-13736: --------------------------------------- Example code: In init code: {code} if (fs instanceof S3AFileSystem) { isS3A = true; } {code} Example from put() {code} // S3A-specific logic to maintain S3AFileStatus#isEmptyDirectory() if (isS3A) { setS3AIsEmpty(parentPath, false); } {code} Implementation: {code} private void setS3AIsEmpty(Path path, boolean isEmpty) { // Update any file statuses in fileHash PathMetadata meta = fileHash.get(path); if (meta != null) { S3AFileStatus s3aStatus = (S3AFileStatus)meta.getFileStatus(); s3aStatus.setIsEmptyDirectory(isEmpty); } ... {code} > Change PathMetadata to hold S3AFileStatus instead of FileStatus. > ---------------------------------------------------------------- > > Key: HADOOP-13736 > URL: https://issues.apache.org/jira/browse/HADOOP-13736 > Project: Hadoop Common > Issue Type: Sub-task > Components: fs/s3 > Reporter: Lei (Eddy) Xu > Assignee: Lei (Eddy) Xu > > {{S3AFileStatus}} is implemented differently with {{FileStatus}}, for > instance {{S3AFileStatus#isEmptyDirectory()}} is not implemented in > {{FileStatus()}}. And {{access_time}}, {{block_replication}}, {{owner}}, > {{group}} and a few other fields are not meaningful in {{S3AFileStatus}}. > So in the scope of {{S3guard}}, it should use {{S3AFileStatus}} in instead > of {{FileStatus}} in {{PathMetadaa}} to avoid casting the types back and > forth in S3A. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org