Repository: incubator-juneau Updated Branches: refs/heads/master 101a97905 -> a69156a81
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a69156a8/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java ---------------------------------------------------------------------- diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java index b0617bd..03b7c38 100644 --- a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java +++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestHeaders.java @@ -66,7 +66,7 @@ public class RequestHeaders extends TreeMap<String,String[]> { for (Map.Entry<String,String> e : defaultEntries.entrySet()) { String key = e.getKey(), value = e.getValue(); String[] v = get(key); - if (v == null) + if (v == null || v.length == 0 || StringUtils.isEmpty(v[0])) put(key, new String[]{value}); } } @@ -84,12 +84,10 @@ public class RequestHeaders extends TreeMap<String,String[]> { // Optimized for enumerations of one entry, the most-common case. if (values.hasMoreElements()) { String v = values.nextElement(); - if (! v.isEmpty()) { - String[] s = new String[]{v}; - while (values.hasMoreElements()) - s = ArrayUtils.append(s, values.nextElement()); - put(name, s); - } + String[] s = new String[]{v}; + while (values.hasMoreElements()) + s = ArrayUtils.append(s, values.nextElement()); + put(name, s); } return this; } @@ -103,7 +101,14 @@ public class RequestHeaders extends TreeMap<String,String[]> { * @return The header value, or <jk>null</jk> if it doesn't exist. */ public String getFirst(String name) { - return getFirst(name, null); + String[] v = null; + if (queryParams != null) + v = queryParams.get(name); + if (v == null || v.length == 0) + v = get(name); + if (v == null || v.length == 0) + return null; + return v[0]; } /** @@ -116,14 +121,8 @@ public class RequestHeaders extends TreeMap<String,String[]> { * @return The header value, or the default value if the header isn't present. */ public String getFirst(String name, String def) { - String[] v = null; - if (queryParams != null) - v = queryParams.get(name); - if (v == null || v.length == 0) - v = get(name); - if (v == null || v.length == 0) - return def; - return v[0]; + String s = getFirst(name); + return StringUtils.isEmpty(s) ? def : s; } /** http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a69156a8/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java ---------------------------------------------------------------------- diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java index 1a9b758..bdb9b60 100644 --- a/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java +++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RequestQuery.java @@ -55,7 +55,7 @@ public final class RequestQuery extends LinkedHashMap<String,String[]> { for (Map.Entry<String,String> e : defaultEntries.entrySet()) { String key = e.getKey(), value = e.getValue(); String[] v = get(key); - if (v == null) + if (v == null || v.length == 0 || StringUtils.isEmpty(v[0])) put(key, new String[]{value}); } } @@ -86,13 +86,13 @@ public final class RequestQuery extends LinkedHashMap<String,String[]> { String[] v = get(name); if (v == null || v.length == 0) return null; - if (v.length == 1 && v[0] != null && v[0].isEmpty()) { - // Fix for behavior difference between Tomcat and WAS. - // getParameter("foo") on "&foo" in Tomcat returns "". - // getParameter("foo") on "&foo" in WAS returns null. - if (containsKey(name)) - return null; - } + + // Fix for behavior difference between Tomcat and WAS. + // getParameter("foo") on "&foo" in Tomcat returns "". + // getParameter("foo") on "&foo" in WAS returns null. + if (v.length == 1 && v[0] == null) + return ""; + return v[0]; } @@ -105,7 +105,7 @@ public final class RequestQuery extends LinkedHashMap<String,String[]> { */ public String getFirst(String name, String def) { String s = getFirst(name); - return s == null ? def : s; + return StringUtils.isEmpty(s) ? def : s; } /** http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a69156a8/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java ---------------------------------------------------------------------- diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java b/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java index e622c8a..fd141e7 100644 --- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java +++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestRequest.java @@ -457,13 +457,13 @@ public final class RestRequest extends HttpServletRequestWrapper { * <p> * The URI context contains all the information about the URI of the request, such * as the servlet URI, context path, etc... - * + * * @return The URI context of the request. */ public UriContext getUriContext() { if (uriContext == null) { String authority = StringUtils.getAuthorityUri(super.getRequestURL().toString()); - uriContext = new UriContext(authority, super.getContextPath(), super.getServletPath(), super.getPathInfo()); + uriContext = new UriContext(UriResolution.ROOT_RELATIVE, UriRelativity.RESOURCE, authority, super.getContextPath(), super.getServletPath(), super.getPathInfo()); } return uriContext; }
