aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools
diff options
context:
space:
mode:
authorGravatar Liam Miller-Cushon <cushon@google.com>2016-11-14 18:37:53 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-11-15 15:56:15 +0000
commit2b3dc2f649e1cc973be66cfaca3843c8beff1317 (patch)
treecb85b9b09fba2356d9ebbe4782b07a303054aa07 /src/java_tools
parentb9ee4b6d2b38d7ef4e93eb3f7125756e20205a8f (diff)
Remove cargo-culted workaround for JDK-6440786
ZipOutputStream has been able to create empty zip files since JDK7: https://bugs.openjdk.java.net/browse/JDK-6440786 -- MOS_MIGRATED_REVID=139089919
Diffstat (limited to 'src/java_tools')
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java15
-rw-r--r--src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java24
2 files changed, 27 insertions, 12 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java
index 38b00fbf77..593467659d 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java
@@ -14,6 +14,8 @@
package com.google.devtools.build.java.turbine.javac;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
@@ -28,8 +30,10 @@ import com.google.devtools.build.java.turbine.javac.JavacTurbineCompileRequest.P
import com.google.devtools.build.java.turbine.javac.ZipOutputFileManager.OutputFileObject;
import com.sun.tools.javac.util.Context;
import java.io.BufferedOutputStream;
+import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
+import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
@@ -69,7 +73,10 @@ public class JavacTurbine implements AutoCloseable {
}
public static Result compile(TurbineOptions turbineOptions) throws IOException {
- try (JavacTurbine turbine = new JavacTurbine(new PrintWriter(System.err), turbineOptions)) {
+ try (JavacTurbine turbine =
+ new JavacTurbine(
+ new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.err, UTF_8))),
+ turbineOptions)) {
return turbine.compile();
}
}
@@ -236,7 +243,6 @@ public class JavacTurbine implements AutoCloseable {
try (OutputStream fos = Files.newOutputStream(outputJar);
ZipOutputStream zipOut =
new ZipOutputStream(new BufferedOutputStream(fos, ZIPFILE_BUFFER_SIZE))) {
- boolean hasEntries = false;
for (Map.Entry<String, OutputFileObject> entry : files.entrySet()) {
if (entry.getValue().location != StandardLocation.CLASS_OUTPUT) {
continue;
@@ -250,11 +256,6 @@ public class JavacTurbine implements AutoCloseable {
bytes = processBytecode(bytes);
}
ZipUtil.storeEntry(name, bytes, zipOut);
- hasEntries = true;
- }
- if (!hasEntries) {
- // ZipOutputStream refuses to create a completely empty zip file.
- ZipUtil.storeEntry("dummy", new byte[0], zipOut);
}
}
}
diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java
index acc9d595f3..30c8e13f57 100644
--- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java
+++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java
@@ -40,10 +40,12 @@ import com.sun.tools.javac.api.JavacTool;
import com.sun.tools.javac.file.JavacFileManager;
import com.sun.tools.javac.util.Context;
import java.io.BufferedInputStream;
+import java.io.BufferedWriter;
import java.io.IOError;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.URI;
@@ -129,7 +131,9 @@ public class JavacTurbineTest {
void compile() throws IOException {
optionsBuilder.addSources(ImmutableList.copyOf(Iterables.transform(sources, TO_STRING)));
try (JavacTurbine turbine =
- new JavacTurbine(new PrintWriter(System.err), optionsBuilder.build())) {
+ new JavacTurbine(
+ new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.err, UTF_8))),
+ optionsBuilder.build())) {
assertThat(turbine.compile()).isEqualTo(Result.OK_WITH_REDUCED_CLASSPATH);
}
}
@@ -442,7 +446,13 @@ public class JavacTurbineTest {
JavacTool tool = JavacTool.create();
JavacTask task =
- tool.getTask(new PrintWriter(System.err, true), fm, null, options, null, units);
+ tool.getTask(
+ new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.err, UTF_8)), true),
+ fm,
+ null,
+ options,
+ null,
+ units);
assertThat(task.call()).isTrue();
try (JarOutputStream jos = new JarOutputStream(Files.newOutputStream(jar))) {
@@ -538,7 +548,9 @@ public class JavacTurbineTest {
optionsBuilder.addSources(ImmutableList.copyOf(Iterables.transform(sources, TO_STRING)));
try (JavacTurbine turbine =
- new JavacTurbine(new PrintWriter(System.err), optionsBuilder.build())) {
+ new JavacTurbine(
+ new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.err, UTF_8))),
+ optionsBuilder.build())) {
assertThat(turbine.compile()).isEqualTo(Result.OK_WITH_REDUCED_CLASSPATH);
Context context = turbine.context;
@@ -625,7 +637,9 @@ public class JavacTurbineTest {
optionsBuilder.addSources(ImmutableList.copyOf(Iterables.transform(sources, TO_STRING)));
try (JavacTurbine turbine =
- new JavacTurbine(new PrintWriter(System.err), optionsBuilder.build())) {
+ new JavacTurbine(
+ new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.err, UTF_8))),
+ optionsBuilder.build())) {
assertThat(turbine.compile()).isEqualTo(Result.OK_WITH_FULL_CLASSPATH);
Context context = turbine.context;
@@ -1067,7 +1081,7 @@ public class JavacTurbineTest {
// don't set up any source files
compile();
Map<String, byte[]> outputs = collectOutputs();
- assertThat(outputs.keySet()).containsExactly("dummy");
+ assertThat(outputs.keySet()).isEmpty();
}
/** An annotation processor that violates the contract. */