diff --git a/infinispan/src/main/java/com/yahoo/ycsb/db/RemoteCacheManagerHolder.java b/infinispan/src/main/java/com/yahoo/ycsb/db/RemoteCacheManagerHolder.java index 899d7d535754c59da6c3af994928708cf0fb5624..ffdc9371b4fda49d16d8d5be947d2857d2d772af 100644 --- a/infinispan/src/main/java/com/yahoo/ycsb/db/RemoteCacheManagerHolder.java +++ b/infinispan/src/main/java/com/yahoo/ycsb/db/RemoteCacheManagerHolder.java @@ -6,16 +6,20 @@ import org.infinispan.client.hotrod.RemoteCacheManager; public class RemoteCacheManagerHolder { - private static RemoteCacheManager cacheManager = null; + private static volatile RemoteCacheManager cacheManager = null; private RemoteCacheManagerHolder() {} public static RemoteCacheManager getInstance(Properties props){ - if(cacheManager == null){ - synchronized (RemoteCacheManager.class) { - cacheManager = new RemoteCacheManager(props); + RemoteCacheManager result = cacheManager; + if(result == null){ + synchronized (RemoteCacheManagerHolder.class) { + result = cacheManager; + if (result == null) { + cacheManager = result = new RemoteCacheManager(props); + } } } - return cacheManager; + return result; } } diff --git a/pom.xml b/pom.xml index 08d93cbbb4df6996c774a8e9faefaa2248f8df90..81d8bff544210361eeca51bdc4600e413fb10552 100644 --- a/pom.xml +++ b/pom.xml @@ -58,7 +58,7 @@ <cassandra.version>1.2.9</cassandra.version> <cassandra.cql.version>1.0.3</cassandra.cql.version> <gemfire.version>8.1.0</gemfire.version> - <infinispan.version>7.2.0.CR1</infinispan.version> + <infinispan.version>7.2.2.Final</infinispan.version> <openjpa.jdbc.version>2.1.1</openjpa.jdbc.version> <!--<mapkeeper.version>1.0</mapkeeper.version>--> <mongodb.version>3.0.2</mongodb.version>