Author: tilman
Date: Wed Aug 12 09:17:12 2026
New Revision: 1937074

Log:
PDFBOX-6235: force usage of sun JPEG reader

Modified:
   
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java
==============================================================================
--- 
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java
      Wed Aug 12 09:17:08 2026        (r1937073)
+++ 
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java
      Wed Aug 12 09:17:12 2026        (r1937074)
@@ -28,8 +28,11 @@ import java.nio.file.Files;
 import java.nio.file.Paths;
 
 import java.util.Arrays;
+import java.util.Iterator;
 
 import javax.imageio.ImageIO;
+import javax.imageio.ImageReader;
+import javax.imageio.stream.MemoryCacheImageInputStream;
 
 import org.apache.pdfbox.Loader;
 import org.apache.pdfbox.cos.COSName;
@@ -328,16 +331,30 @@ class JPEGFactoryTest
     @Test
     void testCreateFromImageCMYK() throws IOException
     {
+        Iterator<ImageReader> readers = 
ImageIO.getImageReadersByFormatName("JPEG");
+        ImageReader reader = null;
+        while (readers.hasNext())
+        {
+            reader = readers.next();
+            if 
(reader.getClass().getName().startsWith("com.sun.imageio.plugins.jpeg.JPEGImageReader"))
+            {
+                break;
+            }
+            reader = null;
+        }
+        assumeTrue(reader != null, "This test works only with the original 
java imaging reader");
+
         // magick -size 200x200 gradient:red-blue -colorspace CMYK 
PDFBOX-6235-cmyk.jpg
         byte[] ba;
         try (InputStream is = 
JPEGFactoryTest.class.getResourceAsStream("PDFBOX-6235-cmyk.jpg"))
         {
             ba = IOUtils.toByteArray(is);
         }
-        BufferedImage bim = ImageIO.read(new ByteArrayInputStream(ba));
+        reader.setInput(new MemoryCacheImageInputStream(new 
ByteArrayInputStream(ba)));
+        BufferedImage bim = reader.read(0);
 
         // This test works only with the original java imaging, not with 
twelvemonkeys
-        assumeTrue(bim.getColorModel().getColorSpace().getType() == 
ColorSpace.TYPE_CMYK);
+        assertEquals(ColorSpace.TYPE_CMYK, 
bim.getColorModel().getColorSpace().getType());
         assertEquals(BufferedImage.TYPE_CUSTOM, bim.getType());
         assertEquals(4, bim.getColorModel().getNumComponents());
 

Reply via email to