diff --git a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/auth/ITestCustomSigner.java b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/auth/ITestCustomSigner.java index cbba326d5e..a829d470e7 100644 --- a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/auth/ITestCustomSigner.java +++ b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/auth/ITestCustomSigner.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.security.PrivilegedExceptionAction; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -228,10 +227,13 @@ private String parseBucketFromHost(String host) { if (service.contains("s3-accesspoint") || service.contains("s3-outposts") || service.contains("s3-object-lambda")) { // If AccessPoint then bucketName is of format `accessPoint-accountId`; - String[] accessPointBits = hostBits[0].split("-"); - int lastElem = accessPointBits.length - 1; - String accountId = accessPointBits[lastElem]; - String accessPointName = String.join("", Arrays.copyOf(accessPointBits, lastElem)); + String[] accessPointBits = bucketName.split("-"); + String accountId = accessPointBits[accessPointBits.length - 1]; + // Extract the access point name from bucket name. eg: if bucket name is + // test-custom-signer-, get the access point name test-custom-signer by removing + // - from the bucket name. + String accessPointName = + bucketName.substring(0, bucketName.length() - (accountId.length() + 1)); Arn arn = Arn.builder() .withAccountId(accountId) .withPartition("aws")