diff --git a/bds/source/java/ch/systemsx/cisd/bds/Constants.java b/bds/source/java/ch/systemsx/cisd/bds/Constants.java index c633937130f90e1707cd1557b99ba6e705f63d1c..ff63810174f1b30a5ed2101e78584c12042c124c 100644 --- a/bds/source/java/ch/systemsx/cisd/bds/Constants.java +++ b/bds/source/java/ch/systemsx/cisd/bds/Constants.java @@ -18,6 +18,7 @@ package ch.systemsx.cisd.bds; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.concurrent.atomic.AtomicReference; /** * Some constants used inside the <i>BDS</i> library @@ -34,7 +35,8 @@ public final class Constants public final static char PATH_SEPARATOR = '/'; /** The uniformly date format used. */ - public static final DateFormat DATE_FORMAT = new SimpleDateFormat(DATE_FORMAT_PATTERN); + public static final AtomicReference<DateFormat> DATE_FORMAT = + new AtomicReference<DateFormat>(new SimpleDateFormat(DATE_FORMAT_PATTERN)); private Constants() { diff --git a/bds/source/java/ch/systemsx/cisd/bds/DataSet.java b/bds/source/java/ch/systemsx/cisd/bds/DataSet.java index 3f1a09ec07039a6a56e9d92cc1d2fadd6519e932..7513902f7cf0edc7b8d188e36980e6b11d8ee835 100644 --- a/bds/source/java/ch/systemsx/cisd/bds/DataSet.java +++ b/bds/source/java/ch/systemsx/cisd/bds/DataSet.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.Date; import java.util.List; - import ch.systemsx.cisd.bds.exception.DataStructureException; import ch.systemsx.cisd.bds.storage.IDirectory; import ch.systemsx.cisd.common.collections.CollectionIO; @@ -203,7 +202,7 @@ public final class DataSet implements IStorable folder.addKeyValuePair(CODE, code); folder.addKeyValuePair(PRODUCTION_TIMESTAMP, productionTimestamp == null ? StringUtils.EMPTY_STRING : Constants.DATE_FORMAT - .format(productionTimestamp)); + .get().format(productionTimestamp)); folder.addKeyValuePair(PRODUCER_CODE, StringUtils.emptyIfNull(producerCode)); folder.addKeyValuePair(IS_MEASURED, Boolean.toString(isMeasured).toUpperCase()); folder.addKeyValuePair(OBSERVABLE_TYPE, observableTypeCode); diff --git a/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistrationTimestamp.java b/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistrationTimestamp.java index f722f1403e94f6dc5073cf6a4daac5109efdd371..6a026eaebb182adffa8a8359df173e28fed61ba2 100644 --- a/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistrationTimestamp.java +++ b/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistrationTimestamp.java @@ -61,7 +61,7 @@ public final class ExperimentRegistrationTimestamp implements IStorable */ public final void saveTo(final IDirectory directory) { - directory.addKeyValuePair(FILE_NAME, Constants.DATE_FORMAT.format(date)); + directory.addKeyValuePair(FILE_NAME, Constants.DATE_FORMAT.get().format(date)); } // @@ -91,7 +91,7 @@ public final class ExperimentRegistrationTimestamp implements IStorable @Override public final String toString() { - return Constants.DATE_FORMAT.format(date); + return Constants.DATE_FORMAT.get().format(date); } } diff --git a/bds/source/java/ch/systemsx/cisd/bds/Utilities.java b/bds/source/java/ch/systemsx/cisd/bds/Utilities.java index eead0e4fdfc990000103da9fa04f04aa24613603..7fa269292044b30b8df5cb474c17033e8b6db286 100644 --- a/bds/source/java/ch/systemsx/cisd/bds/Utilities.java +++ b/bds/source/java/ch/systemsx/cisd/bds/Utilities.java @@ -189,7 +189,7 @@ public class Utilities } try { - return Constants.DATE_FORMAT.parse(value); + return Constants.DATE_FORMAT.get().parse(value); } catch (final ParseException ex) { throw new DataStructureException("Value of '" + name + "' version file is not a date: "