I have a swing application hanging after some (random) time. I took 5 snapshot threads every 10 seconds after it freezes, and they all contain these exact lines:
"AWT-EventQueue-0" prio=6 tid=0x0000000009949000 nid=0x7bec waiting on condition [0x000000000ebbc000]
java.lang.Thread.State: RUNNABLE
at java.math.BigInteger.valueOf(Unknown Source)
at java.math.BigDecimal.inflate(Unknown Source)
at java.math.BigDecimal.add(Unknown Source)
at uk.co.xx.xxx.xxxx.XXX$4.get(XXX.java:171)
Note that no other thread in the thread dump is in XXX.java. The corresponding line of code (XXX.java:171) looks somewhat harmless:
a = a.add(b.multiply(c, MATH_CONTEXT), MATH_CONTEXT);
Where:
a, band care local variables BigDecimal.MATH_CONTEXTis a variable public final staticaccessed only in XXX.java
My questions (the answer to any of them will be a big help)