You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2019/03/04 15:17:18 UTC

[sling-org-apache-sling-servlet-helpers] branch master updated: SLING-7797 make sure IllegalArgumentException is thrown when trying to parse an invalid date value

This is an automated email from the ASF dual-hosted git repository.

sseifert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlet-helpers.git


The following commit(s) were added to refs/heads/master by this push:
     new 80b2025  SLING-7797 make sure IllegalArgumentException is thrown when trying to parse an invalid date value
80b2025 is described below

commit 80b2025c8c01234b6b149ef986c38667c48bca89
Author: sseifert <ss...@pro-vision.de>
AuthorDate: Mon Mar 4 16:16:51 2019 +0100

    SLING-7797 make sure IllegalArgumentException is thrown when trying to parse an invalid date value
---
 src/main/java/org/apache/sling/servlethelpers/HeaderSupport.java  | 8 +++++++-
 .../sling/servlethelpers/MockSlingHttpServletRequestTest.java     | 7 +++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/servlethelpers/HeaderSupport.java b/src/main/java/org/apache/sling/servlethelpers/HeaderSupport.java
index d644a74..24f0b63 100644
--- a/src/main/java/org/apache/sling/servlethelpers/HeaderSupport.java
+++ b/src/main/java/org/apache/sling/servlethelpers/HeaderSupport.java
@@ -22,6 +22,7 @@ import java.time.Instant;
 import java.time.ZoneOffset;
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collection;
@@ -158,7 +159,12 @@ class HeaderSupport {
     }
 
     private static synchronized Calendar parseDate(String dateString) {
-        return GregorianCalendar.from(ZonedDateTime.parse(dateString, RFC_1123_DATE_TIME));
+        try {
+            return GregorianCalendar.from(ZonedDateTime.parse(dateString, RFC_1123_DATE_TIME));
+        }
+        catch (DateTimeParseException ex) {
+            throw new IllegalArgumentException("Invalid date value: " + dateString, ex);
+        }
     }
 
 }
diff --git a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
index 36ba6a8..3f74230 100644
--- a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
+++ b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
@@ -269,6 +269,13 @@ public class MockSlingHttpServletRequestTest {
         assertFalse(header2Values.hasMoreElements());
     }
 
+    @Test(expected = IllegalArgumentException.class)
+    public void testInvalidDateHeader() {
+        request.addHeader("header1", "thisIsNotADate");
+        // make sure IllegalArgumentException is thrown as defined by the HttpServletRequest API
+        request.getDateHeader("header1");
+    }
+
     @Test
     public void testCookies() {
         assertNull(request.getCookies());