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


Reply via email to