You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2024/03/09 13:41:35 UTC
svn commit: r1916199 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java
Author: lehmi
Date: Sat Mar 9 13:41:35 2024
New Revision: 1916199
URL: http://svn.apache.org/viewvc?rev=1916199&view=rev
Log:
PDFBOX-5783: remove duplicate filter list entries instead of throwing an exception
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java?rev=1916199&r1=1916198&r2=1916199&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java Sat Mar 9 13:41:35 2024
@@ -28,6 +28,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.pdfbox.filter.DecodeOptions;
import org.apache.pdfbox.filter.DecodeResult;
import org.apache.pdfbox.filter.Filter;
@@ -43,6 +45,8 @@ import org.apache.pdfbox.io.ScratchFile;
*/
public final class COSInputStream extends FilterInputStream
{
+ private static final Log LOG = LogFactory.getLog(COSInputStream.class);
+
/**
* Creates a new COSInputStream from an encoded input stream.
*
@@ -74,7 +78,17 @@ public final class COSInputStream extend
Set<Filter> filterSet = new HashSet<Filter>(filters);
if (filterSet.size() != filters.size())
{
- throw new IOException("Duplicate");
+ List<Filter> reducedFilterList = new ArrayList<Filter>();
+ for (Filter filter : filters)
+ {
+ if (!reducedFilterList.contains(filter))
+ {
+ reducedFilterList.add(filter);
+ }
+ }
+ // replace origin list with the reduced one
+ filters = reducedFilterList;
+ LOG.warn("Removed duplicated filter entries");
}
}
// apply filters