You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2014/10/12 19:15:09 UTC

svn commit: r1631220 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Author: lehmi
Date: Sun Oct 12 17:15:09 2014
New Revision: 1631220

URL: http://svn.apache.org/r1631220
Log:
PDFBOX-2395: don't overwrite the first part of the documentID

Modified:
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1631220&r1=1631219&r2=1631220&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java Sun Oct 12 17:15:09 2014
@@ -1481,7 +1481,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)
         {
             try
             {
@@ -1500,9 +1506,11 @@ public class COSWriter implements ICOSVi
                     }
                 }
                 idArray = new COSArray();
-                COSString id = new COSString( md.digest() );
-                idArray.add( id );
-                idArray.add( id );
+                // reuse origin documentID if available as first value
+                COSString firstID = missingID ? new COSString( md.digest() ) : (COSString)idArray.get(0);
+                COSString secondID = new COSString( md.digest() );
+                idArray.add( firstID );
+                idArray.add( secondID );
                 trailer.setItem( COSName.ID, idArray );
             }
             catch( NoSuchAlgorithmException e )