Example #1
0
  @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);
  }
Example #2
0
  @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);
    }
  }