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 2018/05/25 18:02:35 UTC

svn commit: r1832260 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java

Author: tilman
Date: Fri May 25 18:02:35 2018
New Revision: 1832260

URL: http://svn.apache.org/viewvc?rev=1832260&view=rev
Log:
PDFBOX-4227: be resilent if XMP metadata can't be read

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java?rev=1832260&r1=1832259&r2=1832260&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java Fri May 25 18:02:35 2018
@@ -654,10 +654,18 @@ public class PDFMergerUtility
         COSStream srcMetadata = (COSStream) srcCatalog.getCOSObject().getDictionaryObject(COSName.METADATA);
         if (destMetadata == null && srcMetadata != null)
         {
-            PDStream newStream = new PDStream(destination, srcMetadata.createInputStream(), (COSName) null);           
-            mergeInto(srcMetadata, newStream.getCOSObject(), 
-                    new HashSet<COSName>(Arrays.asList(COSName.FILTER, COSName.LENGTH)));           
-            destCatalog.getCOSObject().setItem(COSName.METADATA, newStream);
+            try
+            {
+                PDStream newStream = new PDStream(destination, srcMetadata.createInputStream(), (COSName) null);           
+                mergeInto(srcMetadata, newStream.getCOSObject(), 
+                        new HashSet<COSName>(Arrays.asList(COSName.FILTER, COSName.LENGTH)));           
+                destCatalog.getCOSObject().setItem(COSName.METADATA, newStream);
+            }
+            catch (IOException ex)
+            {
+                // PDFBOX-4227 cleartext XMP stream with /Flate 
+                LOG.error("Metadata skipped because it could not be read", ex);
+            }
         }
 
         COSDictionary destOCP = (COSDictionary) destCatalog.getCOSObject().getDictionaryObject(COSName.OCPROPERTIES);