SimpleDateFormat is not thread safe so create new instance
Fixes [WINK-329]
Thanks to Mirko Friedenhagen for reporting the issue.
git-svn-id: https://svn.apache.org/repos/asf/incubator/wink/trunk@1091479 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/wink-webdav/src/main/java/org/apache/wink/webdav/model/WebDAVModelHelper.java b/wink-webdav/src/main/java/org/apache/wink/webdav/model/WebDAVModelHelper.java
index e2bcb0b..7205a6b 100644
--- a/wink-webdav/src/main/java/org/apache/wink/webdav/model/WebDAVModelHelper.java
+++ b/wink-webdav/src/main/java/org/apache/wink/webdav/model/WebDAVModelHelper.java
@@ -47,15 +47,12 @@
private static final DocumentBuilderFactory documentBuilderFactory;
private static final Document document;
private static final String XML_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; //$NON-NLS-1$
- private static final SimpleDateFormat dateFormat;
static {
try {
context = JAXBContext.newInstance(Propertyupdate.class.getPackage().getName());
documentBuilderFactory = DocumentBuilderFactory.newInstance();
document = documentBuilderFactory.newDocumentBuilder().newDocument();
- dateFormat = new SimpleDateFormat(XML_DATE_FORMAT);
- dateFormat.setLenient(false);
} catch (Exception e) {
throw new RestException(Messages.getMessage("webDAVFailSetupPropertyHelper"), e); //$NON-NLS-1$
}
@@ -103,7 +100,7 @@
if (!(elementClass.equals(object.getClass()))) {
throw new RestException(Messages
.getMessage("webDAVIncompatibleTypeInRequest", elementName, object.getClass() //$NON-NLS-1$
- .getName(), elementClass.getName()));
+ .getName(), elementClass.getName()));
}
return (T)object;
} catch (JAXBException e) {
@@ -199,10 +196,14 @@
}
public static String convertDateToXMLDate(Date date) {
+ SimpleDateFormat dateFormat = new SimpleDateFormat(XML_DATE_FORMAT);
+ dateFormat.setLenient(false);
return dateFormat.format(date);
}
public static Date convertXMLDateToDate(String date) throws ParseException {
+ SimpleDateFormat dateFormat = new SimpleDateFormat(XML_DATE_FORMAT);
+ dateFormat.setLenient(false);
return dateFormat.parse(date);
}