-
Bug
-
Resolution: Fixed
-
P4
-
1.0, 5.0
-
b45
-
generic
-
generic
Name: abR10136 Date: 03/22/2004
The MetadataFormat class for GIF stream (format
"javax_imageio_gif_stream_1.0") is not accessible because
this class is not public. It causes IllegalStateException when user
try to get instance of this class.
The WBMP image metadata format ("javax_imageio_wbmp_image_1.0")
is not registered correctly:
the ImageReaderSpi.getNativeImageMetadataFormatName returns null
instead of correct format name.
This testcase reproduces the problem:
============== BEGIN OF SOURCES ======================================
import javax.imageio.spi.IIORegistry;
import javax.imageio.spi.ImageReaderSpi;
import javax.imageio.metadata.IIOMetadataFormat;
import java.util.Iterator;
public class MetadataFormatTest {
public static void main(String[] args) {
IIORegistry registry = IIORegistry.getDefaultInstance();
Iterator iter = registry.getServiceProviders(ImageReaderSpi.class,
false);
while(iter.hasNext()) {
ImageReaderSpi spi = (ImageReaderSpi)iter.next();
String fmt_name;
fmt_name = spi.getNativeStreamMetadataFormatName();
testStreamMetadataFormat(spi, fmt_name);
fmt_name = spi.getNativeImageMetadataFormatName();
testImageMetadataFormat(spi, fmt_name);
String[] fmt_names;
fmt_names = spi.getExtraStreamMetadataFormatNames();
for (int i=0; fmt_names != null && i < fmt_names.length; i++) {
testStreamMetadataFormat(spi, fmt_names[i]);
}
fmt_names = spi.getExtraImageMetadataFormatNames();
for (int i=0; fmt_names != null && i < fmt_names.length; i++) {
testImageMetadataFormat(spi, fmt_names[i]);
}
}
}
private static void testStreamMetadataFormat(ImageReaderSpi spi,
String fmt_name) {
if (fmt_name == null) {
return;
}
try {
testMetadataFormat(spi.getStreamMetadataFormat(fmt_name),
fmt_name);
} catch (Exception e) {
System.out.println("Test failed for " + fmt_name);
}
}
private static void testImageMetadataFormat(ImageReaderSpi spi,
String fmt_name) {
if (fmt_name == null) {
return;
}
try {
testMetadataFormat(spi.getImageMetadataFormat(fmt_name),
fmt_name);
} catch (Exception e) {
System.out.println("Test failed for " + fmt_name);
}
}
private static void testMetadataFormat(IIOMetadataFormat fmt,
String fmt_name) {
System.out.print(fmt_name + "...");
if (fmt != null) {
System.out.println("Ok");
} else {
System.out.println("Failed to get format for "
+ fmt_name);
}
}
}
============== END OF SOURCES ======================================
======================================================================