GUACAMOLE-504: Reimplement closeConnection() with int parameters.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/bb1670a8 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/bb1670a8 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/bb1670a8 Branch: refs/heads/master Commit: bb1670a808d90b43e36a11a162daf8f38ef86e4c Parents: e996a5a Author: Nick Couchman <vn...@apache.org> Authored: Sat Feb 10 15:13:19 2018 -0500 Committer: Nick Couchman <vn...@apache.org> Committed: Sat Feb 10 15:13:19 2018 -0500 ---------------------------------------------------------------------- .../GuacamoleWebSocketTunnelEndpoint.java | 26 ++++++++-------- .../jetty8/GuacamoleWebSocketTunnelServlet.java | 32 ++++++++++++-------- .../GuacamoleWebSocketTunnelListener.java | 28 +++++++++-------- .../tomcat/GuacamoleWebSocketTunnelServlet.java | 29 ++++++++++-------- 4 files changed, 67 insertions(+), 48 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb1670a8/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java ---------------------------------------------------------------------- diff --git a/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java b/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java index 46ba1f9..492ca4c 100644 --- a/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java +++ b/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java @@ -73,14 +73,12 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { * @param guac_status The status to send. * @param webSocketCode The numeric WebSocket status to send. */ - private void closeConnection(Session session, GuacamoleStatus guac_status, - Integer webSocketCode) { + private void closeConnection(Session session, int guacamoleStatusCode, + int webSocketCode) { try { - if (webSocketCode == null) - webSocketCode = guac_status.getWebSocketCode(); CloseCode code = CloseReason.CloseCodes.getCloseCode(webSocketCode); - String message = Integer.toString(guac_status.getGuacamoleStatusCode()); + String message = Integer.toString(guacamoleStatusCode); session.close(new CloseReason(code, message)); } catch (IOException e) { @@ -113,7 +111,8 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { // Get tunnel tunnel = createTunnel(session, config); if (tunnel == null) { - closeConnection(session, GuacamoleStatus.RESOURCE_NOT_FOUND, null); + closeConnection(session, GuacamoleStatus.RESOURCE_NOT_FOUND.getGuacamoleStatusCode(), + GuacamoleStatus.RESOURCE_NOT_FOUND.getWebSocketCode()); return; } @@ -121,7 +120,7 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { catch (GuacamoleException e) { logger.error("Creation of WebSocket tunnel to guacd failed: {}", e.getMessage()); logger.debug("Error connecting WebSocket tunnel.", e); - closeConnection(session, e.getStatus(), e.getWebSocketCode()); + closeConnection(session, e.getStatus().getGuacamoleStatusCode(), e.getWebSocketCode()); return; } @@ -175,7 +174,8 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { } // No more data - closeConnection(session, GuacamoleStatus.SUCCESS, null); + closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(), + GuacamoleStatus.SUCCESS.getWebSocketCode()); } @@ -185,22 +185,24 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { catch (GuacamoleClientException e) { logger.info("WebSocket connection terminated: {}", e.getMessage()); logger.debug("WebSocket connection terminated due to client error.", e); - closeConnection(session, e.getStatus(), e.getWebSocketCode()); + closeConnection(session, e.getStatus().getGuacamoleStatusCode(), e.getWebSocketCode()); } catch (GuacamoleConnectionClosedException e) { logger.debug("Connection to guacd closed.", e); - closeConnection(session, GuacamoleStatus.SUCCESS, null); + closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(), + GuacamoleStatus.SUCCESS.getWebSocketCode()); } catch (GuacamoleException e) { logger.error("Connection to guacd terminated abnormally: {}", e.getMessage()); logger.debug("Internal error during connection to guacd.", e); - closeConnection(session, e.getStatus(), e.getWebSocketCode()); + closeConnection(session, e.getStatus().getGuacamoleStatusCode(), e.getWebSocketCode()); } } catch (IOException e) { logger.debug("I/O error prevents further reads.", e); - closeConnection(session, GuacamoleStatus.SERVER_ERROR, null); + closeConnection(session, GuacamoleStatus.SERVER_ERROR.getGuacamoleStatusCode(), + GuacamoleStatus.SERVER_ERROR.getWebSocketCode()); } } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb1670a8/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java ---------------------------------------------------------------------- diff --git a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java index a5c27f4..6a7b76f 100644 --- a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java +++ b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java @@ -61,13 +61,10 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { * @param webSocketCode The numeric WebSocket status code to send. */ private static void closeConnection(Connection connection, - GuacamoleStatus guac_status, Integer webSocketCode) { - - if (webSocketCode == null) - webSocketCode = guac_status.getWebSocketCode(); + int guacamoleStatusCode, int webSocketCode) { connection.close(webSocketCode, - Integer.toString(guac_status.getGuacamoleStatusCode())); + Integer.toString(guacamoleStatusCode)); } @@ -118,13 +115,16 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { catch (GuacamoleException e) { logger.error("Creation of WebSocket tunnel to guacd failed: {}", e.getMessage()); logger.debug("Error connecting WebSocket tunnel.", e); - closeConnection(connection, e.getStatus(), e.getWebSocketCode()); + closeConnection(connection, e.getStatus().getGuacamoleStatusCode(), + e.getWebSocketCode()); return; } // Do not start connection if tunnel does not exist if (tunnel == null) { - closeConnection(connection, GuacamoleStatus.RESOURCE_NOT_FOUND, null); + closeConnection(connection, + GuacamoleStatus.RESOURCE_NOT_FOUND.getGuacamoleStatusCode(), + GuacamoleStatus.RESOURCE_NOT_FOUND.getWebSocketCode()); return; } @@ -162,7 +162,9 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { } // No more data - closeConnection(connection, GuacamoleStatus.SUCCESS, null); + closeConnection(connection, + GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(), + GuacamoleStatus.SUCCESS.getWebSocketCode()); } @@ -172,22 +174,28 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { catch (GuacamoleClientException e) { logger.info("WebSocket connection terminated: {}", e.getMessage()); logger.debug("WebSocket connection terminated due to client error.", e); - closeConnection(connection, e.getStatus(), e.getWebSocketCode()); + closeConnection(connection, e.getStatus().getGuacamoleStatusCode(), + e.getWebSocketCode()); } catch (GuacamoleConnectionClosedException e) { logger.debug("Connection to guacd closed.", e); - closeConnection(connection, GuacamoleStatus.SUCCESS, null); + closeConnection(connection, + GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(), + GuacamoleStatus.SUCCESS.getWebSocketCode()); } catch (GuacamoleException e) { logger.error("Connection to guacd terminated abnormally: {}", e.getMessage()); logger.debug("Internal error during connection to guacd.", e); - closeConnection(connection, e.getStatus(), e.getWebSocketCode()); + closeConnection(connection, e.getStatus().getGuacamoleStatusCode(), + e.getWebSocketCode()); } } catch (IOException e) { logger.debug("WebSocket tunnel read failed due to I/O error.", e); - closeConnection(connection, GuacamoleStatus.SERVER_ERROR, null); + closeConnection(connection, + GuacamoleStatus.SERVER_ERROR.getGuacamoleStatusCode(), + GuacamoleStatus.SERVER_ERROR.getWebSocketCode()); } } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb1670a8/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java ---------------------------------------------------------------------- diff --git a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java index 51a3b76..93dc43f 100644 --- a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java +++ b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java @@ -64,13 +64,11 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe * @param guac_status The status to send. * @param webSocketCode The numeric WebSocket status code to send. */ - private void closeConnection(Session session, GuacamoleStatus guac_status, - Integer webSocketCode) { + private void closeConnection(Session session, int guacamoleStatusCode, + int webSocketCode) { try { - if (webSocketCode == null) - webSocketCode = guac_status.getWebSocketCode(); - String message = Integer.toString(guac_status.getGuacamoleStatusCode()); + String message = Integer.toString(guacamoleStatusCode); session.close(new CloseStatus(webSocketCode, message)); } catch (IOException e) { @@ -100,7 +98,8 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe // Get tunnel tunnel = createTunnel(session); if (tunnel == null) { - closeConnection(session, GuacamoleStatus.RESOURCE_NOT_FOUND, null); + closeConnection(session, GuacamoleStatus.RESOURCE_NOT_FOUND.getGuacamoleStatusCode(), + GuacamoleStatus.RESOURCE_NOT_FOUND.getWebSocketCode()); return; } @@ -108,7 +107,7 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe catch (GuacamoleException e) { logger.error("Creation of WebSocket tunnel to guacd failed: {}", e.getMessage()); logger.debug("Error connecting WebSocket tunnel.", e); - closeConnection(session, e.getStatus(), e.getWebSocketCode()); + closeConnection(session, e.getStatus().getGuacamoleStatusCode(), e.getWebSocketCode()); return; } @@ -152,7 +151,8 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe } // No more data - closeConnection(session, GuacamoleStatus.SUCCESS, null); + closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(), + GuacamoleStatus.SUCCESS.getWebSocketCode()); } @@ -162,22 +162,26 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe catch (GuacamoleClientException e) { logger.info("WebSocket connection terminated: {}", e.getMessage()); logger.debug("WebSocket connection terminated due to client error.", e); - closeConnection(session, e.getStatus(), e.getWebSocketCode()); + closeConnection(session, e.getStatus().getGuacamoleStatusCode(), + e.getWebSocketCode()); } catch (GuacamoleConnectionClosedException e) { logger.debug("Connection to guacd closed.", e); - closeConnection(session, GuacamoleStatus.SUCCESS, null); + closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(), + GuacamoleStatus.SUCCESS.getWebSocketCode()); } catch (GuacamoleException e) { logger.error("Connection to guacd terminated abnormally: {}", e.getMessage()); logger.debug("Internal error during connection to guacd.", e); - closeConnection(session, e.getStatus(), e.getWebSocketCode()); + closeConnection(session, e.getStatus().getGuacamoleStatusCode(), + e.getWebSocketCode()); } } catch (IOException e) { logger.debug("I/O error prevents further reads.", e); - closeConnection(session, GuacamoleStatus.SERVER_ERROR, null); + closeConnection(session, GuacamoleStatus.SERVER_ERROR.getGuacamoleStatusCode(), + GuacamoleStatus.SERVER_ERROR.getWebSocketCode()); } } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb1670a8/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java ---------------------------------------------------------------------- diff --git a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java index 29f6481..4384825 100644 --- a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java +++ b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java @@ -65,13 +65,11 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { * @param guac_status The status to send. * @param webSocketCode The numeric WebSocket status code to send. */ - private void closeConnection(WsOutbound outbound, GuacamoleStatus guac_status, - Integer webSocketCode) { + private void closeConnection(WsOutbound outbound, int guacamoleStatusCode, + int webSocketCode) { try { - if (webSocketCode == null) - webSocketCode = guac_status.getWebSocketCode(); - byte[] message = Integer.toString(guac_status.getGuacamoleStatusCode()).getBytes("UTF-8"); + byte[] message = Integer.toString(guacamoleStatusCode).getBytes("UTF-8"); outbound.close(webSocketCode, ByteBuffer.wrap(message)); } catch (IOException e) { @@ -146,13 +144,15 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { catch (GuacamoleException e) { logger.error("Creation of WebSocket tunnel to guacd failed: {}", e.getMessage()); logger.debug("Error connecting WebSocket tunnel.", e); - closeConnection(outbound, e.getStatus(), e.getWebSocketCode()); + closeConnection(outbound, e.getStatus().getGuacamoleStatusCode(), + e.getWebSocketCode()); return; } // Do not start connection if tunnel does not exist if (tunnel == null) { - closeConnection(outbound, GuacamoleStatus.RESOURCE_NOT_FOUND, null); + closeConnection(outbound, GuacamoleStatus.RESOURCE_NOT_FOUND.getGuacamoleStatusCode(), + GuacamoleStatus.RESOURCE_NOT_FOUND.getWebSocketCode()); return; } @@ -190,7 +190,8 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { } // No more data - closeConnection(outbound, GuacamoleStatus.SUCCESS, null); + closeConnection(outbound, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(), + GuacamoleStatus.SUCCESS.getWebSocketCode()); } @@ -200,22 +201,26 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { catch (GuacamoleClientException e) { logger.info("WebSocket connection terminated: {}", e.getMessage()); logger.debug("WebSocket connection terminated due to client error.", e); - closeConnection(outbound, e.getStatus(), e.getWebSocketCode()); + closeConnection(outbound, e.getStatus().getGuacamoleStatusCode(), + e.getWebSocketCode()); } catch (GuacamoleConnectionClosedException e) { logger.debug("Connection to guacd closed.", e); - closeConnection(outbound, GuacamoleStatus.SUCCESS, null); + closeConnection(outbound, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(), + GuacamoleStatus.SUCCESS.getWebSocketCode()); } catch (GuacamoleException e) { logger.error("Connection to guacd terminated abnormally: {}", e.getMessage()); logger.debug("Internal error during connection to guacd.", e); - closeConnection(outbound, e.getStatus(), e.getWebSocketCode()); + closeConnection(outbound, e.getStatus().getGuacamoleStatusCode(), + e.getWebSocketCode()); } } catch (IOException e) { logger.debug("I/O error prevents further reads.", e); - closeConnection(outbound, GuacamoleStatus.SERVER_ERROR, null); + closeConnection(outbound, GuacamoleStatus.SERVER_ERROR.getGuacamoleStatusCode(), + GuacamoleStatus.SERVER_ERROR.getWebSocketCode()); } }