Skip to content

Commit

Permalink
Add null checks to removeChannelContext and call in channelInactive
Browse files Browse the repository at this point in the history
  • Loading branch information
Lakith-Rambukkanage committed Aug 17, 2023
1 parent 6041179 commit eb14d64
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -178,13 +178,17 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception {
if (isHealthCheckCall) {
return;
}
if (handshaker == null) {
//Handshake has not occurred for this channel. Hence, we can ignore the rest
return;
}
String endpointName = WebsocketEndpointManager.getInstance().getEndpointName(port, tenantDomain);
if (endpointName == null) {
int portWithOffset = port + portOffset;
handleException("Endpoint not found for port : " + portWithOffset + " tenant domain : " + tenantDomain);
}
WebsocketSubscriberPathManager.getInstance()
.addChannelContext(endpointName, subscriberPath.getPath(), wrappedContext);
.removeChannelContext(endpointName, subscriberPath.getPath(), wrappedContext);
MessageContext synCtx = getSynapseMessageContext(tenantDomain , ctx);
InboundEndpoint endpoint = synCtx.getConfiguration().getInboundEndpoint(endpointName);
synCtx.setProperty(InboundWebsocketConstants.CONNECTION_TERMINATE, new Boolean(true));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,32 @@ public void removeChannelContext(String inboundName,
InboundWebsocketChannelContext ctx) {
ConcurrentHashMap<String, List<InboundWebsocketChannelContext>> subscriberPathMap =
inboundSubscriberPathMap.get(inboundName);
if (subscriberPathMap == null) {
if (log.isDebugEnabled()) {
log.debug("SubscriberPathMap does not exist for Inbound : " + inboundName
+ ", in the Thread,ID: " + Thread.currentThread().getName() + ","
+ Thread.currentThread().getId());
}
return;
}
List<InboundWebsocketChannelContext> listContext = subscriberPathMap.get(subscriberPath);
if (listContext == null) {
if (log.isDebugEnabled()) {
log.debug("ListContext does not exist for SubscriberPath : " + subscriberPath
+ ", in the Thread,ID: " + Thread.currentThread().getName() + ","
+ Thread.currentThread().getId());
}
return;
}
for (Object context : listContext.toArray()) {
if (context == null) {
if (log.isDebugEnabled()) {
log.debug("ListContext has null contents : " + listContext.toArray().toString()
+ ", in the Thread,ID: " + Thread.currentThread().getName() + ","
+ Thread.currentThread().getId());
}
continue;
}
if (((InboundWebsocketChannelContext) context).getChannelIdentifier()
.equals(ctx.getChannelIdentifier())) {
if (log.isDebugEnabled()) {
Expand Down

0 comments on commit eb14d64

Please sign in to comment.