[OS-JIRA] Created: (WOL-931) Scanning a framework location when all frameworks have been found causes infinite loop

From: Chuck Hill (JIRA) ("Chuck)
Date: Wed Jan 14 2009 - 19:21:27 EST

  • Next message: Andrus Adamchik: "Who's using JApplication"

    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