Re: [xwiki-devs] [xwiki-notifications] r7312 - xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/objects/classes
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()); } }
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 [email protected] http://lists.xwiki.org/mailman/listinfo/devs
participants (2)
-
Sergiu Dumitriu -
Vincent Massol