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