[jboss-cvs] JBossCache/tests/functional/org/jboss/cache/lock ...

Manik Surtani msurtani at jboss.com
Wed Jan 31 12:28:41 EST 2007


  User: msurtani
  Date: 07/01/31 12:28:41

  Modified:    tests/functional/org/jboss/cache/lock 
                        ReadWriteLockTest.java
  Log:
  Updated to test Java5 util concurrent classes
  
  Revision  Changes    Path
  1.4       +23 -4     JBossCache/tests/functional/org/jboss/cache/lock/ReadWriteLockTest.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ReadWriteLockTest.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/tests/functional/org/jboss/cache/lock/ReadWriteLockTest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- ReadWriteLockTest.java	31 Jan 2007 02:40:20 -0000	1.3
  +++ ReadWriteLockTest.java	31 Jan 2007 17:28:41 -0000	1.4
  @@ -10,7 +10,7 @@
   /**
    * Tests the various ReadWriteLock implementations
    * @author Bela Ban
  - * @version $Id: ReadWriteLockTest.java,v 1.3 2007/01/31 02:40:20 msurtani Exp $
  + * @version $Id: ReadWriteLockTest.java,v 1.4 2007/01/31 17:28:41 msurtani Exp $
    */
   public class ReadWriteLockTest extends TestCase {
      ReadWriteLock lock;
  @@ -34,18 +34,28 @@
         lock = new ReentrantReadWriteLock();
         lock.writeLock().lock();
         lock.writeLock().unlock();
  +      try
  +      {
         lock.writeLock().unlock();
  +         fail("Should have barfed");
  +      }
  +      catch (IllegalMonitorStateException imse)
  +      {
  +         // should barf
  +      }         
      }
   
      public void testMoreReadReleasesThanAcquisitions() throws InterruptedException {
         lock = new ReentrantReadWriteLock();
         lock.readLock().lock();
         lock.readLock().unlock();
  -      try {
  +      try
  +      {
            lock.readLock().unlock();
            fail("read locks cannot be released more than acquired");
         }
  -      catch(IllegalStateException illegalStateEx) {
  +      catch(IllegalMonitorStateException illegalStateEx)
  +      {
   
         }
      }
  @@ -53,7 +63,16 @@
      public void testSimple() throws InterruptedException {
         lock = new ReentrantReadWriteLock();
         lock.readLock().lock();
  +      // upgrades must be manual; involving giving up the RL first.  Sucks.
  +      // see http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html
  +      lock.readLock().unlock();
  +
  +      lock.writeLock().lock();
  +      lock.writeLock().lock();
         lock.readLock().lock();
  +      lock.readLock().lock();
  +
  +      // since the thread currently has a WL and we are reentrant, this works without a manual upgrade.
         lock.writeLock().lock();
         lock.writeLock().lock();
      }
  
  
  



More information about the jboss-cvs-commits mailing list