You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/03/22 11:40:57 UTC

svn commit: r1788096 - in /qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src: main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/ test/java/org/apache/qpid/server/protocol/v1_0/store/bdb/

Author: lquack
Date: Wed Mar 22 11:40:57 2017
New Revision: 1788096

URL: http://svn.apache.org/viewvc?rev=1788096&view=rev
Log:
QPID-7663: [Java Broker] fix failing tests

Modified:
    qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStore.java
    qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreFactory.java
    qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/test/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreTest.java

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStore.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStore.java?rev=1788096&r1=1788095&r2=1788096&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStore.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStore.java Wed Mar 22 11:40:57 2017
@@ -48,6 +48,7 @@ import org.apache.qpid.server.protocol.v
 import org.apache.qpid.server.protocol.v1_0.store.LinkStoreUpdater;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.TerminusDurability;
 import org.apache.qpid.server.store.StoreException;
+import org.apache.qpid.server.store.berkeleydb.BDBEnvironmentContainer;
 import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade;
 
 public class BDBLinkStore implements LinkStore
@@ -56,13 +57,13 @@ public class BDBLinkStore implements Lin
     private static final String LINKS_DB_NAME = "AMQP_1_0_LINKS";
     private static final String LINKS_VERSION_DB_NAME = "AMQP_1_0_LINKS_VERSION";
 
-    private volatile StoreState _storeState = StoreState.CLOSED;
     private final ReentrantReadWriteLock _useOrCloseRWLock = new ReentrantReadWriteLock(true);
-    private final EnvironmentFacade _environmentFacade;
+    private final BDBEnvironmentContainer<?> _environmentContainer;
+    private volatile StoreState _storeState = StoreState.CLOSED;
 
-    BDBLinkStore(final EnvironmentFacade facade)
+    BDBLinkStore(final BDBEnvironmentContainer<?> environmentContainer)
     {
-        _environmentFacade = facade;
+        _environmentContainer = environmentContainer;
     }
 
     @Override
@@ -77,7 +78,7 @@ public class BDBLinkStore implements Lin
         }
         catch (RuntimeException e)
         {
-            throw _environmentFacade.handleDatabaseException("Failed recovery of links", e);
+            throw getEnvironmentFacade().handleDatabaseException("Failed recovery of links", e);
         }
         finally
         {
@@ -96,12 +97,12 @@ public class BDBLinkStore implements Lin
                 throw new StoreException("Store is not opened");
             }
 
