I am tracking down some of the locks we are seeing. When we lock on a instance, we lock on the context. I was just reading the code and the afterCompletion in the EntitySynchronization calls the notifyAll() only in the case that ctx.getId() != null; This leads to a dead-lock since if the lock was acquired by a "remove" operation when this guy is commited the ctx has (id == null) and therefore the threads never get waken up. In short I believe that we should always notifyAll regards marc ________________ Marc Fleury, PhD CTO, Telkel Inc. ________________
