diff -r 90c28923e449 -r 35e29f51a7c3 src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java --- a/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Thu Sep 03 18:34:17 2009 -0700 +++ b/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Tue Sep 08 11:12:13 2009 -0700 @@ -72,7 +72,7 @@ public JavaFileObject getFileObject(RelativeDirectory subdirectory, String file) { RelativeFile fullZipFileName = new RelativeFile(subdirectory, file); ZipFileIndex.Entry entry = zfIndex.getZipIndexEntry(fullZipFileName); - JavaFileObject ret = new ZipFileIndexFileObject(fileManager, zfIndex, entry, zfIndex.getZipFile().getPath()); + JavaFileObject ret = new ZipFileIndexFileObject(fileManager, zfIndex, entry, zfIndex.getZipFile()); return ret; } @@ -84,6 +84,7 @@ zfIndex.close(); } + @Override public String toString() { return "ZipFileIndexArchive[" + zfIndex + "]"; } @@ -111,10 +112,10 @@ /** The name of the zip file where this entry resides. */ - String zipName; + File zipName; - ZipFileIndexFileObject(JavacFileManager fileManager, ZipFileIndex zfIndex, ZipFileIndex.Entry entry, String zipFileName) { + ZipFileIndexFileObject(JavacFileManager fileManager, ZipFileIndex zfIndex, ZipFileIndex.Entry entry, File zipFileName) { super(fileManager); this.name = entry.getFileName(); this.zfIndex = zfIndex; @@ -130,6 +131,7 @@ return inputStream; } + @Override protected CharsetDecoder getDecoder(boolean ignoreEncodingErrors) { return fileManager.getDecoder(fileManager.getEncodingName(), ignoreEncodingErrors); } @@ -157,6 +159,7 @@ /** @deprecated see bug 6410637 */ @Deprecated + @Override public String getPath() { return zipName + "(" + entry.getName() + ")"; } @@ -183,7 +186,7 @@ } public String getZipName() { - return zipName; + return zipName.getPath(); } public String getZipEntryName() { @@ -191,9 +194,10 @@ } public URI toUri() { - String zipName = new File(getZipName()).toURI().normalize().getPath(); - String entryName = getZipEntryName(); - return URI.create("jar:" + zipName + "!" + entryName); + if (zfIndex.symbolFilePrefix != null) + return createJarUri(zipName, zfIndex.symbolFilePrefix.path + entry.getName()); + else + return createJarUri(zipName, entry.getName()); } private byte[] read() throws IOException {