Author: asanka
Date: Mon Mar 16 07:07:29 2009
New Revision: 754829

URL: http://svn.apache.org/viewvc?rev=754829&view=rev
Log:
Add a date validation to the expiration, to check well formatted but invalid 
dates like Feb-31.

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java?rev=754829&r1=754828&r2=754829&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java
 Mon Mar 16 07:07:29 2009
@@ -194,7 +194,8 @@
                     setExpirationFault(subscription);
                 }
                 Calendar calendarNow = Calendar.getInstance();
-                if (calendarNow.before(calendarExpires)) {
+                if ((isValidDate(expiryElem.getText(), calendarExpires)) &&
+                        (calendarNow.before(calendarExpires))) {
                     subscription.setExpires(calendarExpires);
                 } else {
                     setExpirationFault(subscription);
@@ -304,7 +305,7 @@
                     setExpirationFault(subscription);
                 }
                 Calendar calendarNow = Calendar.getInstance();
-                if (calendarNow.before(calendarExpires)) {
+                if 
((isValidDate(expiryElem.getText(),calendarExpires))&&(calendarNow.before(calendarExpires)))
 {
                     subscription.setExpires(calendarExpires);
                 } else {
                     setExpirationFault(subscription);
@@ -406,4 +407,26 @@
         setErrorReason("The expiration time requested is invalid");
         subscription.setId(null);
     }
+
+    /**
+     * Check is a valid date, this check required due to Java calendar use the 
Julion date to create
+     * dates, so feb-31 take as a valid date and converts to march-03
+     *
+     * @param original
+     * @param converted
+     * @return true || false
+     */
+    private static boolean isValidDate(String original, Calendar converted) {
+        try{
+        String check = ConverterUtil.convertToString(converted);
+        if (original.equals(check)) {
+            return true;
+        } else {
+            return false;
+        }
+        }catch(Exception e){
+            log.error("Converting the date to string, "+e.toString());
+            return false;
+        }
+    }
 }


Reply via email to