[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 <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
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 @@
     }
 
     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 @@
 
     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 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;
     }