You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@xml.apache.org by du...@apache.org on 2001/09/24 22:36:04 UTC
cvs commit: xml-soap/java/src/org/apache/soap/encoding/soapenc CalendarSerializer.java DateSerializer.java
duftler 01/09/24 13:36:04
Modified: java/src/org/apache/soap/encoding/soapenc
CalendarSerializer.java DateSerializer.java
Log:
Synchronized calls to DateFormat's methods, since DateFormat appears to
not be thread-safe.
Richard Hansen (richard.hansen@westgroup.com) reported this:
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3252
Submitted by: Richard Boehme (boehme@acm.jhu.edu) &
Matthew J. Duftler (duftler@us.ibm.com)
Revision Changes Path
1.2 +11 -2 xml-soap/java/src/org/apache/soap/encoding/soapenc/CalendarSerializer.java
Index: CalendarSerializer.java
===================================================================
RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/encoding/soapenc/CalendarSerializer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CalendarSerializer.java 2001/02/02 14:01:39 1.1
+++ CalendarSerializer.java 2001/09/24 20:36:04 1.2
@@ -112,7 +112,13 @@
nsStack,xjmr);
Date calDate = ((GregorianCalendar)src).getTime();
- String fdate=sdf.format(calDate);
+ String fdate = null;
+
+ synchronized(sdf)
+ {
+ fdate=sdf.format(calDate);
+ }
+
sink.write(fdate);
sink.write("</" + context + '>');
}
@@ -139,7 +145,10 @@
{
try
{
- date=sdf.parse(value);
+ synchronized(sdf)
+ {
+ date=sdf.parse(value);
+ }
calDate.setTime(date);
}
catch (ParseException pe)
1.4 +24 -6 xml-soap/java/src/org/apache/soap/encoding/soapenc/DateSerializer.java
Index: DateSerializer.java
===================================================================
RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/encoding/soapenc/DateSerializer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DateSerializer.java 2001/07/08 15:19:26 1.3
+++ DateSerializer.java 2001/09/24 20:36:04 1.4
@@ -108,7 +108,13 @@
sink,
nsStack,xjmr);
- String fdate=sdf.format((Date)src);
+ String fdate=null;
+
+ synchronized(sdf)
+ {
+ fdate=sdf.format((Date)src);
+ }
+
sink.write(fdate);
sink.write("</" + context + '>');
}
@@ -134,7 +140,10 @@
{
try
{
- date=sdf.parse(value);
+ synchronized(sdf)
+ {
+ date=sdf.parse(value);
+ }
}
catch (ParseException pe)
{
@@ -152,9 +161,15 @@
throw new ParseException("",0);
// convert what we have validated so far
- try {
- date=sdf.parse(value.substring(0,19)+".000Z");
- } catch (Exception e) {
+ try
+ {
+ synchronized(sdf)
+ {
+ date=sdf.parse(value.substring(0,19)+".000Z");
+ }
+ }
+ catch (Exception e)
+ {
throw new ParseException("",0);
}
@@ -209,9 +224,12 @@
}
catch (ParseException pe2)
{
- throw new IllegalArgumentException("String represents no valid " +
+ synchronized(sdf)
+ {
+ throw new IllegalArgumentException("String represents no valid " +
"Date for this Deserializer; " +
"try " + sdf.toPattern() + ".");
+ }
}
}
}