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
{