Details
-
Bug
-
Resolution: Done
-
Major
-
7.0.0.Beta1
-
None
Description
This test reproduces the issue:
public void testConcurrentWriteAndRestart() { final int THREADS = 4; final AtomicBoolean run = new AtomicBoolean(true); final CountDownLatch started = new CountDownLatch(THREADS); ExecutorService executor = Executors.newFixedThreadPool(THREADS); for (int i = 0; i < THREADS; ++i) { executor.execute(new Runnable() { @Override public void run() { started.countDown(); int i = 0; while (run.get()) { InternalCacheEntry entry = TestInternalCacheEntryFactory.create("k" + i, "v" + i); MarshalledEntry me = TestingUtil.marshalledEntry(entry, getMarshaller()); cl.write(me); ++i; } } }); } try { started.await(); Thread.sleep(1000); cl.stop(); Thread.sleep(1000); cl.start(); Thread.sleep(1000); } catch (InterruptedException e) { throw new IllegalStateException(e); } finally { run.set(false); executor.shutdown(); } }