Author: reschke
Date: Wed Sep 30 14:09:52 2015
New Revision: 1706037

URL: http://svn.apache.org/viewvc?rev=1706037&view=rev
Log:
OAK-3449: improve diagnostics and adjust test cases that make incorrect 
assumptions about cluster id assignments 

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java?rev=1706037&r1=1706036&r2=1706037&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
 Wed Sep 30 14:09:52 2015
@@ -418,6 +418,7 @@ public class ClusterNodeInfo {
         boolean newEntry = false;
 
         ClusterNodeInfoDocument alreadyExistingConfigured = null;
+        String reuseFailureReason = "";
         List<ClusterNodeInfoDocument> list = 
ClusterNodeInfoDocument.all(store);
 
         for (ClusterNodeInfoDocument doc : list) {
@@ -448,6 +449,7 @@ public class ClusterNodeInfo {
 
             if (leaseEnd != null && leaseEnd > now) {
                 // TODO wait for lease end, see OAK-3449
+                reuseFailureReason = "leaseEnd " + leaseEnd + " > " + now + " 
- " + (leaseEnd - now) + "ms in the future";
                 continue;
             }
 
@@ -464,6 +466,7 @@ public class ClusterNodeInfo {
 
             if (!mId.equals(machineId) || !iId.equals(instanceId)) {
                 // a different machine or instance
+                reuseFailureReason = "machineId/instanceId do not match: " + 
mId + "/" + iId + " != " + machineId + "/" + instanceId;
                 continue;
             }
 
@@ -484,7 +487,7 @@ public class ClusterNodeInfo {
             if (configuredClusterId != 0) {
                 if (alreadyExistingConfigured != null) {
                     throw new DocumentStoreException(
-                            "Configured cluster node id " + 
configuredClusterId + " already in use: " + alreadyExistingConfigured);
+                            "Configured cluster node id " + 
configuredClusterId + " already in use: " + reuseFailureReason);
                 }
                 clusterNodeId = configuredClusterId;
             } else {

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java?rev=1706037&r1=1706036&r2=1706037&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java
 Wed Sep 30 14:09:52 2015
@@ -53,8 +53,10 @@ public class CacheInvalidationIT extends
 
     @Before
     public void prepareStores() throws Exception {
-        c1 = createNS(1);
-        c2 = createNS(2);
+        // TODO start with clusterNodeId 2, because 1 has already been
+        // implicitly allocated in the base class
+        c1 = createNS(2);
+        c2 = createNS(3);
         initialCacheSizeC1 = getCurrentCacheSize(c1);
         initialCacheSizeC2 = getCurrentCacheSize(c2);
     }
@@ -247,8 +249,12 @@ public class CacheInvalidationIT extends
 
     @After
     public void closeStores() {
-        c1.dispose();
-        c2.dispose();
+        if (c2 != null) {
+            c2.dispose();
+        }
+        if (c1 != null) {
+            c1.dispose();
+        }
     }
 
     private static void runBgOps(DocumentNodeStore... stores) {


Reply via email to