This is an automated email from the ASF dual-hosted git repository. imaxon pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 0d88d1187acfe1902e766e1bfeec6c3d2d3384a5 Author: Ali Alsuliman <[email protected]> AuthorDate: Thu Apr 22 17:46:12 2021 +0300 [NO ISSUE][API] Make the AbstractServlet look for /* wild card - user model changes: no - storage format changes: no - interface changes: no Details: Make the AbstractServlet look for /* wild card to determine the servlet path length Change-Id: I74d393ede9e3bcf91222e2aa0e4a501a48ac0cf3 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11144 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Michael Blow <[email protected]> --- .../api/http/server/AbstractNCUdfServlet.java | 2 +- .../hyracks/http/server/AbstractServlet.java | 23 +++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractNCUdfServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractNCUdfServlet.java index cf287d9..5a3cde6 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractNCUdfServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractNCUdfServlet.java @@ -134,7 +134,7 @@ public abstract class AbstractNCUdfServlet extends AbstractServlet { } URI createDownloadURI(Path file) throws Exception { - String path = paths[0].substring(0, trims[0]) + GET_UDF_DIST_ENDPOINT + '/' + file.getFileName(); + String path = paths[0].substring(0, servletPathLengths[0]) + GET_UDF_DIST_ENDPOINT + '/' + file.getFileName(); String host = getHyracksClientConnection().getHost(); return new URI(httpServerProtocol.toString(), null, host, httpServerPort, path, null, null); } diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java index 514a7dd..ed567f5 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java @@ -53,20 +53,20 @@ public abstract class AbstractServlet implements IServlet { protected final String[] paths; protected final ConcurrentMap<String, Object> ctx; - protected final int[] trims; + protected final int[] servletPathLengths; public AbstractServlet(ConcurrentMap<String, Object> ctx, String... paths) { this.paths = paths; this.ctx = ctx; - trims = new int[paths.length]; + servletPathLengths = new int[paths.length]; for (int i = 0; i < paths.length; i++) { String path = paths[i]; if (path.endsWith("/*")) { - trims[i] = path.indexOf("/*"); + servletPathLengths[i] = path.indexOf("/*"); } else if (path.endsWith("/")) { - trims[i] = path.length() - 1; + servletPathLengths[i] = path.length() - 1; } else { - trims[i] = path.length(); + servletPathLengths[i] = path.length(); } } } @@ -175,26 +175,27 @@ public abstract class AbstractServlet implements IServlet { public String localPath(IServletRequest request) { final String uri = request.getHttpRequest().uri(); int queryStart = uri.indexOf('?'); - return queryStart == -1 ? uri.substring(trim(uri)) : uri.substring(trim(uri), queryStart); + return queryStart == -1 ? uri.substring(servletLength(uri)) : uri.substring(servletLength(uri), queryStart); } public String servletPath(IServletRequest request) { final String uri = request.getHttpRequest().uri(); - return uri.substring(0, trim(uri)); + return uri.substring(0, servletLength(uri)); } - protected int trim(final String uri) { + protected int servletLength(final String uri) { int trim = -1; if (paths.length > 1) { for (int i = 0; i < paths.length; i++) { - String path = paths[i].indexOf('*') >= 0 ? paths[i].substring(0, paths[i].indexOf('*')) : paths[i]; + int wildCardIdx = paths[i].indexOf("/*"); + String path = wildCardIdx >= 0 ? paths[i].substring(0, wildCardIdx) : paths[i]; if (uri.indexOf(path) == 0) { - trim = trims[i]; + trim = servletPathLengths[i]; break; } } } else { - trim = trims[0]; + trim = servletPathLengths[0]; } return trim; }
