diff --git a/databus-client/databus-client-http/src/main/java/com/linkedin/databus/client/netty/GenericHttpResponseHandler.java b/databus-client/databus-client-http/src/main/java/com/linkedin/databus/client/netty/GenericHttpResponseHandler.java index 00d3c68e..c9c8a12d 100644 --- a/databus-client/databus-client-http/src/main/java/com/linkedin/databus/client/netty/GenericHttpResponseHandler.java +++ b/databus-client/databus-client-http/src/main/java/com/linkedin/databus/client/netty/GenericHttpResponseHandler.java @@ -339,8 +339,21 @@ public void writeRequested(ChannelHandlerContext ctx, { _httpRequest = (HttpRequest)e.getMessage(); - if(! validateCurrentState(e.getChannel(), MessageState.REQUEST_WAIT)) - return; + if (!validateCurrentState(e.getChannel(), MessageState.REQUEST_WAIT)) + { + if (_messageState != MessageState.CLOSED) + { + return; + } + if (_requestListener != null) + { + _requestListener.onSendRequestFailure(_httpRequest, new ClosedChannelException()); + } else + { + _log.error("this channal has been closed but there is no requestListener!"); + } + return; + } _messageState = MessageState.REQUEST_START; if (debugEnabled)