aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2018-04-26 19:48:14 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-26 19:49:50 -0700
commita6a9843ddb869d911795bd9a634e725d5952dfb2 (patch)
tree6c2966bde91ed4f18a89d7fc77a5d9d114333d7b /src/tools/android/java/com/google/devtools/build
parent968059d59719d7789b4b3fe97fe0d6be0e86682d (diff)
For --checkHashMismatch=ERROR, emit all errors instead of stopping at the first one
PiperOrigin-RevId: 194491274
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/ZipFilterAction.java10
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/ZipFilterEntryFilter.java17
2 files changed, 19 insertions, 8 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/ZipFilterAction.java b/src/tools/android/java/com/google/devtools/build/android/ZipFilterAction.java
index c774ec22f6..0a0744746d 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ZipFilterAction.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ZipFilterAction.java
@@ -28,7 +28,6 @@ import com.google.common.collect.ImmutableSetMultimap;
import com.google.common.collect.Multimap;
import com.google.devtools.build.singlejar.ZipCombiner;
import com.google.devtools.build.singlejar.ZipCombiner.OutputMode;
-import com.google.devtools.build.singlejar.ZipEntryFilter;
import com.google.devtools.build.zip.ZipFileEntry;
import com.google.devtools.build.zip.ZipReader;
import java.io.IOException;
@@ -67,7 +66,7 @@ import java.util.regex.Pattern;
* --filterTypes [fileExtension[,fileExtension]...]
* --explicitFilters [fileRegex[,fileRegex]...]
* --outputMode [DONT_CARE|FORCE_DEFLATE|FORCE_STORED]
- * --errorOnHashMismatch
+ * --checkHashMismatch [IGNORE|WARN|ERROR]
* </pre>
*/
public class ZipFilterAction {
@@ -213,6 +212,10 @@ public class ZipFilterAction {
}
public static void main(String[] args) throws IOException {
+ System.exit(run(args));
+ }
+
+ static int run(String[] args) throws IOException {
Options options = new Options();
new JCommander(options).parse(args);
logger.fine(
@@ -241,7 +244,7 @@ public class ZipFilterAction {
if (options.errorOnHashMismatch) {
options.hashMismatchCheckMode = HashMismatchCheckMode.ERROR;
}
- ZipEntryFilter entryFilter =
+ ZipFilterEntryFilter entryFilter =
new ZipFilterEntryFilter(
explicitFilter, entriesToOmit, inputEntries.build(), options.hashMismatchCheckMode);
@@ -250,5 +253,6 @@ public class ZipFilterAction {
combiner.addZip(options.inputZip.toFile());
}
logger.fine(String.format("Filtering completed in %dms", timer.elapsed(TimeUnit.MILLISECONDS)));
+ return entryFilter.sawErrors() ? 1 : 0;
}
}
diff --git a/src/tools/android/java/com/google/devtools/build/android/ZipFilterEntryFilter.java b/src/tools/android/java/com/google/devtools/build/android/ZipFilterEntryFilter.java
index 95733396ca..2e801c350f 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ZipFilterEntryFilter.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ZipFilterEntryFilter.java
@@ -29,6 +29,11 @@ class ZipFilterEntryFilter implements ZipEntryFilter {
private final Multimap<String, Long> entriesToOmit;
private final Map<String, Long> inputEntries;
private final HashMismatchCheckMode hashMismatchCheckMode;
+ private boolean sawErrors = false;
+
+ public boolean sawErrors() {
+ return sawErrors;
+ }
/**
* Creates a new filter.
@@ -62,11 +67,12 @@ class ZipFilterEntryFilter implements ZipEntryFilter {
callback.skip();
} else {
if (hashMismatchCheckMode == HashMismatchCheckMode.ERROR) {
- throw new IllegalStateException(
- String.format(
- "Requested to filter entries of name "
- + "'%s'; name matches but the hash does not. Aborting",
- filename));
+ System.out.printf(
+ "\u001b[31mERROR:\u001b[0m Requested to filter entries of name "
+ + "'%s'; name matches but the hash does not.\n",
+ filename);
+ sawErrors = true;
+ callback.skip();
} else {
System.out.printf(
"\u001b[35mWARNING:\u001b[0m Requested to filter entries of name "
@@ -80,4 +86,5 @@ class ZipFilterEntryFilter implements ZipEntryFilter {
callback.copy(null);
}
}
+
}