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);