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.42 by jsr166, Mon Nov 27 23:38:11 2017 UTC vs.
Revision 1.43 by jsr166, Fri Feb 22 19:27:47 2019 UTC

# 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 <            },
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 <                sl.unlock(stamp);
1003 <            },
1004 <            () -> {
1005 <                StampedLock sl = new StampedLock();
1006 <                sl.readLock();
1007 <                long stamp = assertValid(sl, sl.tryOptimisticRead());
1008 <                sl.unlockRead(stamp);
1009 <            },
1010 <            () -> {
1011 <                StampedLock sl = new StampedLock();
1012 <                sl.readLock();
1013 <                long stamp = assertValid(sl, sl.tryOptimisticRead());
1014 <                sl.unlock(stamp);
1015 <            },
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 <                sl.unlockWrite(stamp);
1026 <            },
1027 <            () -> {
1028 <                StampedLock sl = new StampedLock();
1029 <                long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1030 <                sl.writeLock();
1031 <                sl.unlock(stamp);
1032 <            },
1033 <            () -> {
1034 <                StampedLock sl = new StampedLock();
1035 <                long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1036 <                sl.readLock();
1037 <                sl.unlockRead(stamp);
1038 <            },
1039 <            () -> {
1040 <                StampedLock sl = new StampedLock();
1041 <                long stamp = sl.tryConvertToOptimisticRead(sl.writeLock());
1042 <                sl.readLock();
1043 <                sl.unlock(stamp);
1044 <            },
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 <                sl.unlockWrite(stamp);
1056 <            },
1057 <            () -> {
1058 <                StampedLock sl = new StampedLock();
1059 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1060 <                sl.writeLock();
1061 <                sl.unlock(stamp);
1062 <            },
1063 <            () -> {
1064 <                StampedLock sl = new StampedLock();
1065 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1066 <                sl.readLock();
1067 <                sl.unlockRead(stamp);
1068 <            },
1069 <            () -> {
1070 <                StampedLock sl = new StampedLock();
1071 <                sl.readLock();
1072 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1073 <                assertValid(sl, stamp);
1074 <                sl.readLock();
1075 <                sl.unlockRead(stamp);
1076 <            },
1077 <            () -> {
1078 <                StampedLock sl = new StampedLock();
1079 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1080 <                sl.readLock();
1081 <                sl.unlock(stamp);
1082 <            },
1083 <            () -> {
1084 <                StampedLock sl = new StampedLock();
1085 <                sl.readLock();
1086 <                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1087 <                sl.readLock();
1088 <                sl.unlock(stamp);
1089 <            },
1090 <        };
1091 <
1092 <        assertThrows(IllegalMonitorStateException.class, actions);
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