https://issues.apache.org/bugzilla/show_bug.cgi?id=53531
Priority: P2
Bug ID: 53531
Assignee: [email protected]
Summary: ExpandWar.expand does not check the return value of
File.mkdirs
Severity: trivial
Classification: Unclassified
OS: All
Reporter: [email protected]
Hardware: All
Status: NEW
Version: 5.5.35
Component: Catalina
Product: Tomcat 5
http://markmail.org/message/fvyxksx7muk3icr4
o.a.c.startup.ExpandWar.expand() calls File.mkdirs on line 165 and does not
check the return value. If the call fails, a subsequent attempt to create a new
FileOutputStream for a file in the (failed-to-create) directory results in a
FileNotFoundException with the whole filename as the message. Here is an
example from the above tomcat-user original post:
SEVERE: Exception fixing docBase: {0}
java.io.FileNotFoundException:
/home/surgnet/public_html/sample/META-INF/MANIFEST.MF (No such file or
directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
at java.io.FileOutputStream.<init>(FileOutputStream.java:145)
at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:457)
at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:173)
This is confusing to users because the real issue has been hidden: the
inability to create the parent directory for the file.
The analogous code in the current trunk is:
if (!parent.mkdirs() && !parent.isDirectory()) {
throw new IOException(
sm.getString("expandWar.createFailed",
parent));
}
I believe this is the correct approach, which should be adopted for Tomcat 5.5.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]