diff -r c388fa8c6a43 -r 014cf6234586 src/share/classes/com/sun/tools/javac/main/JavaCompiler.java --- a/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Tue Sep 07 15:49:48 2010 -0700 +++ b/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Thu Sep 09 09:42:45 2010 +0530 @@ -872,8 +872,13 @@ //parse all files ListBuffer trees = lb(); - for (JavaFileObject fileObject : fileObjects) - trees.append(parse(fileObject)); + Set filesSoFar = new HashSet(); + for (JavaFileObject fileObject : fileObjects) { + if (!filesSoFar.contains(fileObject)) { + filesSoFar.add(fileObject); + trees.append(parse(fileObject)); + } + } return trees.toList(); }