# HG changeset patch # User František Kučera # Date 1416252238 -3600 # Node ID dec0dd934a64058fa9620b1e99868d2994a6d35d # Parent 28aa5f5974578e38a79944f65dcecde60327e468 option: --skip-errors diff -r 28aa5f597457 -r dec0dd934a64 java/copy-image-resizer/src/cz/frantovo/copyImageResizer/RecursiveImageResizer.java --- a/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/RecursiveImageResizer.java Mon Nov 17 20:13:15 2014 +0100 +++ b/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/RecursiveImageResizer.java Mon Nov 17 20:23:58 2014 +0100 @@ -27,6 +27,7 @@ import java.io.InputStream; import java.nio.channels.FileChannel; import java.util.logging.Level; +import java.util.logging.LogRecord; import java.util.logging.Logger; import javax.imageio.ImageIO; @@ -141,7 +142,20 @@ if (entry.isDirectory()) { resizeDirectory(entry); } else { - resizeFile(entry); + if (options.isSkipErrors()) { + try { + resizeFile(entry); + } catch (Exception e) { + counters.increment(Counters.COUNTER_TYPE.SKIPPED_ERROR); + LogRecord record = new LogRecord(Level.WARNING, "Skipping error : {0}"); + record.setParameters(new Object[]{entry}); + record.setThrown(e); + log.log(record); + } + } else { + resizeFile(entry); + } + } } diff -r 28aa5f597457 -r dec0dd934a64 java/copy-image-resizer/src/cz/frantovo/copyImageResizer/RecursiveOptions.java --- a/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/RecursiveOptions.java Mon Nov 17 20:13:15 2014 +0100 +++ b/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/RecursiveOptions.java Mon Nov 17 20:23:58 2014 +0100 @@ -39,6 +39,10 @@ * Image resolutions to create */ private final Collection sizes = new ArrayList<>(); + /** + * Whether errors (while resizing/copying particular images) should be just logged and skipped. + */ + private boolean skipErrors; public File getInput() { return input; @@ -64,6 +68,14 @@ sizes.add(size); } + public boolean isSkipErrors() { + return skipErrors; + } + + public void setSkipErrors(boolean skipErrors) { + this.skipErrors = skipErrors; + } + public void validate() throws InvalidOptionsException { InvalidOptionsException e = new InvalidOptionsException(); diff -r 28aa5f597457 -r dec0dd934a64 java/copy-image-resizer/src/cz/frantovo/copyImageResizer/cli/CLIParser.java --- a/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/cli/CLIParser.java Mon Nov 17 20:13:15 2014 +0100 +++ b/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/cli/CLIParser.java Mon Nov 17 20:23:58 2014 +0100 @@ -114,6 +114,15 @@ options.addSize(new SizeSpecification(width, height, directory, resizeSmaller)); return index - originalIndex; } + }, + SKIP_ERRORS("--skip-errors") { // bash-completion: option + + @Override + public int parse(String[] args, int index, RecursiveOptions options) throws CLIParserException { + options.setSkipErrors(true); + return 0; + } + }; private final Collection options;