Author: lehmi
Date: Sun Oct 12 17:15:53 2014
New Revision: 1631221
URL: http://svn.apache.org/r1631221
Log:
PDFBOX-2395: don't overwrite the first part of the documentID
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1631221&r1=1631220&r2=1631221&view=diff
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
(original)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
Sun Oct 12 17:15:53 2014
@@ -1332,7 +1332,13 @@ public class COSWriter implements ICOSVi
COSDocument cosDoc = document.getDocument();
COSDictionary trailer = cosDoc.getTrailer();
COSArray idArray = (COSArray)trailer.getDictionaryObject( COSName.ID );
- if( idArray == null || incrementalUpdate)
+ boolean missingID = true;
+ // check for an existing documentID
+ if (idArray != null && idArray.size() == 2)
+ {
+ missingID = false;
+ }
+ if( missingID || incrementalUpdate)
{
MessageDigest md5;
try
@@ -1359,9 +1365,11 @@ public class COSWriter implements ICOSVi
}
}
idArray = new COSArray();
- COSString id = new COSString( md5.digest() );
- idArray.add( id );
- idArray.add( id );
+ // reuse origin documentID if available as first value
+ COSString firstID = missingID ? new COSString( md5.digest() ) :
(COSString)idArray.get(0);
+ COSString secondID = new COSString( md5.digest() );
+ idArray.add( firstID );
+ idArray.add( secondID );
trailer.setItem( COSName.ID, idArray );
}
cosDoc.accept(this);