https://blog.mikeski.net/blog_post/30
Ivy “Impossible to Acquire Lock”
Easy way to get IVY to release all locks.
find ~/.ivy -name '*.lck' -exec rm -f {} \;
https://stackoverflow.com/questions/25701740/java-thread-dump-waiting-on-object-monitor-what-is-it-waiting-on
Java thread dump: WAITING (on object monitor) - what is it waiting on?
https://issues.gradle.org/browse/GRADLE-1723
https://stackoverflow.com/questions/25039864/specifying-jvm-arguments-in-ant-tasks
Ivy “Impossible to Acquire Lock”
Easy way to get IVY to release all locks.
find ~/.ivy -name '*.lck' -exec rm -f {} \;
https://stackoverflow.com/questions/25701740/java-thread-dump-waiting-on-object-monitor-what-is-it-waiting-on
Java thread dump: WAITING (on object monitor) - what is it waiting on?
It's a peculiarity of HotSpot JVM. When dumping a stack, JVM recovers the wait object from the method local variables. This info is available for interpreted methods, but not for compiled native wrappers.
When
After that there will be no "waiting on" line in a thread dump.
Object.wait
is executed frequently enough, it gets JIT-compiled.After that there will be no "waiting on" line in a thread dump.
- Since
wait()
must be called on asynchronized
object, most often the wait object is the last locked object in the stack trace. In your case it is- locked <0x00007f98cbebe5d8> (a com.tibco.tibjms.TibjmsxResponse)
- To prevent
Object.wait
from being JIT-compiled (and thus making wait info always available) use the following JVM option-XX:CompileCommand="exclude,java/lang/Object.wait"
:::: ERRORS
impossible to acquire lock for org.grails#grails-docs;1.3.6
find ~/.gradle/caches/artifacts/ -name "*.lck"
/home/davide/.gradle/caches/artifacts/asm/asm-util/wharfdata-3.2.kryo.lck
Removing it while a milestone-4 process was hanging, it continued soon with no problems.
https://stackoverflow.com/questions/25039864/specifying-jvm-arguments-in-ant-tasks
You can set ANT_OPTS parameters. For example in Windows
SET ANT_OPTS=-Xmx1024m -XX:MaxPermSize=256m
<junit maxmemory="1024m" ...
<junit printsummary="true" fork="yes" haltonfailure="false" failureproperty="junitsFailed" errorProperty="junitsFailed">
<jvmarg value="-Xmx1024m"/>
<jvmarg value="-Duser.timezone=GMT0"/>
</junit>