You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/02/23 21:25:10 UTC

svn commit: r1571082 [2/2] - in /pdfbox/trunk/pdfbox/src: main/java/org/apache/pdfbox/cos/ main/java/org/apache/pdfbox/filter/ main/java/org/apache/pdfbox/pdmodel/common/ main/java/org/apache/pdfbox/pdmodel/graphics/color/ main/java/org/apache/pdfbox/p...

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/RunLengthDecodeFilter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/RunLengthDecodeFilter.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/RunLengthDecodeFilter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/RunLengthDecodeFilter.java Sun Feb 23 20:25:09 2014
@@ -25,82 +25,51 @@ import org.apache.commons.logging.LogFac
 import org.apache.pdfbox.cos.COSDictionary;
 
 /**
- * This is a filter for the RunLength Decoder.
+ * Decompresses data encoded using a byte-oriented run-length encoding algorithm,
+ * reproducing the original text or binary data
  *
- * From the PDF Reference
- * <pre>
- * The RunLengthDecode filter decodes data that has been encoded in a simple
- * byte-oriented format based on run length. The encoded data is a sequence of
- * runs, where each run consists of a length byte followed by 1 to 128 bytes of data. If
- * the length byte is in the range 0 to 127, the following length + 1 (1 to 128) bytes
- * are copied literally during decompression. If length is in the range 129 to 255, the
- * following single byte is to be copied 257 ? length (2 to 128) times during decompression.
- * A length value of 128 denotes EOD.
- *
- * The compression achieved by run-length encoding depends on the input data. In
- * the best case (all zeros), a compression of approximately 64:1 is achieved for long
- * files. The worst case (the hexadecimal sequence 00 alternating with FF) results in
- * an expansion of 127:128.
- * </pre>
- *
- * @author <a href="mailto:ben@benlitchfield.com">Ben Litchfield</a>
- * @version $Revision: 1.6 $
+ * @author Ben Litchfield
  */
