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;
        }

Reply via email to