From 82e9967a132c4616246aefa323bcdf75eb5884c2 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sun, 16 Apr 2017 20:52:09 -0700 Subject: [PATCH 1/3] GUACAMOLE-208: Define exceptions for the new UPSTREAM_NOT_FOUND and UPSTREAM_UNAVAILABLE status codes. --- .../GuacamoleUpstreamNotFoundException.java | 69 ++++++++++++++++++ ...GuacamoleUpstreamUnavailableException.java | 71 +++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 guacamole-common/src/main/java/org/apache/guacamole/GuacamoleUpstreamNotFoundException.java create mode 100644 guacamole-common/src/main/java/org/apache/guacamole/GuacamoleUpstreamUnavailableException.java diff --git a/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleUpstreamNotFoundException.java b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleUpstreamNotFoundException.java new file mode 100644 index 000000000..2f7699b29 --- /dev/null +++ b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleUpstreamNotFoundException.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.guacamole; + +import org.apache.guacamole.protocol.GuacamoleStatus; + +/** + * An exception which indicates that an upstream server (such as the remote + * desktop) does not appear to exist. + */ +public class GuacamoleUpstreamNotFoundException extends GuacamoleUpstreamException { + + /** + * Creates a new GuacamoleUpstreamNotFoundException with the given message + * and cause. + * + * @param message + * A human readable description of the exception that occurred. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleUpstreamNotFoundException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Creates a new GuacamoleUpstreamNotFoundException with the given message. + * + * @param message + * A human readable description of the exception that occurred. + */ + public GuacamoleUpstreamNotFoundException(String message) { + super(message); + } + + /** + * Creates a new GuacamoleUpstreamNotFoundException with the given cause. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleUpstreamNotFoundException(Throwable cause) { + super(cause); + } + + @Override + public GuacamoleStatus getStatus() { + return GuacamoleStatus.UPSTREAM_NOT_FOUND; + } + +} diff --git a/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleUpstreamUnavailableException.java b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleUpstreamUnavailableException.java new file mode 100644 index 000000000..7d62083bf --- /dev/null +++ b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleUpstreamUnavailableException.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.guacamole; + +import org.apache.guacamole.protocol.GuacamoleStatus; + +/** + * An exception which indicates that an upstream server (such as the remote + * desktop) is not available to service the request. + */ +public class GuacamoleUpstreamUnavailableException extends GuacamoleUpstreamException { + + /** + * Creates a new GuacamoleUpstreamUnavailableException with the given + * message and cause. + * + * @param message + * A human readable description of the exception that occurred. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleUpstreamUnavailableException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Creates a new GuacamoleUpstreamUnavailableException with the given + * message. + * + * @param message + * A human readable description of the exception that occurred. + */ + public GuacamoleUpstreamUnavailableException(String message) { + super(message); + } + + /** + * Creates a new GuacamoleUpstreamUnavailableException with the given + * cause. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleUpstreamUnavailableException(Throwable cause) { + super(cause); + } + + @Override + public GuacamoleStatus getStatus() { + return GuacamoleStatus.UPSTREAM_UNAVAILABLE; + } + +} From bfc2f2e7eb5634c037e98e1a33d74154385d67f1 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sun, 16 Apr 2017 23:11:34 -0700 Subject: [PATCH 2/3] GUACAMOLE-208: Define exceptions for the new SESSION_CLOSED, SESSION_CONFLICT, and SESSION_TIMEOUT status codes. --- .../GuacamoleSessionClosedException.java | 69 +++++++++++++++++++ .../GuacamoleSessionConflictException.java | 69 +++++++++++++++++++ .../GuacamoleSessionTimeoutException.java | 69 +++++++++++++++++++ 3 files changed, 207 insertions(+) create mode 100644 guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionClosedException.java create mode 100644 guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionConflictException.java create mode 100644 guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionTimeoutException.java diff --git a/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionClosedException.java b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionClosedException.java new file mode 100644 index 000000000..90ff86d77 --- /dev/null +++ b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionClosedException.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.guacamole; + +import org.apache.guacamole.protocol.GuacamoleStatus; + +/** + * An exception which indicates that a session within an upstream server (such + * as the remote desktop) has been forcibly terminated. + */ +public class GuacamoleSessionClosedException extends GuacamoleUpstreamException { + + /** + * Creates a new GuacamoleSessionClosedException with the given message and + * cause. + * + * @param message + * A human readable description of the exception that occurred. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleSessionClosedException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Creates a new GuacamoleSessionClosedException with the given message. + * + * @param message + * A human readable description of the exception that occurred. + */ + public GuacamoleSessionClosedException(String message) { + super(message); + } + + /** + * Creates a new GuacamoleSessionClosedException with the given cause. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleSessionClosedException(Throwable cause) { + super(cause); + } + + @Override + public GuacamoleStatus getStatus() { + return GuacamoleStatus.SESSION_CLOSED; + } + +} diff --git a/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionConflictException.java b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionConflictException.java new file mode 100644 index 000000000..8fa387589 --- /dev/null +++ b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionConflictException.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.guacamole; + +import org.apache.guacamole.protocol.GuacamoleStatus; + +/** + * An exception which indicates that a session within an upstream server (such + * as the remote desktop) has ended because it conflicted with another session. + */ +public class GuacamoleSessionConflictException extends GuacamoleUpstreamException { + + /** + * Creates a new GuacamoleSessionConflictException with the given message + * and cause. + * + * @param message + * A human readable description of the exception that occurred. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleSessionConflictException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Creates a new GuacamoleSessionConflictException with the given message. + * + * @param message + * A human readable description of the exception that occurred. + */ + public GuacamoleSessionConflictException(String message) { + super(message); + } + + /** + * Creates a new GuacamoleSessionConflictException with the given cause. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleSessionConflictException(Throwable cause) { + super(cause); + } + + @Override + public GuacamoleStatus getStatus() { + return GuacamoleStatus.SESSION_CONFLICT; + } + +} diff --git a/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionTimeoutException.java b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionTimeoutException.java new file mode 100644 index 000000000..7e33554b6 --- /dev/null +++ b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleSessionTimeoutException.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.guacamole; + +import org.apache.guacamole.protocol.GuacamoleStatus; + +/** + * An exception which indicates that a session within an upstream server (such + * as the remote desktop) has ended because it appeared to be inactive. + */ +public class GuacamoleSessionTimeoutException extends GuacamoleUpstreamException { + + /** + * Creates a new GuacamoleSessionTimeoutException with the given message + * and cause. + * + * @param message + * A human readable description of the exception that occurred. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleSessionTimeoutException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Creates a new GuacamoleSessionTimeoutException with the given message. + * + * @param message + * A human readable description of the exception that occurred. + */ + public GuacamoleSessionTimeoutException(String message) { + super(message); + } + + /** + * Creates a new GuacamoleSessionTimeoutException with the given cause. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleSessionTimeoutException(Throwable cause) { + super(cause); + } + + @Override + public GuacamoleStatus getStatus() { + return GuacamoleStatus.SESSION_TIMEOUT; + } + +} From 32610e9af225a9e7eeb63707048434c42ad5c702 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sun, 16 Apr 2017 23:12:24 -0700 Subject: [PATCH 3/3] GUACAMOLE-208: Define missing exception for the RESOURCE_CLOSED status code. --- .../GuacamoleResourceClosedException.java | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 guacamole-common/src/main/java/org/apache/guacamole/GuacamoleResourceClosedException.java diff --git a/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleResourceClosedException.java b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleResourceClosedException.java new file mode 100644 index 000000000..e1cc6d91f --- /dev/null +++ b/guacamole-common/src/main/java/org/apache/guacamole/GuacamoleResourceClosedException.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.guacamole; + +import org.apache.guacamole.protocol.GuacamoleStatus; + +/** + * An exception which is thrown when a resource is no longer available because + * it is closed. + */ +public class GuacamoleResourceClosedException extends GuacamoleClientException { + + /** + * Creates a new GuacamoleResourceClosedException with the given message + * and cause. + * + * @param message + * A human readable description of the exception that occurred. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleResourceClosedException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Creates a new GuacamoleResourceClosedException with the given message. + * + * @param message + * A human readable description of the exception that occurred. + */ + public GuacamoleResourceClosedException(String message) { + super(message); + } + + /** + * Creates a new GuacamoleResourceClosedException with the given cause. + * + * @param cause + * The cause of this exception. + */ + public GuacamoleResourceClosedException(Throwable cause) { + super(cause); + } + + @Override + public GuacamoleStatus getStatus() { + return GuacamoleStatus.RESOURCE_CLOSED; + } + +}