Michael Blow has submitted this change and it was merged. Change subject: [NO ISSUE][HYR] Avoid ClassCastException in processIncomingMessages ......................................................................
[NO ISSUE][HYR] Avoid ClassCastException in processIncomingMessages If an error occurs while in state of CONNECT_RECEIVED, a ClassCastException would occur attempting to cast the exception to a InetSocketAddress Change-Id: Ie738cede8e0a6ec98857505f8b27624b77c34256 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2094 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Contrib: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> --- M hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCHandle.java M hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCSystem.java 2 files changed, 6 insertions(+), 6 deletions(-) Approvals: Jenkins: Verified; No violations found; Murtadha Hubail: Looks good to me, approved diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCHandle.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCHandle.java index efd9830..b3a992b 100644 --- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCHandle.java +++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCHandle.java @@ -148,21 +148,21 @@ } system.getPerformanceCounters().addMessageReceivedCount(1); - if (state == HandleState.CONNECT_RECEIVED) { + final boolean error = message.getFlag() == Message.ERROR; + if (!error && state == HandleState.CONNECT_RECEIVED) { remoteAddress = (InetSocketAddress) message.getPayload(); system.getConnectionManager().registerHandle(this); setState(HandleState.CONNECTED); system.getConnectionManager().ack(this, message); - continue; - } else if (state == HandleState.CONNECT_SENT) { + } else if (!error && state == HandleState.CONNECT_SENT) { if (message.getFlag() == Message.INITIAL_ACK) { setState(HandleState.CONNECTED); } else { throw new IllegalStateException(); } - continue; + } else { + system.deliverIncomingMessage(message); } - system.deliverIncomingMessage(message); } inBuffer.compact(); } diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCSystem.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCSystem.java index f27b268..f7e0af1 100644 --- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCSystem.java +++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/impl/IPCSystem.java @@ -94,7 +94,7 @@ Exception exception = null; if (message.getFlag() == Message.ERROR) { exception = (Exception) message.getPayload(); - LOGGER.log(Level.INFO, "Exception in message " + message.toString()); + LOGGER.log(Level.INFO, "Exception in message", exception); } else { payload = message.getPayload(); } -- To view, visit https://asterix-gerrit.ics.uci.edu/2094 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ie738cede8e0a6ec98857505f8b27624b77c34256 Gerrit-PatchSet: 3 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Michael Blow <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]>
