AtomicOperation extends BufferedStore implements
        VersionChangeListener { public void abort() { open.set(false); finalizing.set(true); if(locks != null && !locks.isEmpty()) { releaseLocks(); } } protected  AtomicOperation(AtomicSupport destination); protected  AtomicOperation(Queue buffer, AtomicSupport destination); void abort(); @Override boolean add(String key, TObject value, long record); @Override Map<Long, String> audit(long record); @Override Map<Long, String> audit(String key, long record); @Override Map<TObject, Set<Long>> browse(String key); @Override Map<TObject, Set<Long>> browse(String key, long timestamp); @Override Map<Long, Set<TObject>> chronologize(String key, long record,
            long start, long end); final boolean commit(); @Override boolean contains(long record); @Override Set<TObject> gather(String key, long record); @Override Set<TObject> gather(String key, long record, long timestamp); @Override @Restricted void onVersionChange(Token token); @Override boolean remove(String key, TObject value, long record); @Override Set<Long> search(String key, String query); @Override Map<String, Set<TObject>> select(long record); @Override Map<String, Set<TObject>> select(long record, long timestamp); @Override Set<TObject> select(String key, long record); @Override Set<TObject> select(String key, long record, long timestamp); @Override void set(String key, TObject value, long record); @Override final void start(); @Override final void stop(); void touch(long record); @Override boolean verify(String key, TObject value, long record); @Override boolean verify(String key, TObject value, long record,
            long timestamp);  }
@Test public void testAbort() { String key = TestData.getSimpleString(); TObject value = TestData.getTObject(); long record = TestData.getLong(); add(key, value, record); Assert.assertTrue(store.verify(key, value, record)); ((AtomicOperation) store).abort(); Assert.assertFalse(destination.verify(key, value, record)); }