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 <rkun...@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 <sidmis...@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());
+        }
     }
 }

Reply via email to