steveloughran commented on a change in pull request #2530:
URL: https://github.com/apache/hadoop/pull/2530#discussion_r555242848
##########
File path:
hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java
##########
@@ -4103,56 +4111,7 @@ private ObjectMetadata
cloneObjectMetadata(ObjectMetadata source) {
// in future there are new attributes added to ObjectMetadata
// that we do not explicitly call to set here
ObjectMetadata ret = newObjectMetadata(source.getContentLength());
-
- // Possibly null attributes
- // Allowing nulls to pass breaks it during later use
- if (source.getCacheControl() != null) {
- ret.setCacheControl(source.getCacheControl());
- }
- if (source.getContentDisposition() != null) {
- ret.setContentDisposition(source.getContentDisposition());
- }
- if (source.getContentEncoding() != null) {
- ret.setContentEncoding(source.getContentEncoding());
- }
- if (source.getContentMD5() != null) {
- ret.setContentMD5(source.getContentMD5());
- }
- if (source.getContentType() != null) {
- ret.setContentType(source.getContentType());
- }
- if (source.getExpirationTime() != null) {
- ret.setExpirationTime(source.getExpirationTime());
- }
- if (source.getExpirationTimeRuleId() != null) {
- ret.setExpirationTimeRuleId(source.getExpirationTimeRuleId());
- }
- if (source.getHttpExpiresDate() != null) {
- ret.setHttpExpiresDate(source.getHttpExpiresDate());
- }
- if (source.getLastModified() != null) {
- ret.setLastModified(source.getLastModified());
- }
- if (source.getOngoingRestore() != null) {
- ret.setOngoingRestore(source.getOngoingRestore());
- }
- if (source.getRestoreExpirationTime() != null) {
- ret.setRestoreExpirationTime(source.getRestoreExpirationTime());
- }
- if (source.getSSEAlgorithm() != null) {
- ret.setSSEAlgorithm(source.getSSEAlgorithm());
- }
- if (source.getSSECustomerAlgorithm() != null) {
- ret.setSSECustomerAlgorithm(source.getSSECustomerAlgorithm());
- }
- if (source.getSSECustomerKeyMd5() != null) {
- ret.setSSECustomerKeyMd5(source.getSSECustomerKeyMd5());
- }
-
- for (Map.Entry<String, String> e : source.getUserMetadata().entrySet()) {
- ret.addUserMetadata(e.getKey(), e.getValue());
- }
- return ret;
+ return getHeaderProcessing().cloneObjectMetadata(source, ret);
Review comment:
will do, especially as its a bit less brittle now
##########
File path:
hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java
##########
@@ -4382,6 +4341,37 @@ public EtagChecksum getFileChecksum(Path f, final long
length)
}
}
+ /**
+ * Get header processing support.
+ * @return the header processing of this instance.
+ */
+ private HeaderProcessing getHeaderProcessing() {
+ return headerProcessing;
+ }
+
+ @Override
+ public byte[] getXAttr(final Path path, final String name)
+ throws IOException {
+ return getHeaderProcessing().getXAttr(path, name);
+ }
+
+ @Override
+ public Map<String, byte[]> getXAttrs(final Path path) throws IOException {
+ return getHeaderProcessing().getXAttrs(path);
+ }
+
+ @Override
+ public Map<String, byte[]> getXAttrs(final Path path,
+ final List<String> names)
+ throws IOException {
+ return getHeaderProcessing().getXAttrs(path, names);
+ }
+
+ @Override
+ public List<String> listXAttrs(final Path path) throws IOException {
+ return headerProcessing.listXAttrs(path);
Review comment:
ok
----------------------------------------------------------------
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:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]