Skip to content

Commit 03ee5b3

Browse files
committed
Improved error handling.
1 parent 3679a32 commit 03ee5b3

File tree

1 file changed

+50
-18
lines changed

1 file changed

+50
-18
lines changed

src/main/java/com/ning/http/client/providers/grizzly/GrizzlyAsyncHttpProvider.java

Lines changed: 50 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2667,58 +2667,90 @@ private static final class AHCWebSocketListenerAdapter implements org.glassfish.
26672667

26682668
@Override
26692669
public void onClose(org.glassfish.grizzly.websockets.WebSocket gWebSocket, DataFrame dataFrame) {
2670-
if (WebSocketCloseCodeReasonListener.class.isAssignableFrom(ahcListener.getClass())) {
2671-
ClosingFrame cf = ClosingFrame.class.cast(dataFrame);
2672-
WebSocketCloseCodeReasonListener.class.cast(ahcListener).onClose(webSocket, cf.getCode(), cf.getReason());
2673-
} else {
2674-
ahcListener.onClose(webSocket);
2670+
try {
2671+
if (WebSocketCloseCodeReasonListener.class.isAssignableFrom(ahcListener.getClass())) {
2672+
ClosingFrame cf = ClosingFrame.class.cast(dataFrame);
2673+
WebSocketCloseCodeReasonListener.class.cast(ahcListener).onClose(webSocket, cf.getCode(), cf.getReason());
2674+
} else {
2675+
ahcListener.onClose(webSocket);
2676+
}
2677+
} catch (Throwable e) {
2678+
ahcListener.onError(e);
26752679
}
26762680
}
26772681

26782682
@Override
26792683
public void onConnect(org.glassfish.grizzly.websockets.WebSocket gWebSocket) {
2680-
ahcListener.onOpen(webSocket);
2684+
try {
2685+
ahcListener.onOpen(webSocket);
2686+
} catch (Throwable e) {
2687+
ahcListener.onError(e);
2688+
}
26812689
}
26822690

26832691
@Override
26842692
public void onMessage(org.glassfish.grizzly.websockets.WebSocket webSocket, String s) {
2685-
if (WebSocketTextListener.class.isAssignableFrom(ahcListener.getClass())) {
2686-
WebSocketTextListener.class.cast(ahcListener).onMessage(s);
2693+
try {
2694+
if (WebSocketTextListener.class.isAssignableFrom(ahcListener.getClass())) {
2695+
WebSocketTextListener.class.cast(ahcListener).onMessage(s);
2696+
}
2697+
} catch (Throwable e) {
2698+
ahcListener.onError(e);
26872699
}
26882700
}
26892701

26902702
@Override
26912703
public void onMessage(org.glassfish.grizzly.websockets.WebSocket webSocket, byte[] bytes) {
2692-
if (WebSocketByteListener.class.isAssignableFrom(ahcListener.getClass())) {
2693-
WebSocketByteListener.class.cast(ahcListener).onMessage(bytes);
2704+
try {
2705+
if (WebSocketByteListener.class.isAssignableFrom(ahcListener.getClass())) {
2706+
WebSocketByteListener.class.cast(ahcListener).onMessage(bytes);
2707+
}
2708+
} catch (Throwable e) {
2709+
ahcListener.onError(e);
26942710
}
26952711
}
26962712

26972713
@Override
26982714
public void onPing(org.glassfish.grizzly.websockets.WebSocket webSocket, byte[] bytes) {
2699-
if (WebSocketPingListener.class.isAssignableFrom(ahcListener.getClass())) {
2700-
WebSocketPingListener.class.cast(ahcListener).onPing(bytes);
2715+
try {
2716+
if (WebSocketPingListener.class.isAssignableFrom(ahcListener.getClass())) {
2717+
WebSocketPingListener.class.cast(ahcListener).onPing(bytes);
2718+
}
2719+
} catch (Throwable e) {
2720+
ahcListener.onError(e);
27012721
}
27022722
}
27032723

27042724
@Override
27052725
public void onPong(org.glassfish.grizzly.websockets.WebSocket webSocket, byte[] bytes) {
2706-
if (WebSocketPongListener.class.isAssignableFrom(ahcListener.getClass())) {
2707-
WebSocketPongListener.class.cast(ahcListener).onPong(bytes);
2726+
try {
2727+
if (WebSocketPongListener.class.isAssignableFrom(ahcListener.getClass())) {
2728+
WebSocketPongListener.class.cast(ahcListener).onPong(bytes);
2729+
}
2730+
} catch (Throwable e) {
2731+
ahcListener.onError(e);
27082732
}
27092733
}
27102734

27112735
@Override
27122736
public void onFragment(org.glassfish.grizzly.websockets.WebSocket webSocket, String s, boolean b) {
2713-
if (WebSocketTextListener.class.isAssignableFrom(ahcListener.getClass())) {
2714-
WebSocketTextListener.class.cast(ahcListener).onFragment(s, b);
2737+
try {
2738+
if (WebSocketTextListener.class.isAssignableFrom(ahcListener.getClass())) {
2739+
WebSocketTextListener.class.cast(ahcListener).onFragment(s, b);
2740+
}
2741+
} catch (Throwable e) {
2742+
ahcListener.onError(e);
27152743
}
27162744
}
27172745

27182746
@Override
27192747
public void onFragment(org.glassfish.grizzly.websockets.WebSocket webSocket, byte[] bytes, boolean b) {
2720-
if (WebSocketByteListener.class.isAssignableFrom(ahcListener.getClass())) {
2721-
WebSocketByteListener.class.cast(ahcListener).onFragment(bytes, b);
2748+
try {
2749+
if (WebSocketByteListener.class.isAssignableFrom(ahcListener.getClass())) {
2750+
WebSocketByteListener.class.cast(ahcListener).onFragment(bytes, b);
2751+
}
2752+
} catch (Throwable e) {
2753+
ahcListener.onError(e);
27222754
}
27232755
}
27242756

0 commit comments

Comments
 (0)