Package org.h2.mvstore
Class DataUtils
- java.lang.Object
-
- org.h2.mvstore.DataUtils
-
public final class DataUtils extends java.lang.ObjectUtility methods
-
-
Field Summary
Fields Modifier and Type Field Description static intCOMPRESSED_VAR_INT_MAXThe maximum integer that needs less space when using variable size encoding (only 3 bytes instead of 4).static longCOMPRESSED_VAR_LONG_MAXThe maximum long that needs less space when using variable size encoding (only 7 bytes instead of 8).static intERROR_BLOCK_NOT_FOUNDThe block in the stream store was not found.static intERROR_CHUNK_NOT_FOUNDThe application was trying to read data from a chunk that is no longer available.static intERROR_CLOSEDThe object is already closed.static intERROR_FILE_CORRUPTThe file is corrupt or (for encrypted files) the encryption key is wrong.static intERROR_FILE_LOCKEDThe file is locked.static intERROR_INTERNALAn internal error occurred.static intERROR_READING_FAILEDAn error occurred while reading from the file.static intERROR_SERIALIZATIONAn error occurred when serializing or de-serializing.static intERROR_TOO_MANY_OPEN_TRANSACTIONSThere are too many open transactions.static intERROR_TRANSACTION_CORRUPTThe transaction store is corrupt.static intERROR_TRANSACTION_ILLEGAL_STATEThe transaction store is in an illegal state (for example, not yet initialized).static intERROR_TRANSACTION_LOCKEDAn entry is still locked by another transaction.static intERROR_TRANSACTION_TOO_BIGThe transaction contains too many changes.static intERROR_TRANSACTIONS_DEADLOCKDeadlock discovered and one of transactions involved chosen as victim and rolled back.static intERROR_UNKNOWN_DATA_TYPEThe transaction store can not be initialized because data type is not found in type registry.static intERROR_UNSUPPORTED_FORMATThe file format is not supported.static intERROR_WRITING_FAILEDAn error occurred when trying to write to the file.static intMAX_VAR_INT_LENThe maximum length of a variable size int.static intMAX_VAR_LONG_LENThe maximum length of a variable size long.static java.lang.StringMETA_CHUNKThe prefix for chunks ("chunk.").static java.lang.StringMETA_MAPThe prefix for maps ("map.").static java.lang.StringMETA_NAMEThe prefix for names ("name.").static java.lang.StringMETA_ROOTThe prefix for root positions of maps ("root.").static intPAGE_COMPRESSEDThe bit mask for compressed pages (compression level fast).static intPAGE_COMPRESSED_HIGHThe bit mask for compressed pages (compression level high).static intPAGE_HAS_PAGE_NOThe bit mask for pages with page sequential number.static intPAGE_LARGEThe marker size of a very large page.static intPAGE_TYPE_LEAFThe type for leaf page.static intPAGE_TYPE_NODEThe type for node page.
-
Constructor Summary
Constructors Constructor Description DataUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidappendMap(java.lang.StringBuilder buff, java.lang.String key, int value)Append a key-value pair to the string builder.static voidappendMap(java.lang.StringBuilder buff, java.lang.String key, long value)Append a key-value pair to the string builder.static voidappendMap(java.lang.StringBuilder buff, java.lang.String key, java.lang.String value)Append a key-value pair to the string builder.static java.lang.StringBuilderappendMap(java.lang.StringBuilder buff, java.util.HashMap<java.lang.String,?> map)Append a map to the string builder, sorted by key.private static java.lang.StringBuilderappendMapKey(java.lang.StringBuilder buff, java.lang.String key)static voidcheckArgument(boolean test, java.lang.String message, java.lang.Object... arguments)Throw an IllegalArgumentException if the argument is invalid.static java.io.IOExceptionconvertToIOException(java.lang.Throwable e)Convert an exception to an IO exception.static voidcopyExcept(java.lang.Object src, java.lang.Object dst, int oldSize, int removeIndex)Copy the elements of an array, and remove one element.static voidcopyWithGap(java.lang.Object src, java.lang.Object dst, int oldSize, int gapIndex)Copy the elements of an array, with a gap.static intdecodePageLength(int code)Get the maximum length for the given code.static intencodeLength(int len)Convert the length to a length code 0..31.static java.lang.StringformatMessage(int errorCode, java.lang.String message, java.lang.Object... arguments)Format an error message.static shortgetCheckValue(int x)Calculate a check value for the given integer.(package private) static intgetConfigParam(java.util.Map<java.lang.String,?> config, java.lang.String key, int defaultValue)Get the configuration parameter value, or default.static intgetFletcher32(byte[] bytes, int offset, int length)Calculate the Fletcher32 checksum.static java.lang.StringgetFromMap(java.lang.String s, java.lang.String key)Parse a specified pair from key-value pair list.static java.lang.StringgetMapName(java.lang.String s)Parse a name from key-value pair list.static intgetPageChunkId(long pos)Get the chunk id from the position.static intgetPageMapId(long tocElement)Get the map id from the chunk's table of content element.static intgetPageMaxLength(long pos)Get the maximum length for the given page position.static intgetPageOffset(long tocElement)Get the offset from the position.static longgetPagePos(int chunkId, int offset, int length, int type)Get the position of this page.static longgetPagePos(int chunkId, long tocElement)Convert tocElement into pagePos by replacing mapId with chunkId.static intgetPageType(long pos)Get the page type from the position.static longgetTocElement(int mapId, int offset, int length, int type)Create table of content element.static intgetVarIntLen(int x)Get the length of the variable size int.static intgetVarLongLen(long x)Get the length of the variable size long.private static <T extends java.lang.Exception>
TinitCause(T e, java.lang.Object... arguments)static booleanisLeafPosition(long pos)Determines whether specified file position corresponds to a leaf page(package private) static booleanisPageRemoved(long pos)Find out if page was removed.static booleanisPageSaved(long pos)Find out if page was saved.static java.lang.IllegalArgumentExceptionnewIllegalArgumentException(java.lang.String message, java.lang.Object... arguments)Create a new IllegalArgumentException.static MVStoreExceptionnewMVStoreException(int errorCode, java.lang.String message, java.lang.Object... arguments)Create a new MVStoreException.static java.lang.UnsupportedOperationExceptionnewUnsupportedOperationException(java.lang.String message)Create a new UnsupportedOperationException.(package private) static java.util.HashMap<java.lang.String,java.lang.String>parseChecksummedMap(byte[] bytes)Parse a key-value pair list and checks its checksum.(package private) static byte[]parseHexBytes(java.util.Map<java.lang.String,?> map, java.lang.String key)Parse the hex-encoded bytes of an entry in the map.static intparseHexInt(java.lang.String x)Parse an unsigned, hex long.static longparseHexLong(java.lang.String x)Parse an unsigned, hex long.static java.util.HashMap<java.lang.String,java.lang.String>parseMap(java.lang.String s)Parse a key-value pair list.private static intparseMapValue(java.lang.StringBuilder buff, java.lang.String s, int i, int size)static voidreadFully(java.nio.channels.FileChannel file, long pos, java.nio.ByteBuffer dst)Read from a file channel until the buffer is full.(package private) static intreadHexInt(java.util.Map<java.lang.String,?> map, java.lang.String key, int defaultValue)Read a hex int value from a map.static longreadHexLong(java.util.Map<java.lang.String,?> map, java.lang.String key, long defaultValue)Read a hex long value from a map.static java.lang.StringreadString(java.nio.ByteBuffer buff)Read a string.static java.lang.StringreadString(java.nio.ByteBuffer buff, int len)Read a string.static intreadVarInt(java.nio.ByteBuffer buff)Read a variable size int.private static intreadVarIntRest(java.nio.ByteBuffer buff, int b)static longreadVarLong(java.nio.ByteBuffer buff)Read a variable size long.static voidwriteFully(java.nio.channels.FileChannel file, long pos, java.nio.ByteBuffer src)Write to a file channel.static voidwriteStringData(java.nio.ByteBuffer buff, java.lang.String s, int len)Write characters from a string (without the length).static voidwriteVarInt(java.io.OutputStream out, int x)Write a variable size int.static voidwriteVarInt(java.nio.ByteBuffer buff, int x)Write a variable size int.static voidwriteVarLong(java.io.OutputStream out, long x)Write a variable size long.static voidwriteVarLong(java.nio.ByteBuffer buff, long x)Write a variable size long.
-
-
-
Field Detail
-
ERROR_READING_FAILED
public static final int ERROR_READING_FAILED
An error occurred while reading from the file.- See Also:
- Constant Field Values
-
ERROR_WRITING_FAILED
public static final int ERROR_WRITING_FAILED
An error occurred when trying to write to the file.- See Also:
- Constant Field Values
-
ERROR_INTERNAL
public static final int ERROR_INTERNAL
An internal error occurred. This could be a bug, or a memory corruption (for example caused by out of memory).- See Also:
- Constant Field Values
-
ERROR_CLOSED
public static final int ERROR_CLOSED
The object is already closed.- See Also:
- Constant Field Values
-
ERROR_UNSUPPORTED_FORMAT
public static final int ERROR_UNSUPPORTED_FORMAT
The file format is not supported.- See Also:
- Constant Field Values
-
ERROR_FILE_CORRUPT
public static final int ERROR_FILE_CORRUPT
The file is corrupt or (for encrypted files) the encryption key is wrong.- See Also:
- Constant Field Values
-
ERROR_FILE_LOCKED
public static final int ERROR_FILE_LOCKED
The file is locked.- See Also:
- Constant Field Values
-
ERROR_SERIALIZATION
public static final int ERROR_SERIALIZATION
An error occurred when serializing or de-serializing.- See Also:
- Constant Field Values
-
ERROR_CHUNK_NOT_FOUND
public static final int ERROR_CHUNK_NOT_FOUND
The application was trying to read data from a chunk that is no longer available.- See Also:
- Constant Field Values
-
ERROR_BLOCK_NOT_FOUND
public static final int ERROR_BLOCK_NOT_FOUND
The block in the stream store was not found.- See Also:
- Constant Field Values
-
ERROR_TRANSACTION_CORRUPT
public static final int ERROR_TRANSACTION_CORRUPT
The transaction store is corrupt.- See Also:
- Constant Field Values
-
ERROR_TRANSACTION_LOCKED
public static final int ERROR_TRANSACTION_LOCKED
An entry is still locked by another transaction.- See Also:
- Constant Field Values
-
ERROR_TOO_MANY_OPEN_TRANSACTIONS
public static final int ERROR_TOO_MANY_OPEN_TRANSACTIONS
There are too many open transactions.- See Also:
- Constant Field Values
-
ERROR_TRANSACTION_ILLEGAL_STATE
public static final int ERROR_TRANSACTION_ILLEGAL_STATE
The transaction store is in an illegal state (for example, not yet initialized).- See Also:
- Constant Field Values
-
ERROR_TRANSACTION_TOO_BIG
public static final int ERROR_TRANSACTION_TOO_BIG
The transaction contains too many changes.- See Also:
- Constant Field Values
-
ERROR_TRANSACTIONS_DEADLOCK
public static final int ERROR_TRANSACTIONS_DEADLOCK
Deadlock discovered and one of transactions involved chosen as victim and rolled back.- See Also:
- Constant Field Values
-
ERROR_UNKNOWN_DATA_TYPE
public static final int ERROR_UNKNOWN_DATA_TYPE
The transaction store can not be initialized because data type is not found in type registry.- See Also:
- Constant Field Values
-
PAGE_TYPE_LEAF
public static final int PAGE_TYPE_LEAF
The type for leaf page.- See Also:
- Constant Field Values
-
PAGE_TYPE_NODE
public static final int PAGE_TYPE_NODE
The type for node page.- See Also:
- Constant Field Values
-
PAGE_COMPRESSED
public static final int PAGE_COMPRESSED
The bit mask for compressed pages (compression level fast).- See Also:
- Constant Field Values
-
PAGE_COMPRESSED_HIGH
public static final int PAGE_COMPRESSED_HIGH
The bit mask for compressed pages (compression level high).- See Also:
- Constant Field Values
-
PAGE_HAS_PAGE_NO
public static final int PAGE_HAS_PAGE_NO
The bit mask for pages with page sequential number.- See Also:
- Constant Field Values
-
MAX_VAR_INT_LEN
public static final int MAX_VAR_INT_LEN
The maximum length of a variable size int.- See Also:
- Constant Field Values
-
MAX_VAR_LONG_LEN
public static final int MAX_VAR_LONG_LEN
The maximum length of a variable size long.- See Also:
- Constant Field Values
-
COMPRESSED_VAR_INT_MAX
public static final int COMPRESSED_VAR_INT_MAX
The maximum integer that needs less space when using variable size encoding (only 3 bytes instead of 4).- See Also:
- Constant Field Values
-
COMPRESSED_VAR_LONG_MAX
public static final long COMPRESSED_VAR_LONG_MAX
The maximum long that needs less space when using variable size encoding (only 7 bytes instead of 8).- See Also:
- Constant Field Values
-
PAGE_LARGE
public static final int PAGE_LARGE
The marker size of a very large page.- See Also:
- Constant Field Values
-
META_CHUNK
public static final java.lang.String META_CHUNK
The prefix for chunks ("chunk."). This, plus the chunk id (hex encoded) is the key, and the serialized chunk metadata is the value.- See Also:
- Constant Field Values
-
META_ROOT
public static final java.lang.String META_ROOT
The prefix for root positions of maps ("root."). This, plus the map id (hex encoded) is the key, and the position (hex encoded) is the value.- See Also:
- Constant Field Values
-
META_NAME
public static final java.lang.String META_NAME
The prefix for names ("name."). This, plus the name of the map, is the key, and the map id (hex encoded) is the value.- See Also:
- Constant Field Values
-
META_MAP
public static final java.lang.String META_MAP
The prefix for maps ("map."). This, plus the map id (hex encoded) is the key, and the serialized in the map metadata is the value.- See Also:
- Constant Field Values
-
-
Method Detail
-
getVarIntLen
public static int getVarIntLen(int x)
Get the length of the variable size int.- Parameters:
x- the value- Returns:
- the length in bytes
-
getVarLongLen
public static int getVarLongLen(long x)
Get the length of the variable size long.- Parameters:
x- the value- Returns:
- the length in bytes
-
readVarInt
public static int readVarInt(java.nio.ByteBuffer buff)
Read a variable size int.- Parameters:
buff- the source buffer- Returns:
- the value
-
readVarIntRest
private static int readVarIntRest(java.nio.ByteBuffer buff, int b)
-
readVarLong
public static long readVarLong(java.nio.ByteBuffer buff)
Read a variable size long.- Parameters:
buff- the source buffer- Returns:
- the value
-
writeVarInt
public static void writeVarInt(java.io.OutputStream out, int x) throws java.io.IOExceptionWrite a variable size int.- Parameters:
out- the output streamx- the value- Throws:
java.io.IOException- if some data could not be written
-
writeVarInt
public static void writeVarInt(java.nio.ByteBuffer buff, int x)Write a variable size int.- Parameters:
buff- the source bufferx- the value
-
writeStringData
public static void writeStringData(java.nio.ByteBuffer buff, java.lang.String s, int len)Write characters from a string (without the length).- Parameters:
buff- the target buffer (must be large enough)s- the stringlen- the number of characters
-
readString
public static java.lang.String readString(java.nio.ByteBuffer buff)
Read a string.- Parameters:
buff- the source buffer- Returns:
- the value
-
readString
public static java.lang.String readString(java.nio.ByteBuffer buff, int len)Read a string.- Parameters:
buff- the source bufferlen- the number of characters- Returns:
- the value
-
writeVarLong
public static void writeVarLong(java.nio.ByteBuffer buff, long x)Write a variable size long.- Parameters:
buff- the target bufferx- the value
-
writeVarLong
public static void writeVarLong(java.io.OutputStream out, long x) throws java.io.IOExceptionWrite a variable size long.- Parameters:
out- the output streamx- the value- Throws:
java.io.IOException- if some data could not be written
-
copyWithGap
public static void copyWithGap(java.lang.Object src, java.lang.Object dst, int oldSize, int gapIndex)Copy the elements of an array, with a gap.- Parameters:
src- the source arraydst- the target arrayoldSize- the size of the old arraygapIndex- the index of the gap
-
copyExcept
public static void copyExcept(java.lang.Object src, java.lang.Object dst, int oldSize, int removeIndex)Copy the elements of an array, and remove one element.- Parameters:
src- the source arraydst- the target arrayoldSize- the size of the old arrayremoveIndex- the index of the entry to remove
-
readFully
public static void readFully(java.nio.channels.FileChannel file, long pos, java.nio.ByteBuffer dst)Read from a file channel until the buffer is full. The buffer is rewind after reading.- Parameters:
file- the file channelpos- the absolute position within the filedst- the byte buffer- Throws:
MVStoreException- if some data could not be read
-
writeFully
public static void writeFully(java.nio.channels.FileChannel file, long pos, java.nio.ByteBuffer src)Write to a file channel.- Parameters:
file- the file channelpos- the absolute position within the filesrc- the source buffer
-
encodeLength
public static int encodeLength(int len)
Convert the length to a length code 0..31. 31 means more than 1 MB.- Parameters:
len- the length- Returns:
- the length code
-
getPageChunkId
public static int getPageChunkId(long pos)
Get the chunk id from the position.- Parameters:
pos- the position- Returns:
- the chunk id
-
getPageMapId
public static int getPageMapId(long tocElement)
Get the map id from the chunk's table of content element.- Parameters:
tocElement- packed table of content element- Returns:
- the map id
-
getPageMaxLength
public static int getPageMaxLength(long pos)
Get the maximum length for the given page position.- Parameters:
pos- the position- Returns:
- the maximum length
-
decodePageLength
public static int decodePageLength(int code)
Get the maximum length for the given code. For the code 31, PAGE_LARGE is returned.- Parameters:
code- encoded page length- Returns:
- the maximum length
-
getPageOffset
public static int getPageOffset(long tocElement)
Get the offset from the position.- Parameters:
tocElement- packed table of content element- Returns:
- the offset
-
getPageType
public static int getPageType(long pos)
Get the page type from the position.- Parameters:
pos- the position- Returns:
- the page type (PAGE_TYPE_NODE or PAGE_TYPE_LEAF)
-
isLeafPosition
public static boolean isLeafPosition(long pos)
Determines whether specified file position corresponds to a leaf page- Parameters:
pos- the position- Returns:
- true if it is a leaf, false otherwise
-
isPageSaved
public static boolean isPageSaved(long pos)
Find out if page was saved.- Parameters:
pos- the position- Returns:
- true if page has been saved
-
isPageRemoved
static boolean isPageRemoved(long pos)
Find out if page was removed.- Parameters:
pos- the position- Returns:
- true if page has been removed (no longer accessible from the current root of the tree)
-
getPagePos
public static long getPagePos(int chunkId, int offset, int length, int type)Get the position of this page. The following information is encoded in the position: the chunk id, the page sequential number, the maximum length, and the type (node or leaf).- Parameters:
chunkId- the chunk idoffset- the offsetlength- the lengthtype- the page type (1 for node, 0 for leaf)- Returns:
- the position
-
getPagePos
public static long getPagePos(int chunkId, long tocElement)Convert tocElement into pagePos by replacing mapId with chunkId.- Parameters:
chunkId- the chunk idtocElement- the element- Returns:
- the page position
-
getTocElement
public static long getTocElement(int mapId, int offset, int length, int type)Create table of content element. The following information is encoded in it: the map id, the page offset, the maximum length, and the type (node or leaf).- Parameters:
mapId- the chunk idoffset- the offsetlength- the lengthtype- the page type (1 for node, 0 for leaf)- Returns:
- the position
-
getCheckValue
public static short getCheckValue(int x)
Calculate a check value for the given integer. A check value is mean to verify the data is consistent with a high probability, but not meant to protect against media failure or deliberate changes.- Parameters:
x- the value- Returns:
- the check value
-
appendMap
public static java.lang.StringBuilder appendMap(java.lang.StringBuilder buff, java.util.HashMap<java.lang.String,?> map)Append a map to the string builder, sorted by key.- Parameters:
buff- the target buffermap- the map- Returns:
- the string builder
-
appendMapKey
private static java.lang.StringBuilder appendMapKey(java.lang.StringBuilder buff, java.lang.String key)
-
appendMap
public static void appendMap(java.lang.StringBuilder buff, java.lang.String key, java.lang.String value)Append a key-value pair to the string builder. Keys may not contain a colon. Values that contain a comma or a double quote are enclosed in double quotes, with special characters escaped using a backslash.- Parameters:
buff- the target bufferkey- the keyvalue- the value
-
appendMap
public static void appendMap(java.lang.StringBuilder buff, java.lang.String key, long value)Append a key-value pair to the string builder. Keys may not contain a colon.- Parameters:
buff- the target bufferkey- the keyvalue- the value
-
appendMap
public static void appendMap(java.lang.StringBuilder buff, java.lang.String key, int value)Append a key-value pair to the string builder. Keys may not contain a colon.- Parameters:
buff- the target bufferkey- the keyvalue- the value
-
parseMapValue
private static int parseMapValue(java.lang.StringBuilder buff, java.lang.String s, int i, int size)- Parameters:
buff- output buffer, should be emptys- parsed stringi- offset to parse fromsize- stop offset (exclusive)- Returns:
- new offset
-
parseMap
public static java.util.HashMap<java.lang.String,java.lang.String> parseMap(java.lang.String s)
Parse a key-value pair list.- Parameters:
s- the list- Returns:
- the map
- Throws:
MVStoreException- if parsing failed
-
parseChecksummedMap
static java.util.HashMap<java.lang.String,java.lang.String> parseChecksummedMap(byte[] bytes)
Parse a key-value pair list and checks its checksum.- Parameters:
bytes- encoded map- Returns:
- the map without mapping for
"fletcher", ornullif checksum is wrong or parameter do not represent a properly formatted map serialization
-
getMapName
public static java.lang.String getMapName(java.lang.String s)
Parse a name from key-value pair list.- Parameters:
s- the list- Returns:
- value of name item, or
null - Throws:
MVStoreException- if parsing failed
-
getFromMap
public static java.lang.String getFromMap(java.lang.String s, java.lang.String key)Parse a specified pair from key-value pair list.- Parameters:
s- the listkey- the name of the key- Returns:
- value of the specified item, or
null - Throws:
MVStoreException- if parsing failed
-
getFletcher32
public static int getFletcher32(byte[] bytes, int offset, int length)Calculate the Fletcher32 checksum.- Parameters:
bytes- the bytesoffset- initial offsetlength- the message length (if odd, 0 is appended)- Returns:
- the checksum
-
checkArgument
public static void checkArgument(boolean test, java.lang.String message, java.lang.Object... arguments)Throw an IllegalArgumentException if the argument is invalid.- Parameters:
test- true if the argument is validmessage- the messagearguments- the arguments- Throws:
java.lang.IllegalArgumentException- if the argument is invalid
-
newIllegalArgumentException
public static java.lang.IllegalArgumentException newIllegalArgumentException(java.lang.String message, java.lang.Object... arguments)Create a new IllegalArgumentException.- Parameters:
message- the messagearguments- the arguments- Returns:
- the exception
-
newUnsupportedOperationException
public static java.lang.UnsupportedOperationException newUnsupportedOperationException(java.lang.String message)
Create a new UnsupportedOperationException.- Parameters:
message- the message- Returns:
- the exception
-
newMVStoreException
public static MVStoreException newMVStoreException(int errorCode, java.lang.String message, java.lang.Object... arguments)
Create a new MVStoreException.- Parameters:
errorCode- the error codemessage- the messagearguments- the arguments- Returns:
- the exception
-
initCause
private static <T extends java.lang.Exception> T initCause(T e, java.lang.Object... arguments)
-
formatMessage
public static java.lang.String formatMessage(int errorCode, java.lang.String message, java.lang.Object... arguments)Format an error message.- Parameters:
errorCode- the error codemessage- the messagearguments- the arguments- Returns:
- the formatted message
-
readHexLong
public static long readHexLong(java.util.Map<java.lang.String,?> map, java.lang.String key, long defaultValue)Read a hex long value from a map.- Parameters:
map- the mapkey- the keydefaultValue- if the value is null- Returns:
- the parsed value
- Throws:
MVStoreException- if parsing fails
-
parseHexLong
public static long parseHexLong(java.lang.String x)
Parse an unsigned, hex long.- Parameters:
x- the string- Returns:
- the parsed value
- Throws:
MVStoreException- if parsing fails
-
parseHexInt
public static int parseHexInt(java.lang.String x)
Parse an unsigned, hex long.- Parameters:
x- the string- Returns:
- the parsed value
- Throws:
MVStoreException- if parsing fails
-
readHexInt
static int readHexInt(java.util.Map<java.lang.String,?> map, java.lang.String key, int defaultValue)Read a hex int value from a map.- Parameters:
map- the mapkey- the keydefaultValue- if the value is null- Returns:
- the parsed value
- Throws:
MVStoreException- if parsing fails
-
parseHexBytes
static byte[] parseHexBytes(java.util.Map<java.lang.String,?> map, java.lang.String key)Parse the hex-encoded bytes of an entry in the map.- Parameters:
map- the mapkey- the key- Returns:
- the byte array, or null if not in the map
-
getConfigParam
static int getConfigParam(java.util.Map<java.lang.String,?> config, java.lang.String key, int defaultValue)Get the configuration parameter value, or default.- Parameters:
config- the configurationkey- the keydefaultValue- the default- Returns:
- the configured value or default
-
convertToIOException
public static java.io.IOException convertToIOException(java.lang.Throwable e)
Convert an exception to an IO exception.- Parameters:
e- the root cause- Returns:
- the IO exception
-
-