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;
+ }
+ }
}