Author: tilman
Date: Fri Dec 12 16:21:02 2025
New Revision: 1930470

Log:
PDFBOX-6119: catch exception, add some bad testcases

Modified:
   pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java
   pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java

Modified: pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java
==============================================================================
--- pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java      
Fri Dec 12 16:03:16 2025        (r1930469)
+++ pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java      
Fri Dec 12 16:21:02 2025        (r1930470)
@@ -93,7 +93,14 @@ public final class DateConverter
 
                 if (Pattern.matches("^\\d{4}-\\d{2}-\\d{2}T.*", date))
                 {
-                    return fromISO8601(date);
+                    try
+                    {
+                        return fromISO8601(date);
+                    }
+                    catch (DateTimeParseException ex)
+                    {
+                        throw new IOException(ex);
+                    }
                 }
                 if (date.startsWith("D:"))
                 {

Modified: 
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java
==============================================================================
--- pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java  
Fri Dec 12 16:03:16 2025        (r1930469)
+++ pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java  
Fri Dec 12 16:21:02 2025        (r1930470)
@@ -109,7 +109,13 @@ class DateConverterTest
         convDate = 
DateConverter.toCalendar("2025-09-03T15:43:47.989082+00:00");
         assertEquals(989, convDate.get(Calendar.MILLISECOND));
 
+        // test some bad strings
         assertThrows(IOException.class, () -> DateConverter.toCalendar("123"));
+        assertThrows(IOException.class, () -> 
DateConverter.toCalendar("2008-12-31T19:48:30+19:00"));
+        assertThrows(IOException.class, () -> 
DateConverter.toCalendar("2008-12-31T19:48:30-19:00"));
+        assertThrows(IOException.class, () -> 
DateConverter.toCalendar("2008-12-02T21:04:0Z"));
+        assertThrows(IOException.class, () -> 
DateConverter.toCalendar("0-01-01T00:00:00Z"));
+        assertThrows(IOException.class, () -> 
DateConverter.toCalendar("2009-03-16T01:15:19-0-4:00"));
 
         // Test missing seconds
         assertEquals(DateConverter.toCalendar("2015-12-08T12:07:00-05:00"),

Reply via email to