Author: lehmi
Date: Sat Mar  9 13:36:31 2024
New Revision: 1916197

URL: http://svn.apache.org/viewvc?rev=1916197&view=rev
Log:
PDFBOX-5783: remove duplicate filter list entries instead of throwing an 
exception

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.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=1916197&r1=1916196&r2=1916197&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 Sat 
Mar  9 13:36:31 2024
@@ -19,6 +19,7 @@ package org.apache.pdfbox.filter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -216,7 +217,17 @@ public abstract class Filter
             Set<Filter> filterSet = new HashSet<>(filterList);
             if (filterSet.size() != filterList.size())
             {
-                throw new IOException("Duplicate");
+                List<Filter> reducedFilterList = new ArrayList<>();
+                for (Filter filter : filterList)
+                {
+                    if (!reducedFilterList.contains(filter))
+                    {
+                        reducedFilterList.add(filter);
+                    }
+                }
+                // replace origin list with the reduced one
+                filterList = reducedFilterList;
+                LOG.warn("Removed duplicated filter entries");
             }
         }
         InputStream input = encoded;


Reply via email to