From: Ruslan Kashapov Date: Wed, 15 Feb 2023 13:58:40 +0000 (+0200) Subject: Fix web-socket timeout closure exceptions X-Git-Tag: v5.0.3~4 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=0d05f5be80762b833acc0b8337b68b353e4c673a;p=netconf.git Fix web-socket timeout closure exceptions As noted in WebSocketSessionHandler.onWebSocketClosed(), there is no guarantee the session reports isOpen(). Performing the same check in AbstractCommonSubscriber.removeSubscriber() (via isConnected()) can therefore result in an ISE. Fix this by removing the check. JIRA: NETCONF-970 Change-Id: I6e437d9821e698e3faca121402a97b88ac486229 Signed-off-by: Ruslan Kashapov --- diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/AbstractCommonSubscriber.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/AbstractCommonSubscriber.java index 75cba43a70..e5fe75261f 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/AbstractCommonSubscriber.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/AbstractCommonSubscriber.java @@ -120,10 +120,8 @@ abstract class AbstractCommonSubscriber extends AbstractNotificationsData imp @Override public synchronized void removeSubscriber(final StreamSessionHandler subscriber) { - final boolean isConnected = subscriber.isConnected(); - checkState(isConnected); - LOG.debug("Subscriber {} is removed", subscriber); subscribers.remove(subscriber); + LOG.debug("Subscriber {} is removed", subscriber); if (!hasSubscribers()) { ListenersBroker.getInstance().removeAndCloseListener(this); }