You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by si...@apache.org on 2021/10/26 21:16:55 UTC

[atlas] branch master updated: ATLAS-4461: DSL Search : DSL Search with only typename throws NPE

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

sidmishra pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git


The following commit(s) were added to refs/heads/master by this push:
     new a5ffaae  ATLAS-4461: DSL Search : DSL Search with only typename throws NPE
a5ffaae is described below

commit a5ffaae5cb8649a476b233db83ebe1f149991f5d
Author: Radhika Kundam <rk...@cloudera.com>
AuthorDate: Fri Oct 22 17:59:54 2021 -0700

    ATLAS-4461: DSL Search : DSL Search with only typename throws NPE
    
    Signed-off-by: Sidharth Mishra <si...@apache.org>
---
 .../src/main/java/org/apache/atlas/web/rest/DiscoveryREST.java | 10 +++++-----
 webapp/src/main/java/org/apache/atlas/web/util/Servlets.java   | 10 +++++++---
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/webapp/src/main/java/org/apache/atlas/web/rest/DiscoveryREST.java b/webapp/src/main/java/org/apache/atlas/web/rest/DiscoveryREST.java
index 287b611..0b044d4 100644
--- a/webapp/src/main/java/org/apache/atlas/web/rest/DiscoveryREST.java
+++ b/webapp/src/main/java/org/apache/atlas/web/rest/DiscoveryREST.java
@@ -110,16 +110,16 @@ public class DiscoveryREST {
         Servlets.validateQueryParamLength("typeName", typeName);
         Servlets.validateQueryParamLength("classification", classification);
 
-        if (StringUtils.isNotEmpty(query) && query.length() > maxDslQueryLength) {
-            throw new AtlasBaseException(AtlasErrorCode.INVALID_QUERY_LENGTH, Constants.MAX_DSL_QUERY_STR_LENGTH);
+        if (StringUtils.isNotEmpty(query)) {
+            if (query.length() > maxDslQueryLength) {
+                throw new AtlasBaseException(AtlasErrorCode.INVALID_QUERY_LENGTH, Constants.MAX_DSL_QUERY_STR_LENGTH);
+            }
+            query = Servlets.decodeQueryString(query);
         }
 
         AtlasPerfTracer perf = null;
 
         try {
-
-            query = Servlets.decodeQueryString(query);
-
             if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
                 perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "DiscoveryREST.searchUsingDSL(" + query + "," + typeName
                         + "," + classification + "," + limit + "," + offset + ")");
diff --git a/webapp/src/main/java/org/apache/atlas/web/util/Servlets.java b/webapp/src/main/java/org/apache/atlas/web/util/Servlets.java
index bc7e71b..f27ce19 100755
--- a/webapp/src/main/java/org/apache/atlas/web/util/Servlets.java
+++ b/webapp/src/main/java/org/apache/atlas/web/util/Servlets.java
@@ -214,8 +214,12 @@ public final class Servlets {
         }
     }
 
-    public static String decodeQueryString(String query) {
-        return UriUtils.decode(query,"UTF-8");
-
+    public static String decodeQueryString(String query) throws AtlasBaseException {
+        try {
+            return UriUtils.decode(query,"UTF-8");
+        } catch (Exception e) {
+            LOG.error("Error occurred while decoding query:" + query, e.getMessage());
+            throw new AtlasBaseException(e.getMessage());
+        }
     }
 }