This is an automated email from the ASF dual-hosted git repository. sidmishra pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/atlas.git
The following commit(s) were added to refs/heads/branch-2.0 by this push: new 7afaac6 ATLAS-4461: DSL Search : DSL Search with only typename throws NPE 7afaac6 is described below commit 7afaac6e2e9b8a10a8113d53491436f695a48bea 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> (cherry picked from commit a5ffaae5cb8649a476b233db83ebe1f149991f5d) --- .../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()); + } } }