[TC6] makeOutputDir() revision breaks Jasper

2006-09-08 Thread Scott Johnson
Revision 441109 to JspCompilationContext.java results in makeOutputDir() 
returning false even if the desired outputDir exists.  This is because 
File.mkdirs() returns true  "if and only if the directory was created". If 
the directory already exists, makeOutputDir() is returning false, 
resulting in an IllegalStateException being thrown.

Possible fix that fits in with other recent revisions to 
JspCompilationContext.java:

protected boolean makeOutputDir() {
synchronized(outputDirLock) {
File outDirFile = new File(outputDir);
if (!outDirFile.mkdirs() && !outDirFile.exists())
return false;
else
return true;
}
}




Re: [TC6] makeOutputDir() revision breaks Jasper

2006-09-09 Thread Scott Johnson
Or, a better fix:

protected boolean makeOutputDir() {
synchronized(outputDirLock) {
File outDirFile = new File(outputDir);
return (outDirFile.exists() || outDirFile.mkdirs());
}
}







Scott Johnson/Raleigh/[EMAIL PROTECTED] 
09/08/2006 01:20 PM
Please respond to
"Tomcat Developers List" 


To
Tomcat Developers List 
cc

Subject
[TC6] makeOutputDir() revision breaks Jasper






Revision 441109 to JspCompilationContext.java results in makeOutputDir() 
returning false even if the desired outputDir exists.  This is because 
File.mkdirs() returns true  "if and only if the directory was created". If 

the directory already exists, makeOutputDir() is returning false, 
resulting in an IllegalStateException being thrown.

Possible fix that fits in with other recent revisions to 
JspCompilationContext.java:

protected boolean makeOutputDir() {
synchronized(outputDirLock) {
File outDirFile = new File(outputDir);
if (!outDirFile.mkdirs() && !outDirFile.exists())
return false;
else
return true;
}
}





Re: [TC6] makeOutputDir() revision breaks Jasper

2006-09-09 Thread Remy Maucherat

Scott Johnson wrote:
Revision 441109 to JspCompilationContext.java results in makeOutputDir() 
returning false even if the desired outputDir exists.  This is because 
File.mkdirs() returns true  "if and only if the directory was created".


Indeed, that's correct, thanks.

Rémy

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]