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]>

Reply via email to