Index: src/main/java/javax/imageio/ImageIO.java =================================================================== --- src/main/java/javax/imageio/ImageIO.java (revision 942472) +++ src/main/java/javax/imageio/ImageIO.java (working copy) @@ -219,7 +219,7 @@ public static ImageWriter getImageWriter(ImageReader reader) { if (reader == null) { - // imageio.97=Reader cannot be null + // imageio.97=reader == null! throw new IllegalArgumentException(Messages.getString("imageio.97")); //$NON-NLS-1$ } @@ -249,7 +249,7 @@ public static ImageReader getImageReader(ImageWriter writer) { if (writer == null) { - // imageio.96=Writer cannot be null + // imageio.96=writer == null! throw new IllegalArgumentException(Messages.getString("imageio.96")); //$NON-NLS-1$ } ImageWriterSpi writerSpi = writer.getOriginatingProvider(); Index: src/main/java/javax/imageio/spi/ImageReaderSpi.java =================================================================== --- src/main/java/javax/imageio/spi/ImageReaderSpi.java (revision 942459) +++ src/main/java/javax/imageio/spi/ImageReaderSpi.java (working copy) @@ -78,9 +78,12 @@ public abstract ImageReader createReaderInstance(Object extension) throws IOException; - public boolean isOwnReader(ImageReader reader) throws NotImplementedException { - // TODO: implement - throw new NotImplementedException(); + public boolean isOwnReader(ImageReader reader) { + if (reader == null) { + throw new IllegalArgumentException(Messages.getString("imageio.97")); + } + + return reader.getClass().getName().equals(pluginClassName); } public String[] getImageWriterSpiNames() { Index: src/main/java/javax/imageio/spi/ImageWriterSpi.java =================================================================== --- src/main/java/javax/imageio/spi/ImageWriterSpi.java (revision 942459) +++ src/main/java/javax/imageio/spi/ImageWriterSpi.java (working copy) @@ -90,9 +90,12 @@ public abstract ImageWriter createWriterInstance(Object extension) throws IOException; - public boolean isOwnWriter(ImageWriter writer) throws NotImplementedException { - // TODO: implement - throw new NotImplementedException(); + public boolean isOwnWriter(ImageWriter writer) { + if (writer == null) { + throw new IllegalArgumentException(Messages.getString("imageio.96")); + } + + return writer.getClass().getName().equals(pluginClassName); } public String[] getImageReaderSpiNames() { Index: src/main/java/org/apache/harmony/x/imageio/internal/nls/messages.properties =================================================================== --- src/main/java/org/apache/harmony/x/imageio/internal/nls/messages.properties (revision 941893) +++ src/main/java/org/apache/harmony/x/imageio/internal/nls/messages.properties (working copy) @@ -164,6 +164,6 @@ imageio.93=Illegal table size: {0} imageio.94=Output {0} is not supported imageio.95=Input is not an instance of java.io.RandomAccessFile -imageio.96=Writer cannot be null -imageio.97=Reader cannot be null +imageio.96=writer == null! +imageio.97=reader == null! Index: src/test/java/javax/imageio/spi/ImageReaderSpiTest.java =================================================================== --- src/test/java/javax/imageio/spi/ImageReaderSpiTest.java (revision 0) +++ src/test/java/javax/imageio/spi/ImageReaderSpiTest.java (revision 0) @@ -0,0 +1,33 @@ +package javax.imageio.spi; + +import javax.imageio.ImageIO; + +import junit.framework.TestCase; + +import org.apache.harmony.x.imageio.plugins.jpeg.JPEGImageReader; +import org.apache.harmony.x.imageio.plugins.jpeg.JPEGImageReaderSpi; +import org.apache.harmony.x.imageio.plugins.png.PNGImageReader; +import org.apache.harmony.x.imageio.plugins.png.PNGImageReaderSpi; + +public class ImageReaderSpiTest extends TestCase { + + public void testIsownReader() throws Exception { + JPEGImageReaderSpi jpegReaderSpi = new JPEGImageReaderSpi(); + JPEGImageReader jpegReader = new JPEGImageReader(jpegReaderSpi); + PNGImageReaderSpi pngReaderSpi = new PNGImageReaderSpi(); + PNGImageReader pngReader = new PNGImageReader(pngReaderSpi); + + assertTrue(jpegReaderSpi.isOwnReader(jpegReader)); + assertTrue(pngReaderSpi.isOwnReader(pngReader)); + assertFalse(jpegReaderSpi.isOwnReader(pngReader)); + assertFalse(pngReaderSpi.isOwnReader(jpegReader)); + + try { + jpegReaderSpi.isOwnReader(null); + fail("IllegalArgumentException expected"); + } catch (IllegalArgumentException expected){ + assertEquals("reader == null!", expected.getMessage()); + } + } + +} \ No newline at end of file