From 6b966a2d4ff6482c15ff3d87358f817bc69a189c Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Sun, 5 Nov 2017 09:58:27 +0100 Subject: [PATCH] Removed an unchecked cast. --- .../imageio/plugins/bmp/BMPImageReaderSpi.java | 3 +-- .../main/java/com/twelvemonkeys/imageio/util/IIOUtil.java | 5 +++-- .../imageio/plugins/jpeg/JPEGImageReaderSpi.java | 3 +-- .../imageio/plugins/jpeg/JPEGImageWriterSpi.java | 7 +++---- .../plugins/jpeg/JPEGImage10MetadataCleanerTest.java | 2 +- .../imageio/plugins/jpeg/JPEGImageReaderTest.java | 2 +- .../imageio/plugins/jpeg/JPEGImageWriterTest.java | 2 +- .../imageio/reference/JPEGImageReaderTest.java | 2 +- .../imageio/reference/PNGImageReaderTest.java | 2 +- .../imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java | 3 +-- .../imageio/plugins/tiff/TIFFImageReader.java | 2 +- 11 files changed, 15 insertions(+), 18 deletions(-) diff --git a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPImageReaderSpi.java b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPImageReaderSpi.java index 1731f518..45a86b82 100755 --- a/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPImageReaderSpi.java +++ b/imageio/imageio-bmp/src/main/java/com/twelvemonkeys/imageio/plugins/bmp/BMPImageReaderSpi.java @@ -29,7 +29,6 @@ package com.twelvemonkeys.imageio.plugins.bmp; import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; -import com.twelvemonkeys.imageio.util.IIOUtil; import javax.imageio.ImageReader; import javax.imageio.spi.ImageReaderSpi; @@ -56,7 +55,7 @@ public final class BMPImageReaderSpi extends ImageReaderSpiBase { @SuppressWarnings("unchecked") @Override public void onRegistration(final ServiceRegistry registry, final Class category) { - ImageReaderSpi defaultProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.bmp.BMPImageReaderSpi"); + ImageReaderSpi defaultProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.bmp.BMPImageReaderSpi", ImageReaderSpi.class); if (defaultProvider != null) { // Order before com.sun provider, to aid ImageIO in selecting our reader diff --git a/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/util/IIOUtil.java b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/util/IIOUtil.java index 87af5906..7e667b2f 100755 --- a/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/util/IIOUtil.java +++ b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/util/IIOUtil.java @@ -170,12 +170,13 @@ public final class IIOUtil { * * @param registry the registry to lookup from. * @param providerClassName name of the provider class. + * @param category provider category * * @return the provider instance, or {@code null}. */ - public static T lookupProviderByName(final ServiceRegistry registry, final String providerClassName) { + public static T lookupProviderByName(final ServiceRegistry registry, final String providerClassName, Class category) { try { - return (T) registry.getServiceProviderByClass(Class.forName(providerClassName)); + return category.cast(registry.getServiceProviderByClass(Class.forName(providerClassName))); } catch (ClassNotFoundException ignore) { return null; diff --git a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderSpi.java b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderSpi.java index dd189430..43612892 100644 --- a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderSpi.java +++ b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderSpi.java @@ -38,7 +38,6 @@ import javax.imageio.metadata.IIOMetadataFormat; import javax.imageio.spi.ImageReaderSpi; import javax.imageio.spi.ServiceRegistry; import java.io.IOException; -import java.util.Iterator; import java.util.Locale; import static com.twelvemonkeys.imageio.util.IIOUtil.lookupProviderByName; @@ -81,7 +80,7 @@ public final class JPEGImageReaderSpi extends ImageReaderSpiBase { public void onRegistration(final ServiceRegistry registry, final Class category) { if (delegateProvider == null) { // Install delegate now - delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"); + delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class); } if (delegateProvider != null) { diff --git a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageWriterSpi.java b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageWriterSpi.java index 8e0fd2c8..41fd953e 100644 --- a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageWriterSpi.java +++ b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageWriterSpi.java @@ -29,7 +29,6 @@ package com.twelvemonkeys.imageio.plugins.jpeg; import com.twelvemonkeys.imageio.spi.ImageWriterSpiBase; -import com.twelvemonkeys.imageio.util.IIOUtil; import com.twelvemonkeys.lang.Validate; import javax.imageio.ImageTypeSpecifier; @@ -39,10 +38,10 @@ import javax.imageio.spi.ImageWriterSpi; import javax.imageio.spi.ServiceRegistry; import java.awt.image.RenderedImage; import java.io.IOException; -import java.util.Iterator; import java.util.Locale; -import static com.twelvemonkeys.imageio.util.IIOUtil.*; +import static com.twelvemonkeys.imageio.util.IIOUtil.deregisterProvider; +import static com.twelvemonkeys.imageio.util.IIOUtil.lookupProviderByName; /** * JPEGImageWriterSpi @@ -78,7 +77,7 @@ public class JPEGImageWriterSpi extends ImageWriterSpiBase { public void onRegistration(final ServiceRegistry registry, final Class category) { if (delegateProvider == null) { // Install delegate now - delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi"); + delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi", ImageWriterSpi.class); } if (delegateProvider != null) { diff --git a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleanerTest.java b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleanerTest.java index a8a5a227..081994e6 100644 --- a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleanerTest.java +++ b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10MetadataCleanerTest.java @@ -36,7 +36,7 @@ public class JPEGImage10MetadataCleanerTest { private static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider()); private static ImageReaderSpi lookupDelegateProvider() { - return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"); + return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class); } // Unit/regression test for #276 diff --git a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderTest.java b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderTest.java index cafa1570..e9f2eb88 100644 --- a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderTest.java +++ b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderTest.java @@ -78,7 +78,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest getTestData() { diff --git a/imageio/imageio-reference/src/test/java/com/twelvemonkeys/imageio/reference/PNGImageReaderTest.java b/imageio/imageio-reference/src/test/java/com/twelvemonkeys/imageio/reference/PNGImageReaderTest.java index 1664d4ec..e1a5ecf1 100644 --- a/imageio/imageio-reference/src/test/java/com/twelvemonkeys/imageio/reference/PNGImageReaderTest.java +++ b/imageio/imageio-reference/src/test/java/com/twelvemonkeys/imageio/reference/PNGImageReaderTest.java @@ -24,7 +24,7 @@ import static org.junit.Assume.assumeNoException; * @version $Id: PNGImageReaderTest.java,v 1.0 Oct 9, 2009 3:37:25 PM haraldk Exp$ */ public class PNGImageReaderTest extends ImageReaderAbstractTest { - private final ImageReaderSpi provider = IIOUtil.lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.png.PNGImageReaderSpi"); + private final ImageReaderSpi provider = IIOUtil.lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.png.PNGImageReaderSpi", ImageReaderSpi.class); @Override protected List getTestData() { diff --git a/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java b/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java index 06a3495b..919aa6cd 100755 --- a/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java +++ b/imageio/imageio-thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java @@ -29,7 +29,6 @@ package com.twelvemonkeys.imageio.plugins.thumbsdb; import com.twelvemonkeys.imageio.spi.ImageReaderSpiBase; -import com.twelvemonkeys.imageio.util.IIOUtil; import com.twelvemonkeys.io.ole2.CompoundDocument; import javax.imageio.ImageReader; @@ -80,7 +79,7 @@ public final class ThumbsDBImageReaderSpi extends ImageReaderSpiBase { // and the lookup below will produce a NPE.. if (jpegProvider == null) { // Prefer the one we know - ImageReaderSpi provider = lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi"); + ImageReaderSpi provider = lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class); if (provider == null) { try { diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java index 5e304135..f06b847f 100755 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java @@ -2440,7 +2440,7 @@ public final class TIFFImageReader extends ImageReaderBase { private static void deregisterOSXTIFFImageReaderSpi() { IIORegistry registry = IIORegistry.getDefaultInstance(); - ImageReaderSpi provider = lookupProviderByName(registry, "com.sun.imageio.plugins.tiff.TIFFImageReaderSpi"); + ImageReaderSpi provider = lookupProviderByName(registry, "com.sun.imageio.plugins.tiff.TIFFImageReaderSpi", ImageReaderSpi.class); if (provider != null) { registry.deregisterServiceProvider(provider);