diff --git a/classpath/java/util/jar/JarFile.java b/classpath/java/util/jar/JarFile.java index af9e34f975..f86fd6ac36 100644 --- a/classpath/java/util/jar/JarFile.java +++ b/classpath/java/util/jar/JarFile.java @@ -33,7 +33,7 @@ public class JarFile extends ZipFile { return (JarEntry) getEntry(JarEntryFactory.Instance, name); } - private static class MyJarEntry extends JarEntry { + private static class MyJarEntry extends JarEntry implements MyEntry { public final Window window; public final int pointer; @@ -65,6 +65,10 @@ public class JarFile extends ZipFile { return 0; } } + + public int pointer() { + return pointer; + } } private static class JarEntryFactory implements EntryFactory { diff --git a/classpath/java/util/zip/ZipFile.java b/classpath/java/util/zip/ZipFile.java index 2bbb13c35a..c80e7104f2 100644 --- a/classpath/java/util/zip/ZipFile.java +++ b/classpath/java/util/zip/ZipFile.java @@ -83,7 +83,7 @@ public class ZipFile { } public InputStream getInputStream(ZipEntry entry) throws IOException { - int pointer = ((MyZipEntry) entry).pointer; + int pointer = ((MyEntry) entry).pointer(); int method = compressionMethod(window, pointer); int size = compressedSize(window, pointer); InputStream in = new MyInputStream(file, fileData(window, pointer), size); @@ -245,7 +245,11 @@ public class ZipFile { } } - private static class MyZipEntry extends ZipEntry { + protected interface MyEntry { + public int pointer(); + } + + private static class MyZipEntry extends ZipEntry implements MyEntry { public final Window window; public final int pointer; @@ -277,6 +281,10 @@ public class ZipFile { return 0; } } + + public int pointer() { + return pointer; + } } protected interface EntryFactory {