notifyAll(); }
notify(); } else if (referenceCount < 0) LOG.warn(Thread.currentThread().getName() + ": negative reference count");
	public void release(Object key) {		synchronized (this) {			if (currentKey == null) {				LOG.warn("key : " + key.hashCode() + " already released.");				return;			}			if (currentKey == key) {//				System.out.println(Thread.currentThread().getName() + //					" released lock: " + currentKey.hashCode());				if(--referenceCount == 0) {					currentKey = null;					notifyAll();				}			} else {				// this should never happen				LOG.warn(					Thread.currentThread().getName()						+ ": wrong key: "						+ key.hashCode()						+ "; current = "						+ currentKey.hashCode());			}		}	}