[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 <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
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();
         }