--- jsr166/src/test/tck/ReentrantReadWriteLockTest.java 2003/12/28 21:56:18 1.13 +++ jsr166/src/test/tck/ReentrantReadWriteLockTest.java 2004/01/08 01:29:46 1.17 @@ -156,16 +156,18 @@ public class ReentrantReadWriteLockTest */ public void testWriteLockInterruptibly_Interrupted() { final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); - lock.writeLock().lock(); Thread t = new Thread(new Runnable() { public void run() { try { lock.writeLock().lockInterruptibly(); - threadShouldThrow(); + lock.writeLock().unlock(); + lock.writeLock().lockInterruptibly(); + lock.writeLock().unlock(); } catch(InterruptedException success){} } }); try { + lock.writeLock().lock(); t.start(); t.interrupt(); lock.writeLock().unlock(); @@ -176,7 +178,7 @@ public class ReentrantReadWriteLockTest } /** - * timed write-trylock is interruptible + * timed write-tryLock is interruptible */ public void testWriteTryLock_Interrupted() { final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -185,7 +187,6 @@ public class ReentrantReadWriteLockTest public void run() { try { lock.writeLock().tryLock(1000,TimeUnit.MILLISECONDS); - threadShouldThrow(); } catch(InterruptedException success){} } }); @@ -209,7 +210,6 @@ public class ReentrantReadWriteLockTest public void run() { try { lock.readLock().lockInterruptibly(); - threadShouldThrow(); } catch(InterruptedException success){} } }); @@ -224,7 +224,7 @@ public class ReentrantReadWriteLockTest } /** - * timed read-trylock is interruptible + * timed read-tryLock is interruptible */ public void testReadTryLock_Interrupted() { final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -248,7 +248,7 @@ public class ReentrantReadWriteLockTest /** - * write-trylock fails if locked + * write-tryLock fails if locked */ public void testWriteTryLockWhenLocked() { final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -268,7 +268,7 @@ public class ReentrantReadWriteLockTest } /** - * read-trylock fails if locked + * read-tryLock fails if locked */ public void testReadTryLockWhenLocked() { final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -378,7 +378,7 @@ public class ReentrantReadWriteLockTest /** - * Read trylock succeeds if readlocked but not writelocked + * Read tryLock succeeds if readlocked but not writelocked */ public void testTryLockWhenReadLocked() { final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -401,7 +401,7 @@ public class ReentrantReadWriteLockTest /** - * write trylock fails when readlocked + * write tryLock fails when readlocked */ public void testWriteTryLockWhenReadLocked() { final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -423,7 +423,7 @@ public class ReentrantReadWriteLockTest /** - * write timed trylock times out if locked + * write timed tryLock times out if locked */ public void testWriteTryLock_Timeout() { final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -447,7 +447,7 @@ public class ReentrantReadWriteLockTest } /** - * read timed trylock times out if write-locked + * read timed tryLock times out if write-locked */ public void testReadTryLock_Timeout() { final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -938,6 +938,49 @@ public class ReentrantReadWriteLockTest } /** + * hasWaiters throws NPE if null + */ + public void testHasWaitersNPE() { + final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); + try { + lock.hasWaiters(null); + shouldThrow(); + } catch (NullPointerException success) { + } catch (Exception ex) { + unexpectedException(); + } + } + + /** + * getWaitQueueLength throws NPE if null + */ + public void testGetWaitQueueLengthNPE() { + final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); + try { + lock.getWaitQueueLength(null); + shouldThrow(); + } catch (NullPointerException success) { + } catch (Exception ex) { + unexpectedException(); + } + } + + + /** + * getWaitingThreads throws NPE if null + */ + public void testGetWaitingThreadsNPE() { + final PublicReentrantReadWriteLock lock = new PublicReentrantReadWriteLock(); + try { + lock.getWaitingThreads(null); + shouldThrow(); + } catch (NullPointerException success) { + } catch (Exception ex) { + unexpectedException(); + } + } + + /** * hasWaiters throws IAE if not owned */ public void testHasWaitersIAE() {