Hey Trustin,
I'm seeing something different. When I run
| for (int i = 0; i < 1000; i++)
| {
| Client client = new Client(clientLocator, clientConfig);
| client.connect();
| TestCallbackHandler callbackHandler = new TestCallbackHandler();
| client.addListener(callbackHandler, null, null, true);
| // client.removeListener(callbackHandler);
| client.disconnect();
| }
|
I get lots of BisocketClientInvokers and BisocketClientInvoker.PingTimerTasks
hanging around. When I uncomment the client.removeListener() line, I see
something different. In particular, I still see lots of BisocketClientInvokers
hanging around, but the only reference to them is a java.lang.ref.Finalizer
weak reference. For some reason, when I force a garbage collection in
JProfiler, the garbage collector doesn't collect them. Maybe the program isn't
running long enough to do a full garbage collection? When the program concludes
(but stays alive in JProfiler) I can garbage collect all of the
BisocketClientInvokers and PingTimerTasks.
What I just described happens in Windows with jdk 1.5. When I run the same
program in linux, the garbage collector is willing to collect the old
BisocketClientInvokers, even when the program is still running.
So it doesn't look like a real leak to me, as long as the program properly
disposes of its connections. It looks more like an artifact of the garbage
collector behavior.
-Ron
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150567#4150567
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4150567
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user