Skip to content

Commit 8867fb9

Browse files
xuezhou25ashking94
authored andcommitted
Fixed misunderstanding message 'No OpenSearchException found' when detailed_error disabled (opensearch-project#4669)
* Fixed misunderstanding message 'No OpenSearchException found' when detailed_error disabled Signed-off-by: Xue Zhou <[email protected]>
1 parent 3d20e84 commit 8867fb9

File tree

6 files changed

+25
-10
lines changed

6 files changed

+25
-10
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
116116
- [Segment Replication] Adding check to make sure checkpoint is not processed when a shard's shard routing is primary ([#4630](https://github.com/opensearch-project/OpenSearch/pull/4630))
117117
- [Bug]: Fixed invalid location of JDK dependency for arm64 architecture([#4613](https://github.com/opensearch-project/OpenSearch/pull/4613))
118118
- [Bug]: Alias filter lost after rollover ([#4499](https://github.com/opensearch-project/OpenSearch/pull/4499))
119+
- Fixed misunderstanding message "No OpenSearchException found" when detailed_error disabled ([#4669](https://github.com/opensearch-project/OpenSearch/pull/4669))
119120
- Attempt to fix Github workflow for Gradle Check job ([#4679](https://github.com/opensearch-project/OpenSearch/pull/4679))
120121
- Fix flaky DecommissionControllerTests.testTimesOut ([4683](https://github.com/opensearch-project/OpenSearch/pull/4683))
121122
- Fix new race condition in DecommissionControllerTests ([4688](https://github.com/opensearch-project/OpenSearch/pull/4688))

server/src/main/java/org/opensearch/ExceptionsHelper.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,21 @@ public static RestStatus status(Throwable t) {
9999
return RestStatus.INTERNAL_SERVER_ERROR;
100100
}
101101

102+
public static String summaryMessage(Throwable t) {
103+
if (t != null) {
104+
if (t instanceof OpenSearchException) {
105+
return t.getClass().getSimpleName() + "[" + t.getMessage() + "]";
106+
} else if (t instanceof IllegalArgumentException) {
107+
return "Invalid argument";
108+
} else if (t instanceof JsonParseException) {
109+
return "Failed to parse JSON";
110+
} else if (t instanceof OpenSearchRejectedExecutionException) {
111+
return "Too many requests";
112+
}
113+
}
114+
return "Internal failure";
115+
}
116+
102117
public static Throwable unwrapCause(Throwable t) {
103118
int counter = 0;
104119
Throwable result = t;

server/src/main/java/org/opensearch/OpenSearchException.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -594,16 +594,14 @@ public static void generateFailureXContent(XContentBuilder builder, Params param
594594

595595
// Render the exception with a simple message
596596
if (detailed == false) {
597-
String message = "No OpenSearchException found";
598597
Throwable t = e;
599598
for (int counter = 0; counter < 10 && t != null; counter++) {
600599
if (t instanceof OpenSearchException) {
601-
message = t.getClass().getSimpleName() + "[" + t.getMessage() + "]";
602600
break;
603601
}
604602
t = t.getCause();
605603
}
606-
builder.field(ERROR, message);
604+
builder.field(ERROR, ExceptionsHelper.summaryMessage(t));
607605
return;
608606
}
609607

server/src/test/java/org/opensearch/ExceptionsHelperTests.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@ public void testStatus() {
113113
assertThat(ExceptionsHelper.status(new OpenSearchRejectedExecutionException("rejected")), equalTo(RestStatus.TOO_MANY_REQUESTS));
114114
}
115115

116+
public void testSummaryMessage() {
117+
assertThat(ExceptionsHelper.summaryMessage(new IllegalArgumentException("illegal")), equalTo("Invalid argument"));
118+
assertThat(ExceptionsHelper.summaryMessage(new JsonParseException(null, "illegal")), equalTo("Failed to parse JSON"));
119+
assertThat(ExceptionsHelper.summaryMessage(new OpenSearchRejectedExecutionException("rejected")), equalTo("Too many requests"));
120+
}
121+
116122
public void testGroupBy() {
117123
ShardOperationFailedException[] failures = new ShardOperationFailedException[] {
118124
createShardFailureParsingException("error", "node0", "index", 0, null),

server/src/test/java/org/opensearch/OpenSearchExceptionTests.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -814,12 +814,7 @@ public void testFailureToAndFromXContentWithNoDetails() throws IOException {
814814
}
815815
assertNotNull(parsedFailure);
816816

817-
String reason;
818-
if (failure instanceof OpenSearchException) {
819-
reason = failure.getClass().getSimpleName() + "[" + failure.getMessage() + "]";
820-
} else {
821-
reason = "No OpenSearchException found";
822-
}
817+
String reason = ExceptionsHelper.summaryMessage(failure);
823818
assertEquals(OpenSearchException.buildMessage("exception", reason, null), parsedFailure.getMessage());
824819
assertEquals(0, parsedFailure.getHeaders().size());
825820
assertEquals(0, parsedFailure.getMetadata().size());

server/src/test/java/org/opensearch/rest/BytesRestResponseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public void testNonOpenSearchExceptionIsNotShownAsSimpleMessage() throws Excepti
117117
assertThat(text, not(containsString("UnknownException[an error occurred reading data]")));
118118
assertThat(text, not(containsString("FileNotFoundException[/foo/bar]")));
119119
assertThat(text, not(containsString("error_trace")));
120-
assertThat(text, containsString("\"error\":\"No OpenSearchException found\""));
120+
assertThat(text, containsString("\"error\":\"Internal failure\""));
121121
}
122122

123123
public void testErrorTrace() throws Exception {

0 commit comments

Comments
 (0)