Fix handling of closeSl4aSession by writing an empty RPC result.

Without this change, calling closeSl4aSession always gave an error
because the socket would be torn down without any response being received.

Not an issue with upstream sl4a because there is an RPC to implement
closeSl4aSession() which produces its own result.
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/JsonRpcServer.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/JsonRpcServer.java
index 398dc3f..a2af78b 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/JsonRpcServer.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/JsonRpcServer.java
@@ -33,8 +33,8 @@
  * A JSON RPC server that forwards RPC calls to a specified receiver object.
  */
 public class JsonRpcServer extends SimpleServer {
-
     private static final String CMD_CLOSE_SESSION = "closeSl4aSession";
+    private static final String CMD_HELP = "help";
 
     private final SnippetManagerFactory mSnippetManagerFactory;
 
@@ -81,9 +81,22 @@
             String method = request.getString("method");
             JSONArray params = request.getJSONArray("params");
 
-            if (method.equals("help")) {
+            // Handle builtin commands
+            if (method.equals(CMD_HELP)) {
                 help(writer, id, receiverManager, UID);
                 continue;
+            } else if (method.equals(CMD_CLOSE_SESSION)) {
+                Log.d("Got shutdown signal");
+                send(writer, JsonRpcResult.empty(id), UID);
+                synchronized (writer) {
+                    receiverManager.shutdown();
+                    reader.close();
+                    writer.close();
+                    sock.close();
+                    shutdown();
+                    mgrs.remove(UID);
+                }
+                return;
             }
 
             MethodDescriptor rpc = receiverManager.getMethodDescriptor(method);
@@ -97,18 +110,6 @@
                 Log.e("Invocation error.", t);
                 send(writer, JsonRpcResult.error(id, t), UID);
             }
-            if (method.equals(CMD_CLOSE_SESSION)) {
-                Log.d("Got shutdown signal");
-                synchronized (writer) {
-                    receiverManager.shutdown();
-                    reader.close();
-                    writer.close();
-                    sock.close();
-                    shutdown();
-                    mgrs.remove(UID);
-                }
-                return;
-            }
         }
     }