Author: tilman Date: Tue Oct 20 15:08:30 2020 New Revision: 1882702 URL: http://svn.apache.org/viewvc?rev=1882702&view=rev Log: PDFBOX-4997: treat non-COSUpdateInfo objects as isNeedToBeUpdated == false, as suggested by Michael Klink
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=1882702&r1=1882701&r2=1882702&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 Tue Oct 20 15:08:30 2020 @@ -511,8 +511,7 @@ public class COSWriter implements ICOSVi cosBase = keyObject.get(cosObjectKey); } if (actual != null && objectKeys.containsKey(actual) - && object instanceof COSUpdateInfo && !((COSUpdateInfo)object).isNeedToBeUpdated() - && cosBase instanceof COSUpdateInfo && !((COSUpdateInfo)cosBase).isNeedToBeUpdated() ) + && !isNeedToBeUpdated(object) && !isNeedToBeUpdated(cosBase)) { return; } @@ -526,6 +525,20 @@ public class COSWriter implements ICOSVi } /** + * Convenience method, so that we get false for types that can't be updated. + * @param base + * @return + */ + private boolean isNeedToBeUpdated(COSBase base) + { + if (base instanceof COSUpdateInfo) + { + return ((COSUpdateInfo) base).isNeedToBeUpdated(); + } + return false; + } + + /** * This will write a COS object. * * @param obj The object to write.