@Override public void delete(final Position position) throws InterruptedException, ManagedLedgerException { delete(Collections.singletonList(position)); }
@Test(timeOut = 20000) void testIndividuallyDeletedMessages2() throws Exception { ManagedLedger ledger = factory.open("testIndividuallyDeletedMessages2"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("entry-0".getBytes(Encoding)); ledger.addEntry("entry-1".getBytes(Encoding)); ledger.addEntry("entry-2".getBytes(Encoding)); ledger.addEntry("entry-3".getBytes(Encoding)); ledger.addEntry("entry-4".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(2).getPosition()); c1.delete(entries.get(0).getPosition()); entries.forEach(e -> e.release()); assertTrue(c1.isIndividuallyDeletedEntriesEmpty()); }
@Test(timeOut = 20000) void testFindNewestMatchingEdgeCase10() throws Exception { ManagedLedger ledger = factory.open("testFindNewestMatchingEdgeCase10"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); Position lastPosition = ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("not-expired".getBytes(Encoding)); List<Entry> entries = c1.readEntries(7); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(3).getPosition()); c1.delete(entries.get(6).getPosition()); entries.forEach(e -> e.release()); assertEquals( c1.findNewestMatching(entry -> Arrays.equals(entry.getDataAndRelease(), "expired".getBytes(Encoding))), lastPosition); }
@Test(timeOut = 20000) void testIndividuallyDeletedMessages() throws Exception { ManagedLedger ledger = factory.open("testIndividuallyDeletedMessages"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("entry-0".getBytes(Encoding)); ledger.addEntry("entry-1".getBytes(Encoding)); ledger.addEntry("entry-2".getBytes(Encoding)); ledger.addEntry("entry-3".getBytes(Encoding)); ledger.addEntry("entry-4".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(2).getPosition()); c1.markDelete(entries.get(3).getPosition()); entries.forEach(e -> e.release()); assertTrue(c1.isIndividuallyDeletedEntriesEmpty()); }
@Test(timeOut = 20000) void testIndividuallyDeletedMessages3() throws Exception { ManagedLedger ledger = factory.open("testIndividuallyDeletedMessages3"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("entry-0".getBytes(Encoding)); ledger.addEntry("entry-1".getBytes(Encoding)); ledger.addEntry("entry-2".getBytes(Encoding)); ledger.addEntry("entry-3".getBytes(Encoding)); ledger.addEntry("entry-4".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(2).getPosition()); c1.markDelete(entries.get(0).getPosition()); entries.forEach(e -> e.release()); assertTrue(c1.isIndividuallyDeletedEntriesEmpty()); }
@Test(timeOut = 20000) void testFindNewestMatchingEdgeCase8() throws Exception { ManagedLedger ledger = factory.open("testFindNewestMatchingEdgeCase8"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); Position lastPosition = ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("not-expired".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(2).getPosition()); entries.forEach(e -> e.release()); assertEquals( c1.findNewestMatching(entry -> Arrays.equals(entry.getDataAndRelease(), "expired".getBytes(Encoding))), lastPosition); }
@Test(timeOut = 20000) void testFindNewestMatchingEdgeCase9() throws Exception { ManagedLedger ledger = factory.open("testFindNewestMatchingEdgeCase9"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); Position lastPosition = ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("not-expired".getBytes(Encoding)); List<Entry> entries = c1.readEntries(5); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(3).getPosition()); entries.forEach(e -> e.release()); assertEquals( c1.findNewestMatching(entry -> Arrays.equals(entry.getDataAndRelease(), "expired".getBytes(Encoding))), lastPosition); }
@Test(timeOut = 20000) void testIndividuallyDeletedMessages1() throws Exception { ManagedLedger ledger = factory.open("testIndividuallyDeletedMessages1"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("entry-0".getBytes(Encoding)); ledger.addEntry("entry-1".getBytes(Encoding)); ledger.addEntry("entry-2".getBytes(Encoding)); ledger.addEntry("entry-3".getBytes(Encoding)); ledger.addEntry("entry-4".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.markDelete(entries.get(3).getPosition()); entries.forEach(e -> e.release()); assertTrue(c1.isIndividuallyDeletedEntriesEmpty()); }
@Test(timeOut = 20000) void testFindNewestMatchingEdgeCase7() throws Exception { ManagedLedger ledger = factory.open("testFindNewestMatchingEdgeCase7"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); Position lastPosition = ledger.addEntry("expired".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.markDelete(entries.get(0).getPosition()); c1.delete(entries.get(2).getPosition()); entries.forEach(e -> e.release()); assertEquals( c1.findNewestMatching(entry -> Arrays.equals(entry.getDataAndRelease(), "expired".getBytes(Encoding))), lastPosition); }
if (i % 2 == 0) { c1.delete(addedPositions.get(i));
if (i % 2 == 0) { c1.delete(addedPositions.get(i));
@Override public void delete(final Position position) throws InterruptedException, ManagedLedgerException { delete(Collections.singletonList(position)); }