Skip to content

Commit 7a3afea

Browse files
author
Anuj Modi
committed
Adding ActivityId(rid) in Excpetion
1 parent b6d06c8 commit 7a3afea

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/contracts/exceptions/AbfsRestOperationException.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,20 +84,22 @@ private static String formatMessage(final AbfsHttpOperation abfsHttpOperation) {
8484
// HEAD request response doesn't have StorageErrorCode, StorageErrorMessage.
8585
if (abfsHttpOperation.getMethod().equals("HEAD")) {
8686
return String.format(
87-
"Operation failed: \"%1$s\", %2$s, HEAD, %3$s",
88-
abfsHttpOperation.getStatusDescription(),
89-
abfsHttpOperation.getStatusCode(),
90-
abfsHttpOperation.getMaskedUrl());
87+
"Operation failed: \"%1$s\", %2$s, HEAD, %3$ss, rId: %4$s",
88+
abfsHttpOperation.getStatusDescription(),
89+
abfsHttpOperation.getStatusCode(),
90+
abfsHttpOperation.getMaskedUrl(),
91+
abfsHttpOperation.getRequestId());
9192
}
9293

9394
return String.format(
94-
"Operation failed: \"%1$s\", %2$s, %3$s, %4$s, %5$s, \"%6$s\"",
95-
abfsHttpOperation.getStatusDescription(),
96-
abfsHttpOperation.getStatusCode(),
97-
abfsHttpOperation.getMethod(),
98-
abfsHttpOperation.getMaskedUrl(),
99-
abfsHttpOperation.getStorageErrorCode(),
100-
// Remove break line to ensure the request id and timestamp can be shown in console.
101-
abfsHttpOperation.getStorageErrorMessage().replaceAll("\\n", " "));
95+
"Operation failed: \"%1$s\", %2$s, %3$s, %4$s, rId: %5$s, %6$s, \"%7$s\"",
96+
abfsHttpOperation.getStatusDescription(),
97+
abfsHttpOperation.getStatusCode(),
98+
abfsHttpOperation.getMethod(),
99+
abfsHttpOperation.getMaskedUrl(),
100+
abfsHttpOperation.getRequestId(),
101+
abfsHttpOperation.getStorageErrorCode(),
102+
// Remove break line to ensure the request id and timestamp can be shown in console.
103+
abfsHttpOperation.getStorageErrorMessage().replaceAll("\\n", " "));
102104
}
103105
}

hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/ITestAbfsRestOperationException.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,14 @@ public void testAbfsRestOperationExceptionFormat() throws IOException {
6060
String errorMessage = ex.getLocalizedMessage();
6161
String[] errorFields = errorMessage.split(",");
6262

63-
Assert.assertEquals(4, errorFields.length);
63+
// Expected Fields are: Message, StatusCode, Method, URL, ActivityId(rId)
64+
Assert.assertEquals(5, errorFields.length);
6465
// Check status message, status code, HTTP Request Type and URL.
6566
Assert.assertEquals("Operation failed: \"The specified path does not exist.\"", errorFields[0].trim());
6667
Assert.assertEquals("404", errorFields[1].trim());
6768
Assert.assertEquals("HEAD", errorFields[2].trim());
6869
Assert.assertTrue(errorFields[3].trim().startsWith("http"));
70+
Assert.assertTrue(errorFields[4].trim().startsWith("rId:"));
6971
}
7072

7173
try {
@@ -76,16 +78,17 @@ public void testAbfsRestOperationExceptionFormat() throws IOException {
7678
String[] errorFields = errorMessage.split(",");
7779
Assertions.assertThat(errorFields)
7880
.describedAs("fields in exception of %s", ex)
79-
.hasSize(6);
81+
.hasSize(7);
8082
// Check status message, status code, HTTP Request Type and URL.
8183
Assert.assertEquals("Operation failed: \"The specified path does not exist.\"", errorFields[0].trim());
8284
Assert.assertEquals("404", errorFields[1].trim());
8385
Assert.assertEquals("GET", errorFields[2].trim());
8486
Assert.assertTrue(errorFields[3].trim().startsWith("http"));
87+
Assert.assertTrue(errorFields[4].trim().startsWith("rId:"));
8588
// Check storage error code and storage error message.
86-
Assert.assertEquals("PathNotFound", errorFields[4].trim());
87-
Assert.assertTrue(errorFields[5].contains("RequestId")
88-
&& errorFields[5].contains("Time"));
89+
Assert.assertEquals("PathNotFound", errorFields[5].trim());
90+
Assert.assertTrue(errorFields[6].contains("RequestId")
91+
&& errorFields[6].contains("Time"));
8992
}
9093
}
9194

0 commit comments

Comments
 (0)