33
33
import com .ning .http .client .HttpResponseHeaders ;
34
34
import com .ning .http .client .HttpResponseStatus ;
35
35
import com .ning .http .client .Request ;
36
- import com .ning .http .client .providers .netty .DiscardEvent ;
37
36
import com .ning .http .client .providers .netty .NettyAsyncHttpProviderConfig ;
38
37
import com .ning .http .client .providers .netty .channel .ChannelManager ;
39
38
import com .ning .http .client .providers .netty .channel .Channels ;
@@ -177,16 +176,11 @@ public void setContent(ChannelBuffer content) {
177
176
}
178
177
179
178
@ Override
180
- public void onError (Channel channel , Throwable e ) {
181
- try {
182
- Object attribute = Channels .getAttribute (channel );
183
- logger .warn ("onError {}" , e );
184
- if (!(attribute instanceof NettyResponseFuture )) {
185
- return ;
186
- }
179
+ public void onError (NettyResponseFuture <?> future , Throwable e ) {
180
+ logger .warn ("onError {}" , e );
187
181
188
- NettyResponseFuture <?> nettyResponse = ( NettyResponseFuture <?>) attribute ;
189
- WebSocketUpgradeHandler h = WebSocketUpgradeHandler . class . cast ( nettyResponse . getAsyncHandler () );
182
+ try {
183
+ WebSocketUpgradeHandler h = ( WebSocketUpgradeHandler ) future . getAsyncHandler ();
190
184
191
185
NettyWebSocket webSocket = NettyWebSocket .class .cast (h .onCompleted ());
192
186
if (webSocket != null ) {
@@ -199,20 +193,15 @@ public void onError(Channel channel, Throwable e) {
199
193
}
200
194
201
195
@ Override
202
- public void onClose (Channel channel ) {
196
+ public void onClose (NettyResponseFuture <?> future ) {
203
197
logger .trace ("onClose {}" );
204
- Object attribute = Channels .getAttribute (channel );
205
- if (!(attribute instanceof NettyResponseFuture ))
206
- return ;
207
198
208
199
try {
209
- NettyResponseFuture <?> nettyResponse = NettyResponseFuture .class .cast (attribute );
210
- WebSocketUpgradeHandler h = WebSocketUpgradeHandler .class .cast (nettyResponse .getAsyncHandler ());
200
+ WebSocketUpgradeHandler h = (WebSocketUpgradeHandler ) future .getAsyncHandler ();
211
201
NettyWebSocket webSocket = NettyWebSocket .class .cast (h .onCompleted ());
212
202
213
- // FIXME How could this test not succeed, we just checked above that attribute is a NettyResponseFuture????
214
203
logger .trace ("Connection was closed abnormally (that is, with no close frame being sent)." );
215
- if (attribute != DiscardEvent . INSTANCE && webSocket != null )
204
+ if (webSocket != null )
216
205
webSocket .close (1006 , "Connection was closed abnormally (that is, with no close frame being sent)." );
217
206
} catch (Throwable t ) {
218
207
logger .error ("onError" , t );
0 commit comments