diff --git a/compiler/testData/mockJDK/jre/lib/rt.jar b/compiler/testData/mockJDK/jre/lib/rt.jar index e4c9384cc7a..612d76c1482 100644 Binary files a/compiler/testData/mockJDK/jre/lib/rt.jar and b/compiler/testData/mockJDK/jre/lib/rt.jar differ diff --git a/compiler/testData/mockJDK/src.zip b/compiler/testData/mockJDK/src.zip index 548bc61d9c7..7acc804630b 100644 Binary files a/compiler/testData/mockJDK/src.zip and b/compiler/testData/mockJDK/src.zip differ diff --git a/generators/src/org/jetbrains/jet/generators/mockJDK/GenerateMockJdk.java b/generators/src/org/jetbrains/jet/generators/mockJDK/GenerateMockJdk.java index bbb57e98fe3..33b5be36cc4 100644 --- a/generators/src/org/jetbrains/jet/generators/mockJDK/GenerateMockJdk.java +++ b/generators/src/org/jetbrains/jet/generators/mockJDK/GenerateMockJdk.java @@ -27,6 +27,7 @@ import java.util.*; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; +import java.util.zip.ZipEntry; public class GenerateMockJdk { @@ -88,6 +89,7 @@ public class GenerateMockJdk { "java/lang/annotation/RetentionPolicy.class", "java/lang/annotation/Target.class", "java/lang/Appendable.class", + "java/lang/AutoCloseable.class", "java/lang/ArithmeticException.class", "java/lang/ArrayIndexOutOfBoundsException.class", "java/lang/ArrayStoreException.class", @@ -289,8 +291,8 @@ public class GenerateMockJdk { String topLevelClassFile = entry.getName().replaceAll("\\$.+\\.class$", ".class"); if (entryNamesToInclude.contains(topLevelClassFile)) { - targetJar.putNextEntry(entry); - FileUtil.copy(sourceJar.getInputStream(entry), (int) entry.getSize(), targetJar); + targetJar.putNextEntry(new ZipEntry(entry.getName())); + FileUtil.copy(sourceJar.getInputStream(entry), targetJar); foundEntries.add(topLevelClassFile); } } @@ -314,7 +316,8 @@ public class GenerateMockJdk { private static Set getSourceFileEntries() { Set entrySet = Sets.newHashSet(); for (String entry : ENTRIES) { - String javaFile = "src/" + entry.replaceAll(".class$", ".java"); + String javaFile = // "src/" + (in jdk 1.7 under Mac there is no src folder in src.zip) + entry.replaceAll(".class$", ".java"); entrySet.add(javaFile); } return entrySet;