### Question:
DistributedAtomicLong implements DistributedAtomicNumber<Long> { @Override public AtomicValue<Long> get() throws Exception { return new AtomicLong(value.get()); } DistributedAtomicLong(CuratorFramework client, String counterPath, RetryPolicy retryPolicy);  DistributedAtomicLong(CuratorFramework client, String counterPath, RetryPolicy retryPolicy, PromotedToLock promotedToLock); @Override AtomicValue<Long> get(); @Override void forceSet(Long newValue); @Override AtomicValue<Long> compareAndSet(Long expectedValue, Long newValue); @Override AtomicValue<Long> trySet(Long newValue); @Override boolean initialize(Long initialize); @Override AtomicValue<Long> increment(); @Override AtomicValue<Long> decrement(); @Override AtomicValue<Long> add(Long delta); @Override AtomicValue<Long> subtract(Long delta);  }### Answer:
@Test public void testCorruptedValue() throws Exception { final CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1)); client.start(); try { client.create().forPath("/counter", "foo".getBytes()); DistributedAtomicLong dal = new DistributedAtomicLong(client, "/counter", new RetryOneTime(1)); try { dal.get().postValue(); } catch ( BufferUnderflowException e ) { Assert.fail("", e); } catch ( BufferOverflowException e ) { Assert.fail("", e); } catch ( RuntimeException e ) { } } finally { client.close(); } }