Author: markt
Date: Wed Aug 25 16:44:08 2010
New Revision: 989211

URL: http://svn.apache.org/viewvc?rev=989211&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=38113

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/Request.java
    tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=989211&r1=989210&r2=989211&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Wed Aug 25 
16:44:08 2010
@@ -2032,12 +2032,7 @@ public class Request
      * Return the query string associated with this request.
      */
     public String getQueryString() {
-        String queryString = coyoteRequest.queryString().toString();
-        if (queryString == null || queryString.equals("")) {
-            return null;
-        }
-
-        return queryString;
+        return coyoteRequest.queryString().toString();
     }
 
 

Modified: tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java?rev=989211&r1=989210&r2=989211&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java (original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java Wed Aug 25 
16:44:08 2010
@@ -201,6 +201,51 @@ public class TestRequest extends TomcatB
     }
 
     /**
+     * Test case for
+     * <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=38113";>bug
+     * 38118</a>.
+     */
+    public void testBug38113() throws Exception {
+        // Setup Tomcat instance
+        Tomcat tomcat = getTomcatInstance();
+        
+        // Must have a real docBase - just use temp
+        Context ctx = 
+            tomcat.addContext("/", System.getProperty("java.io.tmpdir"));
+
+        // Add the Servlet
+        Tomcat.addServlet(ctx, "servlet", new EchoQueryStringServlet());
+        ctx.addServletMapping("/", "servlet");
+        
+        tomcat.start();
+
+        // No query string
+        ByteChunk res = getUrl("http://localhost:"; + getPort() + "/");
+        assertEquals("QueryString=null", res.toString());
+        
+        // Query string
+        res = getUrl("http://localhost:"; + getPort() + "/?a=b");
+        assertEquals("QueryString=a=b", res.toString());
+
+        // Empty string
+        res = getUrl("http://localhost:"; + getPort() + "/?");
+        assertEquals("QueryString=", res.toString());
+    }
+    
+    private static final class EchoQueryStringServlet extends HttpServlet {
+
+        private static final long serialVersionUID = 1L;
+
+        @Override
+        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+                throws ServletException, IOException {
+            resp.setContentType("text/plain");
+            PrintWriter pw = resp.getWriter();
+            pw.print("QueryString=" + req.getQueryString());
+        }
+    }
+
+    /**
      * Test case for {...@link Request#login(String, String)} and
      * {...@link Request#logout()}.
      */
@@ -227,7 +272,6 @@ public class TestRequest extends TomcatB
         tomcat.start();
         
         ByteChunk res = getUrl("http://localhost:"; + getPort() + "/");
-
         assertEquals(LoginLogoutServlet.OK, res.toString());
     }
     



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to