Index: src/main/java/org/ow2/petals/system/repository/RepositoryServiceImpl.java
===================================================================
--- src/main/java/org/ow2/petals/system/repository/RepositoryServiceImpl.java	(revision 16370)
+++ src/main/java/org/ow2/petals/system/repository/RepositoryServiceImpl.java	(working copy)
@@ -28,8 +28,6 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
-import javax.annotation.processing.FilerException;
-
 import org.apache.commons.io.FileUtils;
 import org.objectweb.fractal.fraclet.annotation.annotations.FractalComponent;
 import org.objectweb.fractal.fraclet.annotation.annotations.Interface;
@@ -39,7 +37,6 @@
 import org.objectweb.fractal.fraclet.annotation.annotations.Requires;
 import org.objectweb.fractal.fraclet.annotation.annotations.type.LifeCycleType;
 import org.objectweb.util.monolog.api.Logger;
-
 import org.ow2.petals.kernel.api.server.PetalsException;
 import org.ow2.petals.kernel.configuration.ConfigurationService;
 import org.ow2.petals.kernel.configuration.ContainerConfiguration;
@@ -76,7 +73,18 @@
     /**
      * The date pattern
      */
-    private static final String DATE_PATTERN = "MM-dd-yyyy-hhmmssSSS";
+    private final static String FOLDER_DATE_PATTERN = "MM-dd-yyyy-hhmmssSSS";
+
+    /**
+     * DateFormat used for repository folders
+     */
+    private final static SimpleDateFormat FOLDER_DATE_FORMAT = new SimpleDateFormat(
+            RepositoryServiceImpl.FOLDER_DATE_PATTERN);
+    
+    /**
+     * Lock to use with the DateFormat used for repository folders
+     */
+    private final static Object folderDatePatternLock = new Object();
 
     /**
      * Path to component install directory
@@ -131,11 +139,6 @@
     private ContainerConfiguration containerConfiguration;
 
     /**
-     * DateFormat used for repository folders
-     */
-    private SimpleDateFormat folderDateFormat;
-
-    /**
      * The lost+found directory path.
      */
     private File lostFoundDirectory;
@@ -156,6 +159,16 @@
     private File sharedLibrariesDirectory;
 
     /*
+     * SimpleDateFormat methods must be synchronized.
+     */
+    private static String getCurrentDateAsString() {
+        synchronized (RepositoryServiceImpl.folderDatePatternLock) {
+            return RepositoryServiceImpl.FOLDER_DATE_FORMAT.format(new Date(System
+                    .currentTimeMillis()));
+        }
+    }
+
+    /*
      * (non-Javadoc)
      * 
      * @see
@@ -403,7 +416,6 @@
         this.log = new LoggingUtil(this.logger);
         this.log.start();
 
-        this.folderDateFormat = new SimpleDateFormat(DATE_PATTERN);
         this.containerConfiguration = this.configurationService.getContainerConfiguration();
 
         this.repositoryDirectory = new File(this.containerConfiguration
@@ -490,7 +502,7 @@
 
     private File createComponentDirectory(String componentId) {
         String name = componentId + "-"
-                + this.folderDateFormat.format(new Date(System.currentTimeMillis()));
+                + RepositoryServiceImpl.getCurrentDateAsString();
         File componentDirectory = new File(this.componentsDirectory, name);
         componentDirectory.mkdir();
 
@@ -536,7 +548,7 @@
      */
     private File createServiceAssemblyDirectory(String serviceAssemblyId) {
         String name = serviceAssemblyId + "-"
-                + this.folderDateFormat.format(new Date(System.currentTimeMillis()));
+                + RepositoryServiceImpl.getCurrentDateAsString();
         File serviceAssemblyDirectory = new File(this.serviceAssembliesDirectory, name);
         serviceAssemblyDirectory.mkdir();
 
@@ -551,7 +563,7 @@
      */
     private File createSharedLibraryDirectory(String sharedLibraryId) {
         String name = sharedLibraryId + "-"
-                + this.folderDateFormat.format(new Date(System.currentTimeMillis()));
+                + RepositoryServiceImpl.getCurrentDateAsString();
         File sharedLibraryDirectory = new File(this.sharedLibrariesDirectory, name);
         sharedLibraryDirectory.mkdir();
 
