Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] WebSocketConnection and possible classloader leak

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


Back to the top