jrwlock



What is ?



jrwlock is a class that implements read/write locking in java,

and notify the developer of non released locks.





Download



CVS:

http://jrwlock.cvs.sourceforge.net/jrwlock/jrwlock/src/net/sourceforge/jrwlock/RWLock.java?view=markup

Use it

If you run this wrong code:

package net.sourceforge.jrwlock.samples;

import net.sourceforge.jrwlock.RWLock;

public class Sample
{
	public static final RWLock lock= new RWLock();
	
	public static void testNoRelease()
	{
		RWLock.Lock l= lock.getReadLock();
	}
 	
	
	public static void main(String[] args)
	throws InterruptedException
	{
		testNoRelease();
		System.gc();
	}

}

You will get the line where the non released lock has been acquired:



1 [Finalizer] ERROR net.sourceforge.jrwlock.RWLock - lock not released by code, releasing and throwing exception:

java.lang.RuntimeException: lock released by finalizer

at net.sourceforge.jrwlock.RWLock$Lock.<init>(RWLock.java:124)

at net.sourceforge.jrwlock.RWLock.getReadLock(RWLock.java:55)

at net.sourceforge.jrwlock.samples.Sample.testNoRelease(Sample.java:11)

at net.sourceforge.jrwlock.samples.Sample.main(Sample.java:18)





About

RWLock was initially developed by Amandeep Singh (http://www.asingh.net/technical/rwlocks.html)

then jrwlock was modified by Andrea A.A. Gariboldi