Scanning a framework location when all frameworks have been found causes infinite loop
--------------------------------------------------------------------------------------
Key: WOL-931
URL: http://issues.objectstyle.org/jira/browse/WOL-931
Project: WOProject/WOLips
Issue Type: Bug
Components: woproject
Environment: WOLips New Hotness 3.4.5594
Reporter: Chuck Hill
Attachments: WOL-931.diff
I ran into this problem when I copied all of the WO frameworks into ~/Library/Frameworks. Turning on verbose and debug, I saw this in the log:
frameworkset: Setup scanner in dir /Users/chuck/Library/Frameworks with patternSet{ includes: [CadreJars.framework, CadrePrototypes.framework, GVCEOFExtensions.framework, GVCFoundation.framework, GVCWOExtensions.framework, MicrosoftPlugIn.framework, ERExtensions.framework, FrontBasePlugIn.framework, JavaWOExtensions.framework, JavaEOAccess.framework, JavaEOControl.framework, JavaFoundation.framework, JavaJDBCAdaptor.framework, JavaWebObjects.framework, JavaXML.framework, GVCEOFValidation.framework] excludes: [] }
frameworkset: Setup scanner in dir /System/Library/Frameworks with patternSet{ includes: [] excludes: [**] }
Note the last one where no frameworks are included. Sending a kill -QUIT to the ant process resulted in this trace:
"main" prio=5 tid=0x01001450 nid=0xb0801000 runnable [0xb07fe000..0xb0800148]
at java.util.Vector.indexOf(Vector.java:364)
- waiting to lock <0x25b79658> (a java.util.Vector)
at java.util.Vector.contains(Vector.java:322)
at org.apache.tools.ant.DirectoryScanner.processIncluded(DirectoryScanner.java:1142)
at org.apache.tools.ant.DirectoryScanner.accountForIncludedFile(DirectoryScanner.java:1123)
at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1108)
at org.apache.tools.ant.DirectoryScanner.accountForIncludedDir(DirectoryScanner.java:1136)
at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1095)
at org.apache.tools.ant.DirectoryScanner.accountForIncludedDir(DirectoryScanner.java:1136)
at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1095)
at org.apache.tools.ant.DirectoryScanner.accountForIncludedDir(DirectoryScanner.java:1136)
at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1095)
at org.apache.tools.ant.DirectoryScanner.accountForIncludedDir(DirectoryScanner.java:1136)
at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1095)
at org.apache.tools.ant.DirectoryScanner.accountForIncludedDir(DirectoryScanner.java:1136)
at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1095)
at org.apache.tools.ant.DirectoryScanner.accountForIncludedDir(DirectoryScanner.java:1136)
at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1095)
at org.apache.tools.ant.DirectoryScanner.accountForIncludedDir(DirectoryScanner.java:1136)
at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1095)
at org.apache.tools.ant.DirectoryScanner.accountForIncludedDir(DirectoryScanner.java:1136)
at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1095)
at org.apache.tools.ant.DirectoryScanner.checkIncludePatterns(DirectoryScanner.java:856)
at org.apache.tools.ant.DirectoryScanner.scan(DirectoryScanner.java:817)
- locked <0x25b77460> (a org.apache.tools.ant.DirectoryScanner)
at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:435)
at org.objectstyle.woproject.ant.FrameworkSet.getDirectoryScanner(Unknown Source)
at org.apache.tools.ant.types.FileSet.iterator(FileSet.java:69)
at org.apache.tools.ant.types.resources.Union.getCollection(Union.java:105)
at org.apache.tools.ant.types.resources.Union.getCollection(Union.java:88)
at org.apache.tools.ant.types.resources.BaseResourceCollectionContainer.cacheCollection(BaseResourceCollectionContainer.java:244)
- locked <0x25b60108> (a org.apache.tools.ant.types.resources.Union)
at org.apache.tools.ant.types.resources.BaseResourceCollectionContainer.iterator(BaseResourceCollectionContainer.java:120)
- locked <0x25b60108> (a org.apache.tools.ant.types.resources.Union)
at org.apache.tools.ant.types.Path.iterator(Path.java:687)
- locked <0x25b5fb28> (a org.objectstyle.woproject.ant.WOPath)
at org.apache.tools.ant.types.Path.iterator(Path.java:684)
- locked <0x25b60c40> (a org.apache.tools.ant.types.Path)
at org.apache.tools.ant.types.resources.Union.getCollection(Union.java:105)
at org.apache.tools.ant.types.resources.Union.list(Union.java:67)
at org.apache.tools.ant.types.Path.list(Path.java:356)
at org.apache.tools.ant.types.Path.addExisting(Path.java:327)
at org.apache.tools.ant.types.Path.addExisting(Path.java:315)
at org.apache.tools.ant.types.Path.concatSpecialPath(Path.java:560)
at org.apache.tools.ant.types.Path.concatSystemClasspath(Path.java:512)
at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.getCompileClasspath(DefaultCompilerAdapter.java:152)
at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.setupJavacCommandlineSwitches(DefaultCompilerAdapter.java:182)
at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.setupModernJavacCommandlineSwitches(DefaultCompilerAdapter.java:320)
at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.setupModernJavacCommand(DefaultCompilerAdapter.java:367)
at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:48)
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:997)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:820)
at org.objectstyle.woproject.ant.WOCompile.execute(Unknown Source)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.apache.tools.ant.Main.runBuild(Main.java:698)
at org.apache.tools.ant.Main.startAnt(Main.java:199)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
The single WOProject involved line is:
at org.objectstyle.woproject.ant.FrameworkSet.getDirectoryScanner(Unknown Source)
My suspicion is that this is an Ant bug, but it might just be me misreading the API docs (such as they are). In any case, I have a working patch that I will attach. The solution I used was to use an include with no name rather than excluding everything.
-- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.objectstyle.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
This archive was generated by hypermail 2.0.0 : Wed Jan 14 2009 - 19:22:36 EST