From c148fb50d0dbc6a0593cb9af81e361b5b41761e9 Mon Sep 17 00:00:00 2001 From: Sean Busbey <busbey@cloudera.com> Date: Thu, 18 Jun 2015 02:42:34 -0500 Subject: [PATCH] [infinispan] clean up refactoring of infinispan binding. * use double-check idiom for remote cache manager. * update version to 7.2.2.Final --- .../yahoo/ycsb/db/RemoteCacheManagerHolder.java | 14 +++++++++----- pom.xml | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) 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 899d7d53..ffdc9371 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 08d93cbb..81d8bff5 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> -- GitLab