diff --git a/java/rocksjni/portal.h b/java/rocksjni/portal.h index ad77055b9..811048027 100644 --- a/java/rocksjni/portal.h +++ b/java/rocksjni/portal.h @@ -290,8 +290,14 @@ class StatusJni : public RocksDBNativeClass { return 0x2; case rocksdb::Status::SubCode::kLockLimit: return 0x3; - case rocksdb::Status::SubCode::kMaxSubCode: - return 0x7E; + case rocksdb::Status::SubCode::kNoSpace: + return 0x4; + case rocksdb::Status::SubCode::kDeadlock: + return 0x5; + case rocksdb::Status::SubCode::kStaleFile: + return 0x6; + case rocksdb::Status::SubCode::kMemoryLimit: + return 0x7; default: return 0x7F; // undefined } diff --git a/java/src/main/java/org/rocksdb/Status.java b/java/src/main/java/org/rocksdb/Status.java index d34b72c69..df575289f 100644 --- a/java/src/main/java/org/rocksdb/Status.java +++ b/java/src/main/java/org/rocksdb/Status.java @@ -54,6 +54,7 @@ public class Status { return builder.toString(); } + // should stay in sync with /include/rocksdb/status.h:Code and /java/rocksjni/portal.h:toJavaStatusCode public enum Code { Ok( (byte)0x0), NotFound( (byte)0x1), @@ -68,7 +69,8 @@ public class Status { Aborted( (byte)0xA), Busy( (byte)0xB), Expired( (byte)0xC), - TryAgain( (byte)0xD); + TryAgain( (byte)0xD), + Undefined( (byte)0x7F); private final byte value; @@ -83,16 +85,21 @@ public class Status { } } throw new IllegalArgumentException( - "Illegal value provided for Code."); + "Illegal value provided for Code (" + value + ")."); } } + // should stay in sync with /include/rocksdb/status.h:SubCode and /java/rocksjni/portal.h:toJavaStatusSubCode public enum SubCode { None( (byte)0x0), MutexTimeout( (byte)0x1), LockTimeout( (byte)0x2), LockLimit( (byte)0x3), - MaxSubCode( (byte)0x7E); + NoSpace( (byte)0x4), + Deadlock( (byte)0x5), + StaleFile( (byte)0x6), + MemoryLimit( (byte)0x7), + Undefined( (byte)0x7F); private final byte value; @@ -107,7 +114,7 @@ public class Status { } } throw new IllegalArgumentException( - "Illegal value provided for SubCode."); + "Illegal value provided for SubCode (" + value + ")."); } } }