I does not like very much the use of low level java locks, isn't possible to use javax.util.concurrent utilities ?