You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2022/08/29 16:19:09 UTC

[sling-org-apache-sling-graphql-core] branch issue/SLING-11248 created (now 2a398c3)

This is an automated email from the ASF dual-hosted git repository.

radu pushed a change to branch issue/SLING-11248
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-graphql-core.git


      at 2a398c3  SLING-11248 - Post empty body should fail gracefully

This branch includes the following new commits:

     new 2a398c3  SLING-11248 - Post empty body should fail gracefully

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[sling-org-apache-sling-graphql-core] 01/01: SLING-11248 - Post empty body should fail gracefully

Posted by ra...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

radu pushed a commit to branch issue/SLING-11248
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-graphql-core.git

commit 2a398c3a36c707f22c3a699dfab1133bbbdc2013
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Mon Aug 29 18:16:51 2022 +0200

    SLING-11248 - Post empty body should fail gracefully
    
    * applied slightly modified patch
    
    Co-authored-by: Thierry Ygé <ty...@adobe.com>
---
 .../sling/graphql/core/servlet/QueryParser.java      |  6 ++++++
 .../graphql/core/servlet/GraphQLServletTest.java     | 20 ++++++++++++++------
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/apache/sling/graphql/core/servlet/QueryParser.java b/src/main/java/org/apache/sling/graphql/core/servlet/QueryParser.java
index 9f4f00e..2b6b0ce 100644
--- a/src/main/java/org/apache/sling/graphql/core/servlet/QueryParser.java
+++ b/src/main/java/org/apache/sling/graphql/core/servlet/QueryParser.java
@@ -33,9 +33,13 @@ import org.apache.johnzon.mapper.MapperBuilder;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class QueryParser {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(QueryParser.class);
+
     private QueryParser() {}
 
     static class Result {
@@ -88,6 +92,8 @@ public class QueryParser {
                 if (input.containsKey(JSON_KEY_VARIABLES)) {
                     variables = MAPPER.readObject(input.get(JSON_KEY_VARIABLES), Map.class);
                 }
+            } catch (Exception e) {
+                LOGGER.error("Invalid payload.", e);
             }
         }
 
diff --git a/src/test/java/org/apache/sling/graphql/core/servlet/GraphQLServletTest.java b/src/test/java/org/apache/sling/graphql/core/servlet/GraphQLServletTest.java
index 1fe9d84..39f1f8d 100644
--- a/src/test/java/org/apache/sling/graphql/core/servlet/GraphQLServletTest.java
+++ b/src/test/java/org/apache/sling/graphql/core/servlet/GraphQLServletTest.java
@@ -174,7 +174,7 @@ public class GraphQLServletTest {
         assertEquals(0.5f, metricRegistry.getGauges().get(expectedMetric).getValue());
     }
 
-    private void assertPostWithBody(String contentType, int expectedStatus) throws IOException {
+    private void assertPostWithBody(String contentType, String query, int expectedStatus) throws IOException {
         context.registerInjectActivateService(new SimpleGraphQLCacheProvider());
         context.registerInjectActivateService(new GraphQLServlet(), ServletResolverConstants.SLING_SERVLET_RESOURCE_TYPES, TEST_RESOURCE_TYPE,
                 "persistedQueries.suffix", "");
@@ -185,7 +185,7 @@ public class GraphQLServletTest {
         MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(context.bundleContext());
 
         request.setMethod("POST");
-        request.setContent(TEST_QUERY.getBytes(StandardCharsets.UTF_8));
+        request.setContent(query.getBytes(StandardCharsets.UTF_8));
         request.setContentType(contentType);
 
         request.setResource(resource);
@@ -199,21 +199,29 @@ public class GraphQLServletTest {
 
     @Test
     public void testBasicJsonContentType() throws IOException {
-        assertPostWithBody("application/json", 200);
+        assertPostWithBody("application/json", TEST_QUERY, 200);
     }
 
     @Test
     public void testJsonContentTypeWithCharset() throws IOException {
-        assertPostWithBody("application/json  ; charset=UTF-8", 200);
+        assertPostWithBody("application/json  ; charset=UTF-8", TEST_QUERY,200);
     }
 
     @Test
     public void testNoContentType() throws IOException {
-        assertPostWithBody(null, 400);
+        assertPostWithBody(null, TEST_QUERY, 400);
     }
 
     @Test
     public void testWrongContentType() throws IOException {
-        assertPostWithBody("text/html", 400);
+        assertPostWithBody("text/html", TEST_QUERY, 400);
+    }
+
+    /**
+     * SLING-11248 NothingToRead exception should return 400.
+     */
+    @Test
+    public void testEmptyQueryNothingToRead() throws IOException {
+        assertPostWithBody("application/json  ; charset=UTF-8", "", 400);
     }
 }