Author: jim
Date: Fri Sep  3 16:42:10 2010
New Revision: 992366

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

Modified:
    tomcat/tc5.5.x/trunk/STATUS.txt
    
tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/Request.java
    tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
    tomcat/tc5.5.x/trunk/container/webapps/docs/config/systemprops.xml

Modified: tomcat/tc5.5.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=992366&r1=992365&r2=992366&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/STATUS.txt (original)
+++ tomcat/tc5.5.x/trunk/STATUS.txt Fri Sep  3 16:42:10 2010
@@ -25,16 +25,6 @@ $Id$
 PATCHES PROPOSED TO BACKPORT:
   [ New proposals should be added at the end of the list ]
 
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=38113
-  Add system property to allow spec compliant handling of query string
-  http://people.apache.org/~markt/patches/2010-08-25-bug38113.patch
-  -1:
-  +1: kkolinko jim, rjung, markt: (only with the following trivial change:
-     s/Boolean.parseBoolean(..)/Boolean.valueOf(..).booleanValue()/
-     because parseBoolean is @since 1.5.
-     See Globals.java line 334 for an example.
-  )
-
 
 * Remove JSSE13Factory, JSSE13SocketFactory classes,
   because

Modified: 
tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/Request.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/Request.java?rev=992366&r1=992365&r2=992366&view=diff
==============================================================================
--- 
tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/Request.java
 (original)
+++ 
tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/Request.java
 Fri Sep  3 16:42:10 2010
@@ -84,16 +84,20 @@ import org.apache.catalina.util.StringPa
 public class Request
     implements HttpServletRequest {
 
-
-    // ----------------------------------------------------------- Constructors
-
+    private final static boolean ALLOW_EMPTY_QUERY_STRING;
 
     static {
         // Ensure that classes are loaded for SM
         new StringCache.ByteEntry();
         new StringCache.CharEntry();
+        
+        ALLOW_EMPTY_QUERY_STRING = Boolean.valueOf(System.getProperty(
+                
"org.apache.catalina.connector.Request.ALLOW_EMPTY_QUERY_STRING",
+                
Boolean.toString(Globals.STRICT_SERVLET_COMPLIANCE))).booleanValue();
     }
 
+    
+    // ----------------------------------------------------------- Constructors
     public Request() {
 
         formats[0].setTimeZone(GMT_ZONE);
@@ -1900,11 +1904,11 @@ public class Request
      */
     public String getQueryString() {
         String queryString = coyoteRequest.queryString().toString();
-        if (queryString == null || queryString.equals("")) {
-            return (null);
-        } else {
-            return queryString;
+        if (!ALLOW_EMPTY_QUERY_STRING && "".equals(queryString)) {
+            return null;
         }
+        
+        return queryString;
     }
 
 

Modified: tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml?rev=992366&r1=992365&r2=992366&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml (original)
+++ tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml Fri Sep  3 
16:42:10 2010
@@ -38,7 +38,7 @@
 <!-- Section names:
  General, Catalina, Coyote, Jasper, Cluster, Webapps
 -->
-<section name="Tomcat 5.5.31 (XXX)">
+<section name="Tomcat 5.5.31 (jim)">
   <subsection name="General">
     <changelog>
       <fix>
@@ -50,6 +50,10 @@
   <subsection name="Catalina">
     <changelog>
       <fix>
+        <bug>38113</bug> Add system property (ALLOW_EMPTY_QUERY_STRING) to 
allow
+        spec compliant handling of query string. (markt/kkolinko/jim)
+      </fix>
+      <fix>
         Return a copy of the URL being used from the webapp class loader, not
         the original array. (kkolinko/markt)
       </fix>

Modified: tomcat/tc5.5.x/trunk/container/webapps/docs/config/systemprops.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/webapps/docs/config/systemprops.xml?rev=992366&r1=992365&r2=992366&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/container/webapps/docs/config/systemprops.xml 
(original)
+++ tomcat/tc5.5.x/trunk/container/webapps/docs/config/systemprops.xml Fri Sep  
3 16:42:10 2010
@@ -158,6 +158,14 @@
 
   <properties>
 
+    <property name="org.apache.catalina. 
connector.Request.ALLOW_EMPTY_QUERY_STRING">
+      <p>If this is <code>true</code> Tomcat will return an empty string rather
+      than <code>null</code> for empty query strings - i.e. query strings where
+      only <code>?</code> is present. If not specified, the value of
+      <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> will be used 
as
+      the default.</p> 
+    </property>
+
     <property name="org.apache.catalina.SESSION_COOKIE_NAME">
       <p>An alternative name for the session cookie. Defaults to
       <code>JSESSIONID</code>. Note that the Servlet specification requires



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

Reply via email to