From ad67783cab236c596d2abbe892d6424b828946d1 Mon Sep 17 00:00:00 2001 From: cotton-ben Date: Thu, 2 Jul 2020 13:54:58 -0400 Subject: [PATCH] request for ChronicleStampedLock --- .../openhft/chronicle/map/fromdocs/acid/ReadMe.adoc | 1 + .../fromdocs/acid/revelations/DirtyReadOffender.java | 5 +++++ .../fromdocs/acid/revelations/DirtyReadVictim.java | 12 ++++++++++-- .../acid/revelations/DirtyReadVictimTest.java | 3 ++- 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 src/test/java/net/openhft/chronicle/map/fromdocs/acid/ReadMe.adoc diff --git a/src/test/java/net/openhft/chronicle/map/fromdocs/acid/ReadMe.adoc b/src/test/java/net/openhft/chronicle/map/fromdocs/acid/ReadMe.adoc new file mode 100644 index 000000000..3255facec --- /dev/null +++ b/src/test/java/net/openhft/chronicle/map/fromdocs/acid/ReadMe.adoc @@ -0,0 +1 @@ +image::../../../../../../../../../../../../Public/Pictures/file.png[] \ No newline at end of file diff --git a/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadOffender.java b/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadOffender.java index 7ab0a59df..827d9a1cf 100644 --- a/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadOffender.java +++ b/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadOffender.java @@ -88,6 +88,11 @@ public class DirtyReadOffender { */ } catch (Exception throwables) { throwables.printStackTrace(); + } finally { + System.out.println( + " ,,@t=" + System.currentTimeMillis() + + " DirtyReadOffender COMMITTED" + ); } } diff --git a/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadVictim.java b/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadVictim.java index a75803383..dd4f1cc48 100644 --- a/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadVictim.java +++ b/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadVictim.java @@ -21,7 +21,7 @@ public class DirtyReadVictim { long stamp = 0; System.out.println( " ,,@t=" + System.currentTimeMillis() + - " DirtyReadVictim CALLING offHeapLock.tryOptimisticRead()" + " DirtyReadVictim ENTERING offHeapLock.tryOptimisticRead()" ); ChronicleStampedLock offHeapLock = new ChronicleStampedLock(); while ((stamp = offHeapLock.tryOptimisticRead()) == 0) { @@ -29,7 +29,7 @@ public class DirtyReadVictim { } System.out.println( " ,,@t=" + System.currentTimeMillis() + - " DirtyReadVictim CALLED offHeapLock.tryOptimisticRead()" + " DirtyReadVictim ENTERED offHeapLock.tryOptimisticRead()" ); try { chm.acquireUsing("369604101", bond); @@ -48,6 +48,10 @@ public class DirtyReadVictim { " DirtyReadVictim sleeping 60 seconds" ); Thread.sleep(60_000); + System.out.println( + " ,,@t=" + System.currentTimeMillis() + + " DirtyReadVictim awakening" + ); } finally { if (offHeapLock.validate(stamp)) { System.out.println( @@ -64,6 +68,10 @@ public class DirtyReadVictim { " coupon=[" + coupon + "] is *DIRTY*. " ); } + System.out.println( + " ,,@t=" + System.currentTimeMillis() + + " DirtyReadVictim EXITED offHeapLock.tryOptimisticRead()" + ); } /** * ben.cotton@rutgers.edu END diff --git a/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadVictimTest.java b/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadVictimTest.java index 7f952b269..01eb1a9c5 100644 --- a/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadVictimTest.java +++ b/src/test/java/net/openhft/chronicle/map/fromdocs/acid/revelations/DirtyReadVictimTest.java @@ -69,7 +69,7 @@ public class DirtyReadVictimTest { " DirtyReadVictim OPTIMISTICALLY_READ coupon=" + coupon + " " ); - + // THIS Test will pass when ChronicleStampedLock is GA Assert.assertFalse(Boolean.TRUE); } else { System.out.println( @@ -78,6 +78,7 @@ public class DirtyReadVictimTest { " must apply PESSIMISTIC_POLICY (dirty read endured)" + " coupon=[" + coupon + "] is *DIRTY*. " ); + // THIS Test will execute pass when ChronicleStampedLock is GA Assert.assertFalse(Boolean.FALSE); } }