2014-11-18 5:30 GMT+03:00 Konstantin Kolinko <knst.koli...@gmail.com>:
> 2014-11-17 11:06 GMT+03:00  <ma...@apache.org>:
>> Author: markt
>> Date: Mon Nov 17 08:06:24 2014
>> New Revision: 1640089
>>
>> URL: http://svn.apache.org/r1640089
>> Log:
>> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57216
>> Catch "/" as an invalid setting for context path and improve handling of
>> null values.
>>
>> Modified:
>>     tomcat/tc8.0.x/trunk/   (props changed)
>>     tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java
>>     tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
>>
>> Propchange: tomcat/tc8.0.x/trunk/
>> ------------------------------------------------------------------------------
>>   Merged /tomcat/trunk:r1640088
>>
>> Modified: 
>> tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java
>> URL: 
>> http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1640089&r1=1640088&r2=1640089&view=diff
>> ==============================================================================
>> --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java 
>> (original)
>> +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java 
>> Mon Nov 17 08:06:24 2014
>> @@ -2008,13 +2008,20 @@ public class StandardContext extends Con
>>       */
>>      @Override
>>      public void setPath(String path) {
>> -        if (path == null || (!path.equals("") && !path.startsWith("/"))) {
>> +        boolean invalid = false;
>> +        if (path == null || path.equals("/")) {
>> +            path = "";
>
> this.path = "";
>
>> +            invalid = true;
>> +        } else if (!path.equals("") && !path.startsWith("/")) {
>>              this.path = "/" + path;
>> -            log.warn(sm.getString(
>> -                    "standardContext.pathInvalid", path, this.path));
>> +            invalid = true;
>>          } else {
>>              this.path = path;
>>          }
>> +        if (invalid) {
>> +            log.warn(sm.getString(
>> +                    "standardContext.pathInvalid", path, this.path));
>> +        }
>>          encodedPath = urlEncoder.encode(this.path);
>>          if (getName() == null) {
>>              setName(this.path);
>
>
> A number of test are failing at Gump.
> (They are failing at Buildbot as well, but none e-mails were received).
>
> E.g.
> Test org.apache.catalina.startup.TestListener FAILED
>
> and I see
>     [junit] 18-Nov-2014 01:21:53.447 WARNING [main]
> org.apache.catalina.core.StandardContext.setPath A context path must
> either be an empty string or start with a '/'. The path [] does not
> meet these criteria and has been changed to [null]

Fixed by r1640276

Remaining issues:
a) I think that context paths that end with "/" shall be prohibited as well.

b) Run the whole testsuite and fix tests to do not use "/" as context path.

E.g. org.apache.catalina.startup.TestListener now prints the warning

WARNING [main] org.apache.catalina.core.StandardContext.setPath A
context path must either be an empty string or start with a '/'. The
path [/] does not meet these criteria and has been changed to []

Its code does
        Context context = tomcat.addContext("/",
                System.getProperty("java.io.tmpdir"));

Best regards,
Konstantin Kolinko

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

Reply via email to