2015-02-10 23:54 GMT+03:00  <ma...@apache.org>:
> Author: markt
> Date: Tue Feb 10 20:54:07 2015
> New Revision: 1658804
>
> URL: http://svn.apache.org/r1658804
> Log:
> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57556
> Align getRealPath() behaviour with that of earlier versions and include a 
> trailing separator if the real path refers to a directory.
>
> Modified:
>     tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
>     tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java
>
> Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1658804&r1=1658803&r2=1658804&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Tue Feb 
> 10 20:54:07 2015
> @@ -4407,7 +4407,12 @@ public class StandardContext extends Con
>          }
>          if (resources != null) {
>              try {
> -                return resources.getResource(path).getCanonicalPath();
> +                WebResource resource = resources.getResource(path);
> +                if (resource.isDirectory()) {
> +                    return resource.getCanonicalPath() + File.separatorChar;

1) I think it is better to check whether it ends with separatorChar first.

E.g. if a Windows drive root is deployed as a web application. I think
that getCanonicalPath() will end with a backslash.

T:\ is the root directory of drive T,
T: is the current directory on drive T.

2) I think that this changes the value of getRealPath(""),

I have not tested whether it was ending with a slash in the old versions.

> +                } else {
> +                    return resource.getCanonicalPath();
> +                }
>              } catch (IllegalArgumentException iae) {
>                  // ServletContext.getRealPath() does not allow this to be 
> thrown
>              }


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