Skip to content

Commit e6cf447

Browse files
committed
1 parent 0b0886b commit e6cf447

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

src/main/java/com/ning/http/client/providers/netty/NettyAsyncHttpProvider.java

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2480,21 +2480,25 @@ public void setContent(ChannelBuffer content) {
24802480
h.onBodyPartReceived(rp);
24812481

24822482
NettyWebSocket webSocket = NettyWebSocket.class.cast(h.onCompleted());
2483-
2484-
if(pendingOpcode == OPCODE_BINARY) {
2485-
webSocket.onBinaryFragment(rp.getBodyPartBytes(),frame.isFinalFragment());
2486-
}
2487-
else {
2488-
webSocket.onTextFragment(frame.getBinaryData().toString(UTF8),frame.isFinalFragment());
2489-
}
24902483

2491-
if (CloseWebSocketFrame.class.isAssignableFrom(frame.getClass())) {
2492-
try {
2493-
webSocket.onClose(CloseWebSocketFrame.class.cast(frame).getStatusCode(), CloseWebSocketFrame.class.cast(frame).getReasonText());
2494-
} catch (Throwable t) {
2495-
// Swallow any exception that may comes from a Netty version released before 3.4.0
2496-
log.trace("", t);
2484+
if (webSocket != null) {
2485+
if(pendingOpcode == OPCODE_BINARY) {
2486+
webSocket.onBinaryFragment(rp.getBodyPartBytes(),frame.isFinalFragment());
2487+
}
2488+
else {
2489+
webSocket.onTextFragment(frame.getBinaryData().toString(UTF8),frame.isFinalFragment());
24972490
}
2491+
2492+
if (CloseWebSocketFrame.class.isAssignableFrom(frame.getClass())) {
2493+
try {
2494+
webSocket.onClose(CloseWebSocketFrame.class.cast(frame).getStatusCode(), CloseWebSocketFrame.class.cast(frame).getReasonText());
2495+
} catch (Throwable t) {
2496+
// Swallow any exception that may comes from a Netty version released before 3.4.0
2497+
log.trace("", t);
2498+
}
2499+
}
2500+
} else {
2501+
log.debug("UpgradeHandler returned a null NettyWebSocket ");
24982502
}
24992503
}
25002504
} else {
@@ -2514,8 +2518,10 @@ public void onError(ChannelHandlerContext ctx, ExceptionEvent e) {
25142518
WebSocketUpgradeHandler h = WebSocketUpgradeHandler.class.cast(nettyResponse.getAsyncHandler());
25152519

25162520
NettyWebSocket webSocket = NettyWebSocket.class.cast(h.onCompleted());
2517-
webSocket.onError(e.getCause());
2518-
webSocket.close();
2521+
if (webSocket != null) {
2522+
webSocket.onError(e.getCause());
2523+
webSocket.close();
2524+
}
25192525
} catch (Throwable t) {
25202526
log.error("onError", t);
25212527
}

0 commit comments

Comments
 (0)