Added the missing Copyright headers to most of the java files.
[ovsdb.git] / ovsdb / src / main / java / org / opendaylight / ovsdb / lib / jsonrpc / JsonRpcEndpoint.java
index b92a233b2b19d7cb32d4c9180444199be5f73b38..8357342b4fb5eb4d657a82514aa05593b9e122e9 100644 (file)
@@ -1,5 +1,28 @@
+/*
+ * Copyright (C) 2013 EBay Software Foundation
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Authors : Ashwin Raveendran, Madhu Venugopal
+ */
 package org.opendaylight.ovsdb.lib.jsonrpc;
 
+import io.netty.channel.Channel;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import org.opendaylight.controller.sal.core.Node;
+import org.opendaylight.ovsdb.lib.message.OvsdbRPC;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -11,18 +34,6 @@ import com.google.common.reflect.TypeToken;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.SettableFuture;
 
-import org.opendaylight.controller.sal.core.Node;
-import org.opendaylight.ovsdb.lib.message.OvsdbRPC;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import io.netty.channel.Channel;
-
 public class JsonRpcEndpoint {
 
     protected static final Logger logger = LoggerFactory.getLogger(JsonRpcEndpoint.class);
@@ -93,7 +104,7 @@ public class JsonRpcEndpoint {
                 }
 
                 String s = objectMapper.writeValueAsString(request);
-                logger.debug("{}", s);
+                logger.trace("{}", s);
 
                 SettableFuture<Object> sf = SettableFuture.create();
                 methodContext.put(request.getId(), new CallContext(request, method, sf));
@@ -108,6 +119,7 @@ public class JsonRpcEndpoint {
 
     public void processResult(JsonNode response) throws NoSuchMethodException {
 
+        logger.trace("Response : {}", response.toString());
         CallContext returnCtxt = methodContext.get(response.get("id").asText());
         if (returnCtxt == null) return;
 
@@ -118,12 +130,12 @@ public class JsonRpcEndpoint {
             JavaType javaType =  TypeFactory.defaultInstance().constructType (retType.getType());
 
             JsonNode result = response.get("result");
-            logger.debug("Response : {}", result.toString());
+            logger.trace("Result : {}", result.toString());
 
             Object result1 = objectMapper.convertValue(result, javaType);
             JsonNode error = response.get("error");
-            if (error != null) {
-                logger.debug("Error : {}", error.toString());
+            if (error != null && !error.isNull()) {
+                logger.error("Error : {}", error.toString());
             }
 
             returnCtxt.getFuture().set(result1);
@@ -136,7 +148,7 @@ public class JsonRpcEndpoint {
     public void processRequest(Node node, JsonNode requestJson) {
         JsonRpc10Request request = new JsonRpc10Request(requestJson.get("id").asText());
         request.setMethod(requestJson.get("method").asText());
-        logger.debug("Request : {} {}", requestJson.get("method"), requestJson.get("params"));
+        logger.trace("Request : {} {}", requestJson.get("method"), requestJson.get("params"));
         OvsdbRPC.Callback callback = requestCallbacks.get(node);
         if (callback != null) {
             Method[] methods = callback.getClass().getDeclaredMethods();
@@ -147,8 +159,8 @@ public class JsonRpcEndpoint {
                     Object param = objectMapper.convertValue(params, parameters[1]);
                     try {
                         m.invoke(callback, node, param);
-                    } catch (Exception e) {
-                        e.printStackTrace();
+                    } catch (IllegalAccessException | InvocationTargetException e) {
+                        logger.error("Unable to invoke callback " + m.getName(), e);
                     }
                     return;
                 }
@@ -160,11 +172,12 @@ public class JsonRpcEndpoint {
         if (request.getMethod().equals("echo")) {
             JsonRpc10Response response = new JsonRpc10Response(request.getId());
             response.setError(null);
+            String s = null;
             try {
-                String s = objectMapper.writeValueAsString(response);
+                s = objectMapper.writeValueAsString(response);
                 nettyChannel.writeAndFlush(s);
             } catch (JsonProcessingException e) {
-                e.printStackTrace();
+                logger.error("Exception while processing JSON string " + s, e );
             }
             return;
         }