From 322be7503ed1fb172021cf7c6c5ff450db3070a1 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Mon, 25 Nov 2019 14:35:33 +0000 Subject: [PATCH] Return 400 when handling invalid JSON --- server/src/main/java/org/elasticsearch/ExceptionsHelper.java | 3 +++ .../src/test/java/org/elasticsearch/ExceptionsHelperTests.java | 2 ++ 2 files changed, 5 insertions(+) diff --git a/server/src/main/java/org/elasticsearch/ExceptionsHelper.java b/server/src/main/java/org/elasticsearch/ExceptionsHelper.java index cc0c1b9c56a24..71b47d646417e 100644 --- a/server/src/main/java/org/elasticsearch/ExceptionsHelper.java +++ b/server/src/main/java/org/elasticsearch/ExceptionsHelper.java @@ -19,6 +19,7 @@ package org.elasticsearch; +import com.fasterxml.jackson.core.JsonParseException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.lucene.index.CorruptIndexException; @@ -71,6 +72,8 @@ public static RestStatus status(Throwable t) { return ((ElasticsearchException) t).status(); } else if (t instanceof IllegalArgumentException) { return RestStatus.BAD_REQUEST; + } else if (t instanceof JsonParseException) { + return RestStatus.BAD_REQUEST; } else if (t instanceof EsRejectedExecutionException) { return RestStatus.TOO_MANY_REQUESTS; } diff --git a/server/src/test/java/org/elasticsearch/ExceptionsHelperTests.java b/server/src/test/java/org/elasticsearch/ExceptionsHelperTests.java index 3b5d1ad43da97..5e8cc4f602706 100644 --- a/server/src/test/java/org/elasticsearch/ExceptionsHelperTests.java +++ b/server/src/test/java/org/elasticsearch/ExceptionsHelperTests.java @@ -19,6 +19,7 @@ package org.elasticsearch; +import com.fasterxml.jackson.core.JsonParseException; import org.apache.commons.codec.DecoderException; import org.apache.lucene.index.CorruptIndexException; import org.elasticsearch.action.OriginalIndices; @@ -95,6 +96,7 @@ private void assertError(final Throwable cause, final Error error) { public void testStatus() { assertThat(ExceptionsHelper.status(new IllegalArgumentException("illegal")), equalTo(RestStatus.BAD_REQUEST)); + assertThat(ExceptionsHelper.status(new JsonParseException(null, "illegal")), equalTo(RestStatus.BAD_REQUEST)); assertThat(ExceptionsHelper.status(new EsRejectedExecutionException("rejected")), equalTo(RestStatus.TOO_MANY_REQUESTS)); }