ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/StampedLockTest.java
(Generate patch)

Comparing jsr166/src/test/tck/StampedLockTest.java (file contents):
Revision 1.41 by jsr166, Wed Oct 4 03:49:33 2017 UTC vs.
Revision 1.43 by jsr166, Fri Feb 22 19:27:47 2019 UTC

# Line 587 | Line 587 | public class StampedLockTest extends JSR
587          long s = lock.readLock();
588          Thread t = newStartedThread(new CheckedRunnable() {
589              public void realRun() {
590 <                threadAssertEquals(0L, lock.tryWriteLock());
590 >                assertEquals(0L, lock.tryWriteLock());
591              }});
592  
593          awaitTermination(t);
# Line 982 | Line 982 | public class StampedLockTest extends JSR
982       * IllegalMonitorStateException
983       */
984      public void testCannotUnlockOptimisticReadStamps() {
985 <        Runnable[] actions = {
986 <            () -> {
987 <                StampedLock sl = new StampedLock();
988 <                long stamp = assertValid(sl, sl.tryOptimisticRead());
989 <                sl.unlockRead(stamp);
990 <            },
991 <            () -> {
992 <                StampedLock sl = new StampedLock();
993 <                long stamp = sl.tryOptimisticRead();
994 <                sl.unlock(stamp);
995 <            },
996 <
997 <            () -> {
998 <                StampedLock sl = new StampedLock();
999 <                long stamp = sl.tryOptimisticRead();
1000 <                sl.writeLock();
1001 <                sl.unlock(stamp);
1002 <            },
1003 <            () -> {
1004 <                StampedLock sl = new StampedLock();
1005 <                sl.readLock();
1006 <                long stamp = assertValid(sl, sl.tryOptimisticRead());
1007 <                sl.unlockRead(stamp);
1008 <            },
1009 <            () -> {
1010 <                StampedLock sl = new StampedLock();
1011 <                sl.readLock();
1012 <                long stamp = assertValid(sl, sl.tryOptimisticRead());
1013 <                sl.unlock(stamp);
1014 <            },
1015 <
1016 <            () -> {
1017 <                StampedLock sl = new StampedLock();
1018 <                long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1019 <                assertValid(sl, stamp);
1020 <                sl.writeLock();
1021 <                sl.unlockWrite(stamp);
1022 <            },
1023 <            () -> {
1024 <                StampedLock sl = new StampedLock();
1025 <                long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1026 <                sl.writeLock();
1027 <                sl.unlock(stamp);
1028 <            },
1029 <            () -> {
1030 <                StampedLock sl = new StampedLock();
1031 <                long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1032 <                sl.readLock();
1033 <                sl.unlockRead(stamp);
1034 <            },
1035 <            () -> {
1036 <                StampedLock sl = new StampedLock();
1037 <                long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1038 <                sl.readLock();
1039 <                sl.unlock(stamp);
1040 <            },
1041 <
1042 <            () -> {
1043 <                StampedLock sl = new StampedLock();
1044 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1045 <                assertValid(sl, stamp);
1046 <                sl.writeLock();
1047 <                sl.unlockWrite(stamp);
1048 <            },
1049 <            () -> {
1050 <                StampedLock sl = new StampedLock();
1051 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1052 <                sl.writeLock();
1053 <                sl.unlock(stamp);
1054 <            },
1055 <            () -> {
1056 <                StampedLock sl = new StampedLock();
1057 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1058 <                sl.readLock();
1059 <                sl.unlockRead(stamp);
1060 <            },
1061 <            () -> {
1062 <                StampedLock sl = new StampedLock();
1063 <                sl.readLock();
1064 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1065 <                assertValid(sl, stamp);
1066 <                sl.readLock();
1067 <                sl.unlockRead(stamp);
1068 <            },
1069 <            () -> {
1070 <                StampedLock sl = new StampedLock();
1071 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1072 <                sl.readLock();
1073 <                sl.unlock(stamp);
1074 <            },
1075 <            () -> {
1076 <                StampedLock sl = new StampedLock();
1077 <                sl.readLock();
1078 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1079 <                sl.readLock();
1080 <                sl.unlock(stamp);
1081 <            },
1082 <        };
1083 <
1084 <        assertThrows(IllegalMonitorStateException.class, actions);
985 >        {
986 >            StampedLock sl = new StampedLock();
987 >            long stamp = assertValid(sl, sl.tryOptimisticRead());
988 >            assertThrows(IllegalMonitorStateException.class,
989 >                () -> sl.unlockRead(stamp));
990 >        }
991 >        {
992 >            StampedLock sl = new StampedLock();
993 >            long stamp = sl.tryOptimisticRead();
994 >            assertThrows(IllegalMonitorStateException.class,
995 >                () -> sl.unlock(stamp));
996 >        }
997 >
998 >        {
999 >            StampedLock sl = new StampedLock();
1000 >            long stamp = sl.tryOptimisticRead();
1001 >            sl.writeLock();
1002 >            assertThrows(IllegalMonitorStateException.class,
1003 >                () -> sl.unlock(stamp));
1004 >        }
1005 >        {
1006 >            StampedLock sl = new StampedLock();
1007 >            sl.readLock();
1008 >            long stamp = assertValid(sl, sl.tryOptimisticRead());
1009 >            assertThrows(IllegalMonitorStateException.class,
1010 >                () -> sl.unlockRead(stamp));
1011 >        }
1012 >        {
1013 >            StampedLock sl = new StampedLock();
1014 >            sl.readLock();
1015 >            long stamp = assertValid(sl, sl.tryOptimisticRead());
1016 >            assertThrows(IllegalMonitorStateException.class,
1017 >                () -> sl.unlock(stamp));
1018 >        }
1019 >
1020 >        {
1021 >            StampedLock sl = new StampedLock();
1022 >            long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1023 >            assertValid(sl, stamp);
1024 >            sl.writeLock();
1025 >            assertThrows(IllegalMonitorStateException.class,
1026 >                () -> sl.unlockWrite(stamp));
1027 >        }
1028 >        {
1029 >            StampedLock sl = new StampedLock();
1030 >            long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1031 >            sl.writeLock();
1032 >            assertThrows(IllegalMonitorStateException.class,
1033 >                () -> sl.unlock(stamp));
1034 >        }
1035 >        {
1036 >            StampedLock sl = new StampedLock();
1037 >            long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1038 >            sl.readLock();
1039 >            assertThrows(IllegalMonitorStateException.class,
1040 >                () -> sl.unlockRead(stamp));
1041 >        }
1042 >        {
1043 >            StampedLock sl = new StampedLock();
1044 >            long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1045 >            sl.readLock();
1046 >            assertThrows(IllegalMonitorStateException.class,
1047 >                () -> sl.unlock(stamp));
1048 >        }
1049 >
1050 >        {
1051 >            StampedLock sl = new StampedLock();
1052 >            long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1053 >            assertValid(sl, stamp);
1054 >            sl.writeLock();
1055 >            assertThrows(IllegalMonitorStateException.class,
1056 >                () -> sl.unlockWrite(stamp));
1057 >            }
1058 >        {
1059 >            StampedLock sl = new StampedLock();
1060 >            long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1061 >            sl.writeLock();
1062 >            assertThrows(IllegalMonitorStateException.class,
1063 >                () -> sl.unlock(stamp));
1064 >        }
1065 >        {
1066 >            StampedLock sl = new StampedLock();
1067 >            long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1068 >            sl.readLock();
1069 >            assertThrows(IllegalMonitorStateException.class,
1070 >                () -> sl.unlockRead(stamp));
1071 >        }
1072 >        {
1073 >            StampedLock sl = new StampedLock();
1074 >            sl.readLock();
1075 >            long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1076 >            assertValid(sl, stamp);
1077 >            sl.readLock();
1078 >            assertThrows(IllegalMonitorStateException.class,
1079 >                () -> sl.unlockRead(stamp));
1080 >        }
1081 >        {
1082 >            StampedLock sl = new StampedLock();
1083 >            long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1084 >            sl.readLock();
1085 >            assertThrows(IllegalMonitorStateException.class,
1086 >                () -> sl.unlock(stamp));
1087 >        }
1088 >        {
1089 >            StampedLock sl = new StampedLock();
1090 >            sl.readLock();
1091 >            long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1092 >            sl.readLock();
1093 >            assertThrows(IllegalMonitorStateException.class,
1094 >                () -> sl.unlock(stamp));
1095 >        }
1096      }
1097  
1098      static long writeLockInterruptiblyUninterrupted(StampedLock sl) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines