@Test public void testReserveCursorRollback() { byte[] key = new byte[] {1, 1, 1}; byte[] val = new byte[] {3, 3, 3}; Transaction tx = env.createWriteTransaction(); Cursor cursor = db.openCursor(tx); DirectBuffer keyBuf = new DirectBuffer(ByteBuffer.allocateDirect(key.length)); keyBuf.putBytes(0, key); DirectBuffer valBuf = cursor.reserve(keyBuf, val.length); valBuf.putBytes(0, val); tx.abort(); byte[] result = db.get(key); assertNull(result); }
@Test public void testReserveCursor() { byte[] key = new byte[] {1, 1, 1}; byte[] val = new byte[] {3, 3, 3}; try (Transaction tx = env.createWriteTransaction()) { try (Cursor cursor = db.openCursor(tx)) { DirectBuffer keyBuf = new DirectBuffer(ByteBuffer.allocateDirect(key.length)); keyBuf.putBytes(0, key); DirectBuffer valBuf = cursor.reserve(keyBuf, val.length); valBuf.putBytes(0, val); } tx.commit(); } try (Transaction tx = env.createReadTransaction()) { byte[] result = db.get(tx, key); assertArrayEquals(result, val); } }