From a4bd4b0b96553f8c5a3c63444d0f24371af2d094 Mon Sep 17 00:00:00 2001 From: Yoshihiro OKUMURA Date: Fri, 7 Oct 2022 19:13:15 +0900 Subject: [PATCH] catch undeclared exception in higher method. --- pom.xml | 3 ++- .../neurodata/tools/BioFormatsImageInfo.java | 4 ++-- .../tools/BioFormatsImageThumbnail.java | 19 +++++++++++-------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index bcdc05f..e5a8571 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 jp.riken.neurodata.tools.BioFormatsImageInfo bioformats-imageinfo - 1.1.1 + 1.1.2 bioformats-imageinfo https://neurodata.riken.jp @@ -130,6 +130,7 @@ default + central diff --git a/src/main/java/jp/riken/neurodata/tools/BioFormatsImageInfo.java b/src/main/java/jp/riken/neurodata/tools/BioFormatsImageInfo.java index d922c4f..fc5b612 100644 --- a/src/main/java/jp/riken/neurodata/tools/BioFormatsImageInfo.java +++ b/src/main/java/jp/riken/neurodata/tools/BioFormatsImageInfo.java @@ -259,9 +259,9 @@ public class BioFormatsImageInfo { DebugTools.enableLogging("ERROR"); format = readMetadata(path, metadata); BioFormatsImageThumbnail.readThumbnail(path, thumbnail); - } catch (BioFormatsImageException e) { + } catch (Throwable t) { status = false; - message = e.getMessage(); + message = t.getMessage(); metadata.clear(); thumbnail.clear(); } diff --git a/src/main/java/jp/riken/neurodata/tools/BioFormatsImageThumbnail.java b/src/main/java/jp/riken/neurodata/tools/BioFormatsImageThumbnail.java index 19a6504..0b7b5be 100644 --- a/src/main/java/jp/riken/neurodata/tools/BioFormatsImageThumbnail.java +++ b/src/main/java/jp/riken/neurodata/tools/BioFormatsImageThumbnail.java @@ -108,7 +108,10 @@ public class BioFormatsImageThumbnail { final ImageOutputStream ios = ImageIO.createImageOutputStream(baos);) { final ImageWriter writer = ImageIO.getImageWritersByFormatName("png").next(); final ImageWriteParam param = writer.getDefaultWriteParam(); - param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); + if (param.canWriteCompressed()) { + param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); + param.setCompressionQuality(0.0f); + } writer.setOutput(ios); writer.write(null, new IIOImage(image, null, null), param); writer.dispose(); @@ -169,13 +172,13 @@ public class BioFormatsImageThumbnail { // System.out.println("resolution: " + reader.getResolutionCount()); // System.out.println("thubmail series: " + series); ret = reader.openThumbImage(no); - } catch (final Throwable e) { - for (Throwable t = e; t != null; t = t.getCause()) { + } catch (final Throwable t) { + for (Throwable e = t; e != null; e = e.getCause()) { if (t instanceof OutOfMemoryError) { throw new BioFormatsImageException("out of memory"); } } - throw new BioFormatsImageException(e); + throw new BioFormatsImageException(t); } finally { try { reader.close(); @@ -226,7 +229,7 @@ public class BioFormatsImageThumbnail { thumbnail.put("height", height); thumbnail.put("mimeType", mimeType); thumbnail.put("url", dataUri); - } catch (final BioFormatsImageException e) { + } catch (final Throwable t) { // ignore ret = false; } @@ -234,7 +237,7 @@ public class BioFormatsImageThumbnail { return ret; } - public static void main(final String[] args) throws BioFormatsImageException { + public static void main(final String[] args) { if (args.length != 1) { System.out.println("filename argument required"); System.exit(1); @@ -248,8 +251,8 @@ public class BioFormatsImageThumbnail { final String dataUri = getDataUri(image, "image/" + format); System.out.println(dataUri); // saveFile(dataUri, "/var/tmp/thumbnail." + format); - } catch (final BioFormatsImageException e) { - System.out.println(e.getMessage()); + } catch (final Throwable t) { + System.out.println(t.getMessage()); System.exit(1); } }