From 1e4511cfbc4ebbe72ce4316cb19b3e3e0b3f1aed Mon Sep 17 00:00:00 2001 From: yangzhichao Date: Sat, 30 Sep 2017 15:13:46 +0800 Subject: [PATCH] fix relay pull thread fake dead error --- .../netty/GenericHttpResponseHandler.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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)