You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2018/02/18 17:58:10 UTC

svn commit: r1824680 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter: Filter.java FlateFilter.java LZWFilter.java

Author: msahyoun
Date: Sun Feb 18 17:58:10 2018
New Revision: 1824680

URL: http://svn.apache.org/viewvc?rev=1824680&view=rev
Log:
PDFBOX-4107: avoid potential ClassCastException; decodeParams can not be null -> simplify code

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/LZWFilter.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java?rev=1824680&r1=1824679&r2=1824680&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java Sun Feb 18 17:58:10 2018
@@ -105,7 +105,11 @@ public abstract class Filter
             COSArray array = (COSArray)obj;
             if (index < array.size())
             {
-                return (COSDictionary)array.getObject(index);
+                COSBase objAtIndex = array.getObject(index);
+                if (objAtIndex instanceof COSDictionary)
+                {
+                    return (COSDictionary)array.getObject(index);
+                }
             }
         }
         else if (obj != null && !(filter instanceof COSArray || obj instanceof COSArray))

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java?rev=1824680&r1=1824679&r2=1824680&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java Sun Feb 18 17:58:10 2018
@@ -46,13 +46,8 @@ final class FlateFilter extends Filter
     public DecodeResult decode(InputStream encoded, OutputStream decoded,
                                          COSDictionary parameters, int index) throws IOException
     {
-        int predictor = -1;
-
         final COSDictionary decodeParams = getDecodeParams(parameters, index);
-        if (decodeParams != null)
-        {
-            predictor = decodeParams.getInt(COSName.PREDICTOR);
-        }
+        int predictor = decodeParams.getInt(COSName.PREDICTOR);
 
         try
         {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/LZWFilter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/LZWFilter.java?rev=1824680&r1=1824679&r2=1824680&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/LZWFilter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/LZWFilter.java Sun Feb 18 17:58:10 2018
@@ -67,22 +67,17 @@ public class LZWFilter extends Filter
     public DecodeResult decode(InputStream encoded, OutputStream decoded,
             COSDictionary parameters, int index) throws IOException
     {
-        int predictor = -1;
-        int earlyChange = 1;
-
         COSDictionary decodeParams = getDecodeParams(parameters, index);
-        if (decodeParams != null)
+        int predictor = decodeParams.getInt(COSName.PREDICTOR);
+        int earlyChange = decodeParams.getInt(COSName.EARLY_CHANGE, 1);
+
+        if (earlyChange != 0 && earlyChange != 1)
         {
-            predictor = decodeParams.getInt(COSName.PREDICTOR);
-            earlyChange = decodeParams.getInt(COSName.EARLY_CHANGE, 1);
-            if (earlyChange != 0 && earlyChange != 1)
-            {
-                earlyChange = 1;
-            }
+            earlyChange = 1;
         }
+
         if (predictor > 1)
         {
-            @SuppressWarnings("null")
             int colors = Math.min(decodeParams.getInt(COSName.COLORS, 1), 32);
             int bitsPerPixel = decodeParams.getInt(COSName.BITS_PER_COMPONENT, 8);
             int columns = decodeParams.getInt(COSName.COLUMNS, 1);