[DS-707] Fix threaded handling of DateFormatSymbols

git-svn-id: http://scm.dspace.org/svn/repo/dspace/trunk@5480 9c30dcfa-912a-0410-8fc2-9e0234be79fd
This commit is contained in:
Graham Triggs
2010-10-20 13:19:11 +00:00
parent 6a5b82371f
commit b19e893557

View File

@@ -42,11 +42,7 @@ import java.text.DateFormatSymbols;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
import java.util.*;
import org.apache.log4j.Logger;
@@ -111,17 +107,7 @@ public class DCDate
// just year, "2009"
private final SimpleDateFormat yearIso = new SimpleDateFormat("yyyy");
/**
* DateFormatSymbols for locale months name
*/
private static DateFormatSymbols dfs = null;
/**
* note the session locale
*/
private static Locale langMonth = null;
private static Map<Locale, DateFormatSymbols> dfsLocaleMap = new HashMap<Locale, DateFormatSymbols>();
/**
* Construct a date object from a Java <code>Date</code> object.
@@ -640,11 +626,13 @@ public class DCDate
{
if ((m > 0) && (m < 13))
{
if (dfs == null || !langMonth.equals(locale))
DateFormatSymbols dfs = dfsLocaleMap.get(locale);
if (dfs == null)
{
dfs = new DateFormatSymbols(locale);
langMonth = locale;
dfsLocaleMap.put(locale, dfs);
}
return dfs.getMonths()[m-1];
}
else