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: [email protected]
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.