-            Database linksDatabase = _environmentFacade.openDatabase(LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
+            Database linksDatabase = getEnvironmentFacade().openDatabase(LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
             save(linksDatabase, null, link);
         }
         catch (RuntimeException e)
         {
-            throw _environmentFacade.handleDatabaseException(String.format("Failed saving of link '%s'", new LinkKey(link)), e);
+            throw getEnvironmentFacade().handleDatabaseException(String.format("Failed saving of link '%s'", new LinkKey(link)), e);
         }
         finally
         {
@@ -121,7 +122,7 @@ public class BDBLinkStore implements Lin
                 throw new StoreException("Store is not opened");
             }
 
-            Database linksDatabase = _environmentFacade.openDatabase(LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
+            Database linksDatabase = getEnvironmentFacade().openDatabase(LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
 
             final DatabaseEntry databaseEntry = new DatabaseEntry();
             LinkKeyEntryBinding.getInstance().objectToEntry(linkKey, databaseEntry);
@@ -133,7 +134,7 @@ public class BDBLinkStore implements Lin
         }
         catch (RuntimeException e)
         {
-            throw _environmentFacade.handleDatabaseException(String.format("Failed deletion of link '%s'", linkKey), e);
+            throw getEnvironmentFacade().handleDatabaseException(String.format("Failed deletion of link '%s'", linkKey), e);
         }
         finally
         {
@@ -163,12 +164,12 @@ public class BDBLinkStore implements Lin
         try
         {
             close();
-            _environmentFacade.deleteDatabase(LINKS_DB_NAME);
-            _environmentFacade.deleteDatabase(LINKS_VERSION_DB_NAME);
+            getEnvironmentFacade().deleteDatabase(LINKS_DB_NAME);
+            getEnvironmentFacade().deleteDatabase(LINKS_VERSION_DB_NAME);
         }
         catch (RuntimeException e)
         {
-            _environmentFacade.handleDatabaseException("Failed deletion of database", e);
+            getEnvironmentFacade().handleDatabaseException("Failed deletion of database", e);
             LOGGER.info("Failed to delete links database", e);
         }
         finally
@@ -183,9 +184,15 @@ public class BDBLinkStore implements Lin
         return TerminusDurability.CONFIGURATION;
     }
 
+    private EnvironmentFacade getEnvironmentFacade()
+    {
+        return _environmentContainer.getEnvironmentFacade();
+    }
+
+
     private Collection<LinkDefinition> getLinkDefinitions(final LinkStoreUpdater updater)
     {
-        Database linksDatabase = _environmentFacade.openDatabase(LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
+        Database linksDatabase = getEnvironmentFacade().openDatabase(LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
         Collection<LinkDefinition> links = new HashSet<>();
 
         ModelVersion currentVersion =
@@ -214,10 +221,10 @@ public class BDBLinkStore implements Lin
         if (storedVersion.lessThan(currentVersion))
         {
             links = updater.update(storedVersion.toString(), links);
-            final Transaction txn = _environmentFacade.beginTransaction(null);
+            final Transaction txn = getEnvironmentFacade().beginTransaction(null);
             try
             {
-                linksDatabase = _environmentFacade.clearDatabase(txn, LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
+                linksDatabase = getEnvironmentFacade().clearDatabase(txn, LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
                 for (LinkDefinition link : links)
                 {
                     save(linksDatabase, txn, link);
@@ -276,7 +283,7 @@ public class BDBLinkStore implements Lin
         }
         catch (RuntimeException e)
         {
-            throw _environmentFacade.handleDatabaseException("Cannot visit link version", e);
+            throw getEnvironmentFacade().handleDatabaseException("Cannot visit link version", e);
         }
     }
 
@@ -286,11 +293,11 @@ public class BDBLinkStore implements Lin
         try
         {
             DatabaseConfig config = new DatabaseConfig().setTransactional(true).setAllowCreate(false);
-            linksVersionDb = _environmentFacade.openDatabase(LINKS_VERSION_DB_NAME, config);
+            linksVersionDb = getEnvironmentFacade().openDatabase(LINKS_VERSION_DB_NAME, config);
         }
         catch (DatabaseNotFoundException e)
         {
-            linksVersionDb = _environmentFacade.openDatabase(LINKS_VERSION_DB_NAME, DEFAULT_DATABASE_CONFIG);
+            linksVersionDb = getEnvironmentFacade().openDatabase(LINKS_VERSION_DB_NAME, DEFAULT_DATABASE_CONFIG);
             DatabaseEntry key = new DatabaseEntry();
             DatabaseEntry value = new DatabaseEntry();
             StringBinding.stringToEntry(BrokerModel.MODEL_VERSION, key);

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreFactory.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreFactory.java?rev=1788096&r1=1788095&r2=1788096&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreFactory.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreFactory.java Wed Mar 22 11:40:57 2017
@@ -41,26 +41,19 @@ public class BDBLinkStoreFactory impleme
     @Override
     public LinkStore create(final NamedAddressSpace addressSpace)
     {
-        VirtualHost<?> virtualHost = (VirtualHost<?>)addressSpace;
-        EnvironmentFacade facade;
+        VirtualHost<?> virtualHost = (VirtualHost<?>) addressSpace;
         if (virtualHost instanceof BDBEnvironmentContainer)
         {
-            facade = ((BDBEnvironmentContainer)virtualHost).getEnvironmentFacade();
+            return new BDBLinkStore((BDBEnvironmentContainer<?>) virtualHost);
         }
         else if (virtualHost.getParent()  instanceof BDBEnvironmentContainer)
         {
-            facade = ((BDBEnvironmentContainer)virtualHost.getParent()).getEnvironmentFacade();
+            return new BDBLinkStore((BDBEnvironmentContainer<?>) virtualHost.getParent());
         }
         else
         {
             throw new StoreException("Cannot create BDB Link Store for " + addressSpace);
         }
-
-        if (facade == null)
-        {
-            throw new StoreException("Cannot find BDB environment for " + addressSpace);
-        }
-        return new BDBLinkStore(facade);
     }
 
     @Override

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/test/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/test/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreTest.java?rev=1788096&r1=1788095&r2=1788096&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/test/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreTest.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-bdb-store/src/test/java/org/apache/qpid/server/protocol/v1_0/store/bdb/BDBLinkStoreTest.java Wed Mar 22 11:40:57 2017
@@ -32,6 +32,7 @@ import com.sleepycat.je.CacheMode;
 
 import org.apache.qpid.server.protocol.v1_0.store.LinkStore;
 import org.apache.qpid.server.protocol.v1_0.store.LinkStoreTestCase;
+import org.apache.qpid.server.store.berkeleydb.BDBEnvironmentContainer;
 import org.apache.qpid.server.store.berkeleydb.StandardEnvironmentConfiguration;
 import org.apache.qpid.server.store.berkeleydb.StandardEnvironmentFacade;
 import org.apache.qpid.server.util.FileUtils;
@@ -52,7 +53,9 @@ public class BDBLinkStoreTest extends Li
         when(configuration.getParameters()).thenReturn(Collections.emptyMap());
        _facade = new StandardEnvironmentFacade(configuration);
 
-        return new BDBLinkStore(_facade);
+        BDBEnvironmentContainer environmentContainer = mock(BDBEnvironmentContainer.class);
+        when(environmentContainer.getEnvironmentFacade()).thenReturn(_facade);
+        return new BDBLinkStore(environmentContainer);
     }
 
     @Override



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org