Go for it if you want Sergiu, although I don't think we should spend
lot of time on this. I'm just fixing it the error reporting since it's
causing unwarranted trouble when migrating databases to 1.2.
-Vincent
On Feb 6, 2008, at 12:58 PM, Sergiu Dumitriu wrote:
We could use commons-lang/DateUtils.parse, which
accepts an array of
patterns, and tries them in order.
vmassol (SVN) wrote:
Author: vmassol
Date: 2008-02-06 12:47:28 +0100 (Wed, 06 Feb 2008)
New Revision: 7312
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/
objects/classes/DateClass.java
Log:
Better error reporting. We should never output stack trace for non
fatal errors.
Modified: xwiki-platform/core/trunk/xwiki-core/src/main/java/com/
xpn/xwiki/objects/classes/DateClass.java
===================================================================
--- xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/
xwiki/objects/classes/DateClass.java 2008-02-06 11:16:03 UTC (rev
7311)
+++ xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/
xwiki/objects/classes/DateClass.java 2008-02-06 11:47:28 UTC (rev
7312)
@@ -31,6 +31,8 @@
import com.xpn.xwiki.web.XWikiMessageTool;
import org.apache.ecs.xhtml.input;
import org.apache.ecs.xhtml.link;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.dom4j.Element;
import java.text.ParseException;
@@ -39,9 +41,12 @@
import java.util.Locale;
import java.util.Map;
-public class DateClass extends PropertyClass {
+public class DateClass extends PropertyClass
+{
+ private static final Log LOG =
LogFactory.getLog(DateClass.class);
- public DateClass(PropertyMetaClass wclass) {
+ public DateClass(PropertyMetaClass wclass)
+ {
super("date", "Date", wclass);
setSize(20);
setDateFormat("dd/MM/yyyy HH:mm:ss");
@@ -125,16 +130,23 @@
return property;
}
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss.S");
try {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-
dd HH:mm:ss.S");
property.setValue(sdf.parse(value));
} catch (ParseException e) {
+ SimpleDateFormat sdf2 = new SimpleDateFormat("EEE MMM
d HH:mm:ss z yyyy", Locale.US);
try {
- e.printStackTrace();
- SimpleDateFormat sdf = new SimpleDateFormat("EEE
MMM d HH:mm:ss z yyyy", Locale.US);
- property.setValue(sdf.parse(value));
+ if (LOG.isWarnEnabled()) {
+ LOG.warn("Failed to parse date [" + value + "]
using format ["
+ + sdf.toString() + "]. Trying again with
format ["
+ + sdf2.toString() + "]");
+ }
+ property.setValue(sdf2.parse(value));
} catch (ParseException e2) {
- e2.printStackTrace();
+ if (LOG.isWarnEnabled()) {
+ LOG.warn("Failed to parse date [" + value + "]
using format ["
+ + sdf2.toString() + "]. Defaulting to the
current date.");
+ }
property.setValue(new Date());
}
}
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs