Skip to content

Commit eaf2d91

Browse files
committed
Update xmp metadata if it was present in document before close
This includes cases if user manually set xmp metadata, or if it was present in modified document. DEVSIX-1870
1 parent 69d4c42 commit eaf2d91

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfDocument.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1805,7 +1805,7 @@ protected void addCustomMetadataExtensions(XMPMeta xmpMeta) {
18051805
*/
18061806
protected void updateXmpMetadata() {
18071807
try {
1808-
if (writer.properties.addXmpMetadata) {
1808+
if (xmpMetadata != null || writer.properties.addXmpMetadata) {
18091809
setXmpMetadata(updateDefaultXmpMetadata());
18101810
}
18111811
} catch (XMPException e) {

kernel/src/test/java/com/itextpdf/kernel/pdf/XMPMetadataTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ This file is part of the iText (R) project.
4242
*/
4343
package com.itextpdf.kernel.pdf;
4444

45+
import com.itextpdf.io.LogMessageConstant;
4546
import com.itextpdf.kernel.utils.CompareTool;
4647
import com.itextpdf.kernel.xmp.PdfConst;
4748
import com.itextpdf.kernel.xmp.XMPConst;
@@ -51,6 +52,8 @@ This file is part of the iText (R) project.
5152
import com.itextpdf.kernel.xmp.XMPUtils;
5253
import com.itextpdf.kernel.xmp.options.SerializeOptions;
5354
import com.itextpdf.test.ExtendedITextTest;
55+
import com.itextpdf.test.annotations.LogMessage;
56+
import com.itextpdf.test.annotations.LogMessages;
5457
import com.itextpdf.test.annotations.type.IntegrationTest;
5558

5659
import java.io.ByteArrayInputStream;
@@ -179,6 +182,9 @@ public void emptyDocumentWithXmpAppendMode02() throws Exception {
179182

180183

181184
@Test
185+
@LogMessages(messages = {
186+
@LogMessage(messageTemplate = LogMessageConstant.EXCEPTION_WHILE_UPDATING_XMPMETADATA)
187+
})
182188
public void createEmptyDocumentWithAbcXmp() throws IOException, XMPException {
183189
ByteArrayOutputStream fos = new ByteArrayOutputStream();
184190
PdfWriter writer = new PdfWriter(fos);

0 commit comments

Comments
 (0)