Skip to content

Commit 7f90141

Browse files
committed
deep copy
1 parent 6649234 commit 7f90141

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/store/audit/HttpReferrerAuditHeader.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,24 @@ private HttpReferrerAuditHeader(
178178
// build the referrer up. so as to find/report problems early
179179
initialHeader = buildHttpReferrer();
180180
}
181-
181+
182182
/**
183-
* Build the referrer string.
183+
* Copy constructor.
184+
* Creates a deep copy of a HttpReferrerAuditHeader object
185+
*/
186+
public HttpReferrerAuditHeader(HttpReferrerAuditHeader httpReferrerAuditHeader) {
187+
this.contextId = requireNonNull(httpReferrerAuditHeader.contextId);
188+
this.evaluated = new ConcurrentHashMap<>(httpReferrerAuditHeader.evaluated);
189+
this.filter = ImmutableSet.copyOf(httpReferrerAuditHeader.filter);
190+
this.operationName = requireNonNull(httpReferrerAuditHeader.operationName);
191+
this.path1 = httpReferrerAuditHeader.path1;
192+
this.path2 = httpReferrerAuditHeader.path2;
193+
this.spanId = requireNonNull(httpReferrerAuditHeader.spanId);
194+
this.attributes = new ConcurrentHashMap<>(httpReferrerAuditHeader.attributes);
195+
this.initialHeader = httpReferrerAuditHeader.initialHeader;
196+
}
197+
198+
/* Build the referrer string.
184199
* This includes dynamically evaluating all of the evaluated
185200
* attributes.
186201
* If there is an error creating the string it will be logged once

hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AAuditHeaders.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,22 @@
44
import org.apache.hadoop.fs.store.audit.HttpReferrerAuditHeader;
55
import software.amazon.s3.analyticsaccelerator.request.AuditHeaders;
66

7+
import static org.apache.hadoop.fs.audit.AuditConstants.PARAM_THREAD0;
8+
import static org.apache.hadoop.fs.audit.AuditConstants.PARAM_TIMESTAMP;
9+
import static org.apache.hadoop.fs.audit.CommonAuditContext.currentThreadID;
10+
711
public class S3AAuditHeaders implements AuditHeaders {
812

9-
HttpReferrerAuditHeader referrer;
13+
private final HttpReferrerAuditHeader referrer;
1014

1115
public S3AAuditHeaders(HttpReferrerAuditHeader referrer) {
1216
this.referrer = referrer;
1317
}
1418

1519
@Override
16-
public void setGetRange(String range) {
17-
referrer.set(AuditConstants.PARAM_RANGE, range);
18-
}
19-
20-
@Override
21-
public String buildReferrerHeader() {
22-
return referrer.buildHttpReferrer();
20+
public String modifyAndBuildReferrerHeader(String range) {
21+
HttpReferrerAuditHeader copyReferrer = new HttpReferrerAuditHeader(this.referrer);
22+
copyReferrer.set(AuditConstants.PARAM_RANGE, range);
23+
return copyReferrer.buildHttpReferrer();
2324
}
2425
}

0 commit comments

Comments
 (0)