server: allow closing conn from server action
[nikiroo-utils.git] / src / be / nikiroo / utils / serial / server / ServerObject.java
index 67dfa4a020d3a0cb8f8a70446298ddb7e0b0f7ee..6d3d53935208d713ef251d3ec8bf7b5ce54c85bf 100644 (file)
@@ -2,6 +2,7 @@ package be.nikiroo.utils.serial.server;
 
 import java.io.IOException;
 import java.net.Socket;
+import java.net.UnknownHostException;
 
 import be.nikiroo.utils.Version;
 
@@ -28,6 +29,11 @@ abstract public class ServerObject extends Server {
         * 
         * @throws IOException
         *             in case of I/O error
+        * @throws UnknownHostException
+        *             if the IP address of the host could not be determined
+        * @throws IllegalArgumentException
+        *             if the port parameter is outside the specified range of valid
+        *             port values, which is between 0 and 65535, inclusive
         */
        public ServerObject(int port, boolean ssl) throws IOException {
                super(port, ssl);
@@ -46,6 +52,11 @@ abstract public class ServerObject extends Server {
         * 
         * @throws IOException
         *             in case of I/O error
+        * @throws UnknownHostException
+        *             if the IP address of the host could not be determined
+        * @throws IllegalArgumentException
+        *             if the port parameter is outside the specified range of valid
+        *             port values, which is between 0 and 65535, inclusive
         */
        public ServerObject(String name, int port, boolean ssl) throws IOException {
                super(name, port, ssl);
@@ -61,6 +72,9 @@ abstract public class ServerObject extends Server {
                                                Object rep = null;
                                                try {
                                                        rep = onRequest(this, clientVersion, data);
+                                                       if (isClosing()) {
+                                                               return;
+                                                       }
                                                } catch (Exception e) {
                                                        onError(e);
                                                }
@@ -73,7 +87,7 @@ abstract public class ServerObject extends Server {
 
                        @Override
                        protected void onError(Exception e) {
-                               getTraceHandler().error(e);
+                               ServerObject.this.onError(e);
                        }
                };
        }