diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/com/c2kernel/lookup/NextKeyManager.java | 13 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/persistency/ClusterStorageManager.java | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/com/c2kernel/lookup/NextKeyManager.java b/src/main/java/com/c2kernel/lookup/NextKeyManager.java index fd873fd..a4ead4b 100644 --- a/src/main/java/com/c2kernel/lookup/NextKeyManager.java +++ b/src/main/java/com/c2kernel/lookup/NextKeyManager.java @@ -2,6 +2,9 @@ package com.c2kernel.lookup; import com.c2kernel.common.ObjectCannotBeUpdated;
import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.persistency.ClusterStorageException;
+import com.c2kernel.process.Gateway;
+import com.c2kernel.utils.Logger;
import com.novell.ldap.LDAPEntry;
/**************************************************************************
@@ -35,6 +38,16 @@ public class NextKeyManager { } catch (InvalidEntityPathException ex) {
throw new ObjectCannotBeUpdated("Invalid syskey "+(lastKey.getSysKey()+1)+". Maybe centre is full.");
}
+ //test that storage is empty for that key
+ try {
+ if (Gateway.getStorage().getClusterContents(lastKey.getSysKey(), "").length > 0)
+ throw new ObjectCannotBeUpdated("NextKeyManager: Storage already contains data for syskey "+lastKey.getSysKey()+
+ ". Storage is out of sync with nextkey. Please contact an administrator", "");
+ } catch (ClusterStorageException e) {
+ Logger.error(e);
+ throw new ObjectCannotBeUpdated("Could not check storage for prior data for the next generated systemKey: "+e.getMessage());
+ }
+
//set the last key
writeLastEntityKey(lastKey.getSysKey());
diff --git a/src/main/java/com/c2kernel/persistency/ClusterStorageManager.java b/src/main/java/com/c2kernel/persistency/ClusterStorageManager.java index 402c466..0546bab 100644 --- a/src/main/java/com/c2kernel/persistency/ClusterStorageManager.java +++ b/src/main/java/com/c2kernel/persistency/ClusterStorageManager.java @@ -173,7 +173,7 @@ public class ClusterStorageManager { }
}
} catch (ClusterStorageException e) {
- Logger.error("ClusterStorageManager.getClusterContents() - reader " + thisReader.getName() +
+ Logger.msg(5, "ClusterStorageManager.getClusterContents() - reader " + thisReader.getName() +
" could not retrieve contents of " + sysKey + "/" + path + ": " + e.getMessage());
}
}
|
