Hi.

I am observing the following behaviour with Jetty 8.1.8:

1. Jetty is up and running.
2. I make a websocket connection to it with Atmosphere JS
3. Eventually constructor of
org.eclipse.jetty.websocket.WebSocketConnectionRFC6455 is called. This
constructor, among other things, does the following:

_context=Thread.currentThread().getContextClassLoader();

Context classloader is Jetty's WebAppClassLoader.

This WebSocketConnection is stored in _connection field of
org.eclipse.jetty.io.nio.SelectChannelEndPoint. As a result, we have
Jetty's selector thread, which stores reference to WebSocketConnection,
which has reference to WebAppClassLoader. And this selector thread holds
reference to WebSocketConnection even after application undeploy, which
results in classloader leak.

Is my analysis correct? And what can be done in this case to prevent memory
leak?

Nikita Salnikov-Tarnovski
Plumbr Found and Master Developer
http://plumbr.eu
_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to