From 6ffa1eb3aaa19fb93ff56c9e6487610e3a6f4d97 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 2 Mar 2011 13:38:26 +0000
Subject: [PATCH] LMS-2077 thread save lazy loading share IDs.

SVN: 20201
---
 .../openbis/dss/generic/server/ShareIdManager.java   | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ShareIdManager.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ShareIdManager.java
index b291047b38c..3c73b624916 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ShareIdManager.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ShareIdManager.java
@@ -246,12 +246,11 @@ public class ShareIdManager implements IShareIdManager
     
     private Map<String, GuardedShareID> getDataSetCodeToShareIdMap()
     {
-        if (dataSetCodeToShareIdMap == null)
+        synchronized (dataSetCodeToShareIdMapMonitor)
         {
-            synchronized (dataSetCodeToShareIdMapMonitor)
+            if (dataSetCodeToShareIdMap == null)
             {
-                dataSetCodeToShareIdMap  =
-                    new HashMap<String, GuardedShareID>();
+                dataSetCodeToShareIdMap = new HashMap<String, GuardedShareID>();
                 List<SimpleDataSetInformationDTO> dataSets = service.listDataSets();
                 for (SimpleDataSetInformationDTO dataSet : dataSets)
                 {
@@ -259,10 +258,11 @@ public class ShareIdManager implements IShareIdManager
                     String shareId = dataSet.getDataSetShareId();
                     addShareId(dataSetCodeToShareIdMap, dataSetCode, shareId);
                 }
-                operationLog.info("Share id manager initialized with " + dataSets.size() + " data sets.");
+                operationLog.info("Share id manager initialized with " + dataSets.size()
+                        + " data sets.");
             }
+            return dataSetCodeToShareIdMap;
         }
-        return dataSetCodeToShareIdMap;
     }
     
 }
-- 
GitLab