From 23d8fc987600076e320612bc0f7b922554c8b21b Mon Sep 17 00:00:00 2001 From: samskivert Date: Tue, 9 Feb 2010 22:35:56 +0000 Subject: [PATCH] Fun fact: SimpleDateFormat is not thread safe (apparently all DateFormat implementations are noted in the docs as not thread safe). I specifically verified that parse() mutates internal fields. Since ParameterUtil is *designed* to be called by servlets which naturally run on multiple threads, we need to be careful here to avoid getting bogus results. git-svn-id: https://samskivert.googlecode.com/svn/trunk@2730 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- src/java/com/samskivert/servlet/util/ParameterUtil.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/java/com/samskivert/servlet/util/ParameterUtil.java b/src/java/com/samskivert/servlet/util/ParameterUtil.java index 20c28d69..a6cf4a84 100644 --- a/src/java/com/samskivert/servlet/util/ParameterUtil.java +++ b/src/java/com/samskivert/servlet/util/ParameterUtil.java @@ -378,7 +378,9 @@ public class ParameterUtil throws DataValidationException { try { - return _dparser.parse(value); + synchronized (_dparser) { + return _dparser.parse(value); + } } catch (ParseException pe) { throw new DataValidationException(invalidDataMessage); }