Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
0.7, 0.8, 0.9
-
None
-
Normal
Description
When running Forrestbot with the default value for property "build.work-dir" (namely "work/${ant.project.name}"), "project.build-dir" is set to the same value and consequently, "project.webapp" is set to "work/${ant.project.name}/webapp". However, one of the two "logs" directories continues to be created at "build/webapp/WEB-INF/logs", suggesting that somewhere a hardcoded value is used instead of ${project.webapp}. The mkdir command for this "logs" directory is not in any of the Ant build files in the Forrest distribution; it must be in one of the Java classes, probably in a class related to logging. I forced an I/O failure by turning off all permissions on build/webapp and running "forrest -f build.xml build". This yielded a stacktrace that originated 7 calls before:
org.apache.avalon.excalibur.logger.factory.FileTargetFactory.createTarget(FileTargetFactory.java:160)
The remaining 7 invokations were not displayed (just "... 7 more").
The upshot of this bug is that running "forrest -f build.xml clean" misses the "logs" directory in the unexpected location. My workaround right now is to use a custom "clean-all" target that depends on "clean" and that deletes the spurious "build/webapp" directory.
org.apache.avalon.excalibur.logger.factory.FileTargetFactory.createTarget(FileTargetFactory.java:160)
The remaining 7 invokations were not displayed (just "... 7 more").
The upshot of this bug is that running "forrest -f build.xml clean" misses the "logs" directory in the unexpected location. My workaround right now is to use a custom "clean-all" target that depends on "clean" and that deletes the spurious "build/webapp" directory.