-
-
Notifications
You must be signed in to change notification settings - Fork 82
Open
Description
I use Nettosphere 2.4.10 with Atmosphere 2.4.24. I need to close Atmosphere resource on some conditions, but webSocket.isOpen() call inside of AtmosphereResourceImpl.close() method fails with NullPointerException.
@Override
public void close() throws IOException {
event.setCloseByApplication(true);
notifyListeners();
cancel();
if (webSocket != null && webSocket.isOpen()) {
webSocket.close();
}
}
NettyWebSocket implementation of WebSocket is used. isOpen() method calls this.channel.isOpen(), but channel field is set to null after cancel() execution. After debugging I found that the reason is a change in org.atmosphere.nettosphere.BridgeRuntime.channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) method. It calls webSocket.recycle() which sets channel field to null. Looks like it was added in version 2.4.8.
Metadata
Metadata
Assignees
Labels
No labels