GUACAMOLE-504: Reimplement closeConnection() with int parameters.
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 @@
* @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 @@
// 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 @@
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 @@
}
// No more data
- closeConnection(session, GuacamoleStatus.SUCCESS, null);
+ closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+ GuacamoleStatus.SUCCESS.getWebSocketCode());
}
@@ -185,22 +185,24 @@
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());
}
}
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 @@
* @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 @@
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 @@
}
// No more data
- closeConnection(connection, GuacamoleStatus.SUCCESS, null);
+ closeConnection(connection,
+ GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+ GuacamoleStatus.SUCCESS.getWebSocketCode());
}
@@ -172,22 +174,28 @@
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());
}
}
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 @@
* @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 @@
// 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 @@
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 @@
}
// No more data
- closeConnection(session, GuacamoleStatus.SUCCESS, null);
+ closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+ GuacamoleStatus.SUCCESS.getWebSocketCode());
}
@@ -162,22 +162,26 @@
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());
}
}
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 @@
* @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 @@
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 @@
}
// No more data
- closeConnection(outbound, GuacamoleStatus.SUCCESS, null);
+ closeConnection(outbound, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+ GuacamoleStatus.SUCCESS.getWebSocketCode());
}
@@ -200,22 +201,26 @@
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());
}
}