You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2012/05/28 17:32:28 UTC

svn commit: r1343287 - /ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java

Author: jacopoc
Date: Mon May 28 15:32:28 2012
New Revision: 1343287

URL: http://svn.apache.org/viewvc?rev=1343287&view=rev
Log:
Improved code that manages the cache:
* replaced putIfAbsent + get with putIfAbsentAndGet to avoid the risk of a NPE if the cache entry is removed (or expired) between the two calls


Modified:
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java?rev=1343287&r1=1343286&r2=1343287&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java Mon May 28 15:32:28 2012
@@ -89,10 +89,8 @@ public class ModelFieldTypeReader implem
                 throw new IllegalStateException("Error loading field type file " + fieldTypeResourceHandler.getLocation());
             }
             Map<String, ModelFieldType> fieldTypeMap = createFieldTypeCache(document.getDocumentElement(), fieldTypeResourceHandler.getLocation());
-            reader = new ModelFieldTypeReader(fieldTypeMap);
-            readers.putIfAbsent(tempModelName, reader);
+            reader = readers.putIfAbsentAndGet(tempModelName, new ModelFieldTypeReader(fieldTypeMap));
             utilTimer.timerString("[ModelFieldTypeReader.getModelFieldTypeReader] Read " + fieldTypeMap.size() + " field types");
-            reader = readers.get(tempModelName);
         }
         return reader;
     }