You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bu...@apache.org on 2004/01/01 20:29:12 UTC
DO NOT REPLY [Bug 25856] New: -
GCJ version of Javac task wrongly checks for destdir errors
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25856>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25856
GCJ version of Javac task wrongly checks for destdir errors
Summary: GCJ version of Javac task wrongly checks for destdir
errors
Product: Ant
Version: 1.6.0
Platform: All
OS/Version: All
Status: NEW
Severity: Normal
Priority: Other
Component: Core tasks
AssignedTo: dev@ant.apache.org
ReportedBy: trevor@vocaro.com
On line 122 of src/main/org/apache/tools/ant/taskdefs/compilers/Gcj.java, the
destination directory (destdir) is created by calling destdir.mkdirs(). The
return value of mkdirs is checked, and if true, a BuildException is thrown. This
is not the correct behavior because according to the Java docs for mkdirs (
http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#mkdirs() ), mkdirs
returns true if the directories are created; false otherwise. That means if
destdir does not exist, the Gcj task will create it and then promptly throw an
exception.
On the other hand, if destdir already exists, then mkdirs will return false,
even though it has completed successfully! And because destdir usually exists
already, the Gcj task does not throw an exception in the typical case. This is
why the code cannot simply be changed to throw an exception on a false return
value rather than true.
The proper fix is to call mkdirs if and only if the destdir does not exist (by
calling destdir.exists()). The task can then check the return value of mkdirs
and throw an exception if it gets back false. This will give the desired
behavior of the task.
By the way, there is an unneeded semicolon on line 125.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org