[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Programmatic ThreadDumps on the TestSuite
clebert.suconic@jboss.com
do-not-reply at jboss.com
Thu Mar 12 12:50:24 EDT 2009
The root cause is an infinite loop BindingsImpl::route, that will probably start when the binding is deleted in the middle of the routing.
I added some debug code into BindingsImpl::route :
long start = System.currentTimeMillis();
|
| long lastPrint = System.currentTimeMillis();
|
| int nexceptions = 0;
| while (true)
| {
| Binding binding;
| try
| {
| if (System.currentTimeMillis() - lastPrint > 1000)
| {
| lastPrint = System.currentTimeMillis();
| System.out.println("-------------------------------> On BindingsImpl::route loop for " + (System.currentTimeMillis() - start) + " milliseconds now, pos = " +
| "" + pos + " bindings.size = " + bindings.size());
| }
| binding = bindings.get(pos);
| }
| catch (IndexOutOfBoundsException e)
| {
| // This can occur if binding is removed while in route
| if (!bindings.isEmpty())
| {
| pos = 0;
|
| continue;
| }
| else
| {
| break;
| }
| }
|
And the loop stays running forever, even after the test is finished, probably affecting next tests.
I attached a debugger, and the only Binding available, has a filter which won't match (probably that special filter for empty Addresses?)
The test stays on a loop, getting back to the IndexOutOfBoundsException.. goes back to 0, find the binding... and then it tries to match the filter again, going back to the Exception... and again, and again, and again...
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4217576#4217576
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4217576
More information about the jboss-dev-forums
mailing list