-public class RunLengthDecodeFilter implements Filter
+final class RunLengthDecodeFilter extends Filter
 {
-    /**
-     * Log instance.
-     */
     private static final Log log = LogFactory.getLog(RunLengthDecodeFilter.class);
-
     private static final int RUN_LENGTH_EOD = 128;
 
-    /**
-     * Constructor.
-     */
-    public RunLengthDecodeFilter()
-    {
-        //default constructor
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public void decode( InputStream compressedData, OutputStream result, COSDictionary options, int filterIndex ) 
-        throws IOException
+    @Override
+    protected final DecodeResult decode(InputStream encoded, OutputStream decoded,
+                                         COSDictionary parameters) throws IOException
     {
-        int dupAmount = -1;
+        int dupAmount;
         byte[] buffer = new byte[128];
-        while( (dupAmount = compressedData.read()) != -1 && dupAmount != RUN_LENGTH_EOD )
+        while ((dupAmount = encoded.read()) != -1 && dupAmount != RUN_LENGTH_EOD)
         {
-            if( dupAmount <= 127 )
+            if (dupAmount <= 127)
             {
-                int amountToCopy = dupAmount+1;
-                int compressedRead = 0;
-                while( amountToCopy > 0 )
+                int amountToCopy = dupAmount + 1;
+                int compressedRead;
+                while(amountToCopy > 0)
                 {
-                    compressedRead = compressedData.read( buffer, 0, amountToCopy );
-                    result.write( buffer, 0, compressedRead );
+                    compressedRead = encoded.read(buffer, 0, amountToCopy);
+                    decoded.write(buffer, 0, compressedRead);
                     amountToCopy -= compressedRead;
                 }
             }
             else
             {
-                int dupByte = compressedData.read();
-                for( int i=0; i<257-dupAmount; i++ )
+                int dupByte = encoded.read();
+                for (int i = 0; i < 257 - dupAmount; i++)
                 {
-                    result.write( dupByte );
+                    decoded.write(dupByte);
                 }
             }
         }
+        return new DecodeResult(parameters);
     }
 
-     /**
-     * {@inheritDoc}
-     */
-    public void encode( InputStream rawData, OutputStream result, COSDictionary options, int filterIndex ) 
-        throws IOException
+    @Override
+    protected final void encode(InputStream input, OutputStream encoded, COSDictionary parameters)
+            throws IOException
     {
-        log.warn( "RunLengthDecodeFilter.encode is not implemented yet, skipping this stream." );
+        log.warn("RunLengthDecodeFilter.encode is not implemented yet, skipping this stream.");
     }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/TIFFFaxDecoder.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/TIFFFaxDecoder.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/TIFFFaxDecoder.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/TIFFFaxDecoder.java Sun Feb 23 20:25:09 2014
@@ -19,7 +19,10 @@
 
 package org.apache.pdfbox.filter;
 
-class TIFFFaxDecoder {
+/**
+ * CCITT Fax decoder
+ */
+final class TIFFFaxDecoder {
 
     private int bitPointer, bytePointer;
     private byte[] data;

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java Sun Feb 23 20:25:09 2014
@@ -34,7 +34,7 @@ import org.apache.pdfbox.cos.COSNull;
 import org.apache.pdfbox.cos.COSStream;
 
 import org.apache.pdfbox.filter.Filter;
-import org.apache.pdfbox.filter.FilterManager;
+import org.apache.pdfbox.filter.FilterFactory;
 import org.apache.pdfbox.io.IOUtils;
 
 import org.apache.pdfbox.pdmodel.PDDocument;
@@ -246,7 +246,6 @@ public class PDStream implements COSObje
     public InputStream getPartiallyFilteredStream(List<String> stopFilters)
             throws IOException
     {
-        FilterManager manager = stream.getFilterManager();
         InputStream is = stream.getFilteredStream();
         ByteArrayOutputStream os = new ByteArrayOutputStream();
         List<COSName> filters = getFilters();
@@ -260,7 +259,7 @@ public class PDStream implements COSObje
             }
             else
             {
-                Filter filter = manager.getFilter(nextFilter);
+                Filter filter = FilterFactory.INSTANCE.getFilter(nextFilter);
                 filter.decode(is, os, stream, i);
                 IOUtils.closeQuietly(is);
                 is = new ByteArrayInputStream(os.toByteArray());

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDJPXColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDJPXColorSpace.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDJPXColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDJPXColorSpace.java Sun Feb 23 20:25:09 2014
@@ -59,10 +59,10 @@ public final class PDJPXColorSpace exten
     {
         int n = getNumberOfComponents();
         float[] decode = new float[n * 2];
-        for (int i = 0; i < n; i += 2)
+        for (int i = 0; i < n; i++)
         {
-            decode[i] = awtColorSpace.getMinValue(i);
-            decode[i+1] = awtColorSpace.getMaxValue(i);
+            decode[i * 2] = awtColorSpace.getMinValue(i);
+            decode[i * 2 + 1] = awtColorSpace.getMaxValue(i);
         }
         return decode;
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java Sun Feb 23 20:25:09 2014
@@ -20,26 +20,19 @@ import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.cos.COSStream;
-import org.apache.pdfbox.filter.JPXFilter;
-import org.apache.pdfbox.io.IOUtils;
+import org.apache.pdfbox.filter.DecodeResult;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.common.PDMetadata;
 import org.apache.pdfbox.pdmodel.common.PDStream;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
 import org.apache.pdfbox.pdmodel.graphics.PDXObject;
+import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
 
-import java.awt.AlphaComposite;
 import java.awt.Graphics2D;
 import java.awt.Paint;
-import java.awt.Point;
 import java.awt.image.BufferedImage;
-import java.awt.image.ColorModel;
-import java.awt.image.DataBuffer;
-import java.awt.image.Raster;
 import java.awt.image.WritableRaster;
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.List;
 import java.util.Map;
 
@@ -52,6 +45,7 @@ import java.util.Map;
 public final class PDImageXObject extends PDXObject implements PDImage
 {
     private BufferedImage cachedImage;
+    private PDColorSpace colorSpace;
     private Map<String, PDColorSpace> colorSpaces;  // from current resource dictionary
 
     /**
@@ -71,7 +65,7 @@ public final class PDImageXObject extend
      * Creates an Image XObject in the given document.
      * @param document the current document
      */
-    public PDImageXObject(PDDocument document)
+    public PDImageXObject(PDDocument document) throws IOException
     {
         this(new PDStream(document), null);
     }
@@ -81,10 +75,25 @@ public final class PDImageXObject extend
      * @param stream the XObject stream to read
      * @param colorSpaces the color spaces in the current resources dictionary, null for masks
      */
-    public PDImageXObject(PDStream stream, Map<String, PDColorSpace> colorSpaces)
+    public PDImageXObject(PDStream stream, Map<String, PDColorSpace> colorSpaces) throws IOException
+    {
+        this(stream, colorSpaces, stream.getStream().getDecodeResult());
+    }
+
+    // repairs parameters using decode result
+    private PDImageXObject(PDStream stream, Map<String, PDColorSpace> colorSpaces,
+                           DecodeResult decodeResult)
     {
-        super(stream, COSName.IMAGE);
+        super(repair(stream, decodeResult), COSName.IMAGE);
         this.colorSpaces = colorSpaces;
+        this.colorSpace = decodeResult.getJPXColorSpace();
+    }
+
+    // repairs parameters using decode result
+    private static PDStream repair(PDStream stream, DecodeResult decodeResult)
+    {
+        stream.getStream().addAll(decodeResult.getParameters());
+        return stream;
     }
 
     /**
@@ -250,7 +259,7 @@ public final class PDImageXObject extend
      * Returns the Mask Image XObject associated with this image, or null if there is none.
      * @return Mask Image XObject
      */
-    public PDImageXObject getMask()
+    public PDImageXObject getMask() throws IOException
     {
         COSStream cosStream = (COSStream)getCOSStream().getDictionaryObject(COSName.MASK);
         if (cosStream != null)
@@ -264,7 +273,7 @@ public final class PDImageXObject extend
      * Returns the Soft Mask Image XObject associated with this image, or null if there is none.
      * @return the SMask Image XObject, or null.
      */
-    public PDImageXObject getSoftMask()
+    public PDImageXObject getSoftMask() throws IOException
     {
         COSStream cosStream = (COSStream)getCOSStream().getDictionaryObject(COSName.SMASK);
         if (cosStream != null)
@@ -276,7 +285,7 @@ public final class PDImageXObject extend
 
     public int getBitsPerComponent()
     {
-        return getCOSStream().getInt(COSName.BITS_PER_COMPONENT, COSName.BPC, -1);
+        return getCOSStream().getInt(COSName.BITS_PER_COMPONENT, COSName.BPC);
     }
 
     public void setBitsPerComponent(int bpc)
@@ -286,46 +295,25 @@ public final class PDImageXObject extend
 
     public PDColorSpace getColorSpace() throws IOException
     {
-        COSBase cosBase = getCOSStream().getDictionaryObject(COSName.COLORSPACE, COSName.CS);
-        if (cosBase != null)
-        {
-            return PDColorSpace.create(cosBase, colorSpaces, null);
-        }
-        else
+        if (colorSpace == null)
         {
-            // examine filters
-            COSBase filter = getCOSStream().getDictionaryObject(COSName.FILTER);
-            if (COSName.JPX_DECODE.equals(filter))
+            COSBase cosBase = getCOSStream().getDictionaryObject(COSName.COLORSPACE, COSName.CS);
+            if (cosBase != null)
             {
-                // JPX images may embed a color space
-                InputStream input = getStream().createInputStream();
-                try
-                {
-                    return JPXFilter.getColorSpace(input);
-                }
-                finally
-                {
-                    IOUtils.closeQuietly(input);
-                }
+                colorSpace = PDColorSpace.create(cosBase, colorSpaces, null);
+            }
+            else if (isStencil())
+            {
+                // stencil mask color space must be gray, it is often missing
+                return PDDeviceGray.INSTANCE;
             }
             else
             {
-                // TODO what does the PDF spec say about this?
-                // if the ColorSpace is missing, we try and guess it
-                if (COSName.CCITTFAX_DECODE.equals(filter) ||
-                    COSName.CCITTFAX_DECODE_ABBREVIATION.equals(filter) ||
-                    COSName.JBIG2_DECODE.equals(filter) ||
-                    isStencil())
-                {
-                    return PDDeviceGray.INSTANCE;
-                }
-                else
-                {
-                    // this method must not return null
-                    throw new IOException("could not determine color space");
-                }
+                // an image without a color space is always broken
+                throw new IOException("could not determine color space");
             }
         }
+        return colorSpace;
     }
 
     public PDStream getStream() throws IOException
@@ -340,7 +328,7 @@ public final class PDImageXObject extend
 
     public int getHeight()
     {
-        return getCOSStream().getInt(COSName.HEIGHT, -1);
+        return getCOSStream().getInt(COSName.HEIGHT);
     }
 
     public void setHeight(int h)
@@ -350,7 +338,7 @@ public final class PDImageXObject extend
 
     public int getWidth()
     {
-        return getCOSStream().getInt(COSName.WIDTH, -1);
+        return getCOSStream().getInt(COSName.WIDTH);
     }
 
     public void setWidth(int w)

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java Sun Feb 23 20:25:09 2014
@@ -21,7 +21,6 @@ import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -29,8 +28,12 @@ import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.cos.COSStream;
+import org.apache.pdfbox.filter.DecodeResult;
 import org.apache.pdfbox.filter.Filter;
-import org.apache.pdfbox.filter.FilterManager;
+import org.apache.pdfbox.filter.FilterFactory;
+import org.apache.pdfbox.io.RandomAccess;
+import org.apache.pdfbox.io.RandomAccessBuffer;
 import org.apache.pdfbox.pdmodel.common.COSArrayList;
 import org.apache.pdfbox.pdmodel.common.PDMemoryStream;
 import org.apache.pdfbox.pdmodel.common.PDStream;
@@ -65,32 +68,34 @@ public final class PDInlineImage impleme
                          Map<String, PDColorSpace> colorSpaces) throws IOException
     {
         this.parameters = parameters;
-        this.stream = createStream(data);
         this.colorSpaces = colorSpaces;
-    }
 
-    private PDStream createStream(byte[] data) throws IOException
-    {
+        DecodeResult decodeResult = null;
         if (getFilters() == null)
         {
-            return new PDMemoryStream(data);
+            this.stream = new PDMemoryStream(data);
         }
         else
         {
             List<String> filters = getFilters();
             ByteArrayInputStream in = new ByteArrayInputStream(data);
             ByteArrayOutputStream out = new ByteArrayOutputStream(data.length);
-            FilterManager filterManager = new FilterManager();
             for (int i = 0; i < filters.size(); i++)
             {
+                // TODO handling of abbreviated names belongs here, rather than in other classes
                 out.reset();
-                Filter filter = filterManager.getFilter(filters.get(i));
-                filter.decode(in, out, parameters.asUnmodifiableDictionary(), i);
+                Filter filter = FilterFactory.INSTANCE.getFilter(filters.get(i));
+                decodeResult = filter.decode(in, out, parameters, i);
                 in = new ByteArrayInputStream(out.toByteArray());
             }
             byte[] finalData = out.toByteArray();
+            this.stream = new PDMemoryStream(finalData);
+        }
 
-            return new PDMemoryStream(finalData);
+        // repair parameters
+        if (decodeResult != null)
+        {
+            parameters.addAll(decodeResult.getParameters());
         }
     }
 
@@ -129,7 +134,7 @@ public final class PDInlineImage impleme
         }
         else
         {
-            // this method must not return null
+            // an image without a color space is always broken
             throw new IOException("could not determine color space");
         }
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java Sun Feb 23 20:25:09 2014
@@ -16,8 +16,6 @@
  */
 package org.apache.pdfbox.pdmodel.graphics.image;
 
-import java.awt.AlphaComposite;
-import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.Paint;
 import java.awt.Point;
@@ -26,28 +24,11 @@ import java.awt.image.DataBuffer;
 import java.awt.image.Raster;
 import java.awt.image.WritableRaster;
 import java.io.IOException;
-import java.util.List;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.pdfbox.cos.COSArray;
-import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.filter.MissingImageReaderException;
-import org.apache.pdfbox.pdmodel.common.PDRange;
-import org.apache.pdfbox.pdmodel.common.PDStream;
-import org.apache.pdfbox.pdmodel.graphics.color.PDCalGray;
-import org.apache.pdfbox.pdmodel.graphics.color.PDCalRGB;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceN;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
-import org.apache.pdfbox.pdmodel.graphics.color.PDICCBased;
-import org.apache.pdfbox.pdmodel.graphics.color.PDIndexed;
-import org.apache.pdfbox.pdmodel.graphics.color.PDJPXColorSpace;
-import org.apache.pdfbox.pdmodel.graphics.color.PDLab;
-import org.apache.pdfbox.pdmodel.graphics.color.PDPattern;
-import org.apache.pdfbox.pdmodel.graphics.color.PDSeparation;
 
 import javax.imageio.stream.ImageInputStream;
 import javax.imageio.stream.MemoryCacheImageInputStream;
@@ -124,8 +105,7 @@ final class SampledImageReader
     {
         if (pdImage.getStream().getLength() == 0)
         {
-            LOG.warn("Image has empty stream");
-            return new BufferedImage(0, 0, BufferedImage.TYPE_INT_RGB);
+            throw new IOException("Image stream is empty");
         }
 
         // get parameters
@@ -219,14 +199,6 @@ final class SampledImageReader
                 decode = null;
             }
 
-            // JPX: decode shall be ignored, except when the image is treated as a mask
-            if (pdImage.getStream().getFilters() != null &&
-                pdImage.getStream().getFilters().contains(COSName.JPX_DECODE) &&
-               !pdImage.isStencil())
-            {
-                decode = null;
-            }
-
             // otherwise, its length shall be twice the number of colour
             // components required by ColorSpace
             int n = pdImage.getColorSpace().getNumberOfComponents();

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSBase.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSBase.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSBase.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSBase.java Sun Feb 23 20:25:09 2014
@@ -19,7 +19,7 @@ package org.apache.pdfbox.cos;
 
 import junit.framework.TestCase;
 
-import org.apache.pdfbox.filter.FilterManager;
+import org.apache.pdfbox.filter.FilterFactory;
 
 /**
  * Test class for {@link COSBase}.
@@ -30,14 +30,6 @@ public abstract class TestCOSBase extend
     protected COSBase testCOSBase;
 
     /**
-     * Tests getFilterManager() - test that a filter manager is obtained... Not much to test here.
-     */
-    public void testGetFilterManager()
-    {
-        assertTrue(testCOSBase.getFilterManager() instanceof FilterManager);
-    }
-
-    /**
      * Tests getCOSObject() - tests that the underlying object is returned.
      */
     public void testGetCOSObject()

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/filter/TestFilters.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/filter/TestFilters.java?rev=1571082&r1=1571081&r2=1571082&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/filter/TestFilters.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/filter/TestFilters.java Sun Feb 23 20:25:09 2014
@@ -26,13 +26,11 @@ import junit.framework.TestCase;
 
 import org.apache.pdfbox.cos.COSDictionary;
 
-
 /**
  * This will test all of the filters in the PDFBox system.
  */
 public class TestFilters extends TestCase
 {
-
     /**
      * This will test all of the filters in the system.
      *
@@ -74,9 +72,8 @@ public class TestFilters extends TestCas
                         }
                     }
                 }
-        
-                FilterManager manager = new FilterManager();
-                for( Filter filter : manager.getFilters() ) 
+
+                for( Filter filter : FilterFactory.INSTANCE.getAllFilters() )
                 {
                     // Skip filters that don't currently support roundtripping
                     if( filter instanceof DCTFilter ||
@@ -89,14 +86,12 @@ public class TestFilters extends TestCas
                         }
 
                     ByteArrayOutputStream encoded = new ByteArrayOutputStream();
-                    filter.encode(
-                                  new ByteArrayInputStream( original ),
-                                  encoded, new COSDictionary(), 0 );
+                    filter.encode(new ByteArrayInputStream( original ),
+                                  encoded, new COSDictionary() );
 
                     ByteArrayOutputStream decoded = new ByteArrayOutputStream();
-                    filter.decode(
-                                  new ByteArrayInputStream( encoded.toByteArray() ),
-                                  decoded, new COSDictionary().asUnmodifiableDictionary(), 0 );
+                    filter.decode(new ByteArrayInputStream( encoded.toByteArray() ),
+                                  decoded, new COSDictionary() );
 
                     assertTrue(
                                "Data that is encoded and then decoded through "