This project provides implementations of Java 1.5 Locks that throw runtime exceptions if contention occurs.
These locks are designed to be used for debugging purposes. If you have an object which you believe doesn't need locking, you can wrap it with a checked uncontended lock.
This project also provides NoOp locks, with do nothing. This allows you to select at runtime, perhaps based on a debugger flag, whether to use a NoOp lock or an checked uncontended lock.