diff --git a/src/main/java/it/cavallium/strangedb/database/references/DatabaseReferencesMetadata.java b/src/main/java/it/cavallium/strangedb/database/references/DatabaseReferencesMetadata.java index b12cec1..5d4a04f 100644 --- a/src/main/java/it/cavallium/strangedb/database/references/DatabaseReferencesMetadata.java +++ b/src/main/java/it/cavallium/strangedb/database/references/DatabaseReferencesMetadata.java @@ -21,7 +21,7 @@ public class DatabaseReferencesMetadata implements IReferencesMetadata { public static final byte ERRORED_CLEANER = (byte) -1; public static final byte BLANK_DATA_CLEANER = (byte) -2; public static final ReferenceInfo NONEXISTENT_REFERENCE_INFO = new ReferenceInfo(ERRORED_CLEANER, ERROR_BLOCK_ID); - private static final int REF_META_BYTES_COUNT = Long.BYTES + Integer.BYTES; + private static final int REF_META_BYTES_COUNT = Long.BYTES + Byte.BYTES; public static final int REF_META_READS_AT_EVERY_READ = (DISK_BLOCK_SIZE - DISK_BLOCK_SIZE % REF_META_BYTES_COUNT) / REF_META_BYTES_COUNT; private final AsynchronousFileChannel metaFileChannel; @@ -91,7 +91,7 @@ public class DatabaseReferencesMetadata implements IReferencesMetadata { for (int delta = 0; delta < referencesCount; delta++) { long referenceToLoad = reference + delta; long currentBlock = buffer.getLong(); - byte cleanerId = (byte) buffer.getInt(); + byte cleanerId = buffer.get(); if (buffer.limit() != 0 && currentBlock != 0xFFFFFFFFFFFFFFFFL) { allReferences[delta] = referenceToLoad; allCleaners[delta] = cleanerId; @@ -191,7 +191,7 @@ public class DatabaseReferencesMetadata implements IReferencesMetadata { } ByteBuffer data = ByteBuffer.allocate(REF_META_BYTES_COUNT); data.putLong(blockId); - data.putInt(cleanerId & 0xFF); + data.put(cleanerId); data.flip(); try { metaFileChannel.write(data, reference * REF_META_BYTES_COUNT).get();