1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Tue Jun 17 10:44:32 2008 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Wed Jun 18 07:23:25 2008 -0700 1.3 @@ -1056,7 +1056,7 @@ 1.4 void readClassAttr(ClassSymbol c, Name attrName, int attrLen) { 1.5 if (attrName == names.SourceFile) { 1.6 Name n = readName(nextChar()); 1.7 - c.sourcefile = new SourceFileObject(n); 1.8 + c.sourcefile = new SourceFileObject(n, c.flatname); 1.9 } else if (attrName == names.InnerClasses) { 1.10 readInnerClasses(c); 1.11 } else if (allowGenerics && attrName == names.Signature) { 1.12 @@ -2221,9 +2221,12 @@ 1.13 /** The file's name. 1.14 */ 1.15 private Name name; 1.16 + private Name flatname; 1.17 1.18 - public SourceFileObject(Name name) { 1.19 + public SourceFileObject(Name name, Name flatname) { 1.20 + super(null); // no file manager; never referenced for this file object 1.21 this.name = name; 1.22 + this.flatname = flatname; 1.23 } 1.24 1.25 public InputStream openInputStream() { 1.26 @@ -2285,5 +2288,9 @@ 1.27 throw new UnsupportedOperationException(); 1.28 } 1.29 1.30 + @Override 1.31 + protected String inferBinaryName(Iterable<? extends File> path) { 1.32 + return flatname.toString(); 1.33 + } 1.34 } 1.35 }