https://issues.apache.org/bugzilla/show_bug.cgi?id=45499

           Summary: DirectoryScanner infinitely recurses on symlinks to
                    parent directories
           Product: Ant
           Version: 1.7.1
          Platform: Macintosh
        OS/Version: Mac OS X 10.4
            Status: NEW
          Severity: critical
          Priority: P2
         Component: Core
        AssignedTo: notifications@ant.apache.org
        ReportedBy: [EMAIL PROTECTED]


Created an attachment (id=22327)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=22327)
Patch to DirectoryScanner to prevent recursion on symlinks to ancestor dirs

I'm using Ant 1.7.1 on Mac OS X 10.5.4 with Java SE 6 (1.6.0_05).

When compiling some fairly basic Java source using the javac task I get
consistent OutOfMemoryErrors. Some debugging reveals that this is due to an
infinite recursion of directories in DirectoryScanner.

The Java framework installed on the Mac has a Home directory that emulates the
layout of a JRE on *nix/Windows, so apps (like Ant) that like to base things
off $JAVA_HOME can find things.

In Java 6, this Home directory has two symlinks to parent directories, namely:
bundle -> ../
shared_bundle -> ../../../
(This is a default install of the latest Java update for OS X 10.5 - I haven't
modified it in any way, so this issue will probably be an issue for all OS X
users).

During the javac execution, DirectoryScanner seems to scan the $JAVA_HOME
directory (I haven't tried to ascertain why), resulting in an infinite
recursion on bundle -> Home -> bundle -> Home etc. etc., eventually ending in
an OOME.

I'm attaching a patch that resolves listed child directories to canonical paths
and checks if they're leaders of the currrent director, which fixes this issue.


-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Reply via email to