You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2020/02/05 20:22:17 UTC

svn commit: r1873667 - in /pdfbox/trunk: pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/ pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/ preflight/src/main/java/org/apache/pdf...

Author: tilman
Date: Wed Feb  5 20:22:17 2020
New Revision: 1873667

URL: http://svn.apache.org/viewvc?rev=1873667&view=rev
Log:
PDFBOX-4767: return empty list instead of null

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/PDStreamTest.java
    pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java

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=1873667&r1=1873666&r2=1873667&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 Wed Feb  5 20:22:17 2020
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import org.apache.pdfbox.cos.COSArray;
@@ -239,13 +240,12 @@ public class PDStream implements COSObje
 
     /**
      * This will get the list of filters that are associated with this stream.
-     * Or null if there are none.
      * 
-     * @return A list of all encoding filters to apply to this stream.
+     * @return A (possibly empty) list of all encoding filters to apply to this stream, never null.
      */
     public List<COSName> getFilters()
     {
-        List<COSName> retval = null;
+        List<COSName> retval = Collections.EMPTY_LIST;
         COSBase filters = stream.getFilters();
         if (filters instanceof COSName)
         {

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=1873667&r1=1873666&r2=1873667&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 Wed Feb  5 20:22:17 2020
@@ -23,6 +23,8 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
@@ -236,14 +238,13 @@ public final class PDInlineImage impleme
     }
 
     /**
-     * Returns a list of filters applied to this stream, or null if there are none.
+     * Returns A list of filters applied to this stream.
      *
-     * @return a list of filters applied to this stream
+     * @return A (possibly empty) list of filters applied to this stream, never null.
      */
-    // TODO return an empty list if there are none?
     public List<String> getFilters()
     {
-        List<String> names = null;
+        List<String> names = Collections.EMPTY_LIST;
         COSBase filters = parameters.getDictionaryObject(COSName.F, COSName.FILTER);
         if (filters instanceof COSName)
         {

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/PDStreamTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/PDStreamTest.java?rev=1873667&r1=1873666&r2=1873667&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/PDStreamTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/PDStreamTest.java Wed Feb  5 20:22:17 2020
@@ -42,7 +42,7 @@ public class PDStreamTest
         {
             InputStream is = new ByteArrayInputStream(new byte[] { 12, 34, 56, 78 });
             PDStream pdStream = new PDStream(doc, is, (COSArray) null);
-            Assert.assertNull(pdStream.getFilters());
+            Assert.assertTrue(pdStream.getFilters().isEmpty());
             List<String> stopFilters = new ArrayList<>();
             stopFilters.add(COSName.DCT_DECODE.toString());
             stopFilters.add(COSName.DCT_DECODE_ABBREVIATION.toString());

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java?rev=1873667&r1=1873666&r2=1873667&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java Wed Feb  5 20:22:17 2020
@@ -270,10 +270,9 @@ public class MetadataValidationProcess e
             throw new XpacketParsingException("Failed while retrieving xpacket", error);
         }
 
-        // no filter key
-        if (metadata.getFilters() != null)
+        if (metadata.getCOSObject().containsKey(COSName.FILTER))
         {
-            // should not be defined
+            // filter key should not be defined
             ValidationError error = new ValidationError(
                     PreflightConstants.ERROR_SYNTAX_STREAM_INVALID_FILTER,
                     "Filter specified in metadata dictionary");