You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2025/06/28 15:49:11 UTC
svn commit: r1926831 - in /pdfbox/branches/3.0/xmpbox/src: main/java/org/apache/xmpbox/type/DateType.java test/java/org/apache/xmpbox/parser/DeserializationTest.java
Author: tilman
Date: Sat Jun 28 15:49:11 2025
New Revision: 1926831
URL: http://svn.apache.org/viewvc?rev=1926831&view=rev
Log:
PDFBOX-6029: avoid NPE; add test
Modified:
pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/type/DateType.java
pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/parser/DeserializationTest.java
Modified: pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/type/DateType.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/type/DateType.java?rev=1926831&r1=1926830&r2=1926831&view=diff
==============================================================================
--- pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/type/DateType.java (original)
+++ pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/type/DateType.java Sat Jun 28 15:49:11 2025
@@ -146,6 +146,10 @@ public class DateType extends AbstractSi
@Override
public String getStringValue()
{
+ if (dateValue == null)
+ {
+ return null;
+ }
return DateConverter.toISO8601(dateValue);
}
Modified: pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/parser/DeserializationTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/parser/DeserializationTest.java?rev=1926831&r1=1926830&r2=1926831&view=diff
==============================================================================
--- pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/parser/DeserializationTest.java (original)
+++ pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/parser/DeserializationTest.java Sat Jun 28 15:49:11 2025
@@ -371,6 +371,32 @@ class DeserializationTest
checkTransform(metadata, "90022311886271402508155234494196354960301469636090129252744270615851988530557");
}
+ /**
+ * PDFBOX-6029: serialize an empty date property, this brought a NullPointerException.
+ *
+ * @throws XmpParsingException
+ * @throws TransformerException
+ * @throws NoSuchAlgorithmException
+ * @throws UnsupportedEncodingException
+ */
+ @Test
+ void testEmptyDate() throws XmpParsingException, TransformerException, NoSuchAlgorithmException, UnsupportedEncodingException
+ {
+ String xmpmeta = "<?xpacket begin=\"\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?>\n"
+ + "<x:xmpmeta x:xmptk=\"Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-20:48:00\" xmlns:x=\"adobe:ns:meta/\">\n"
+ + " <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n"
+ + " <rdf:Description rdf:about=\"\" xmlns:xmp=\"http://ns.adobe.com/xap/1.0/\">\n"
+ + " <xmp:CreateDate></xmp:CreateDate>\n"
+ + " </rdf:Description>\n"
+ + " </rdf:RDF>\n"
+ + "</x:xmpmeta>\n"
+ + "<?xpacket end=\"w\"?>";
+ DomXmpParser xmpParser = new DomXmpParser();
+ xmpParser.setStrictParsing(false);
+ XMPMetadata xmp = xmpParser.parse(xmpmeta.getBytes());
+ checkTransform(xmp, "12127125812762553969536294425864809210802519304519294152028982122058554009237");
+ }
+
private void checkTransform(XMPMetadata metadata, String expected)
throws TransformerException, NoSuchAlgorithmException, UnsupportedEncodingException
{