You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2016/06/20 02:58:27 UTC

[04/50] [abbrv] ignite git commit: GG-11183 Fixed serialization of Throwable.

GG-11183 Fixed serialization of Throwable.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a5a5be7d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a5a5be7d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a5a5be7d

Branch: refs/heads/ignite-3262
Commit: a5a5be7d468b080ceec982e214eb76ab1cbe10a3
Parents: 92f1b24
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Jun 2 16:56:18 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Jun 2 16:56:18 2016 +0700

----------------------------------------------------------------------
 .../http/jetty/GridJettyJsonConfig.java         | 27 ++++++++++++++++++++
 .../http/jetty/GridJettyRestHandler.java        |  6 +++--
 2 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a5a5be7d/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyJsonConfig.java
----------------------------------------------------------------------
diff --git a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyJsonConfig.java b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyJsonConfig.java
index 955eb47..b85d01e 100644
--- a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyJsonConfig.java
+++ b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyJsonConfig.java
@@ -205,6 +205,32 @@ class GridJettyJsonConfig extends JsonConfig {
     };
 
     /**
+     * Helper class for simple to-string conversion for {@link UUID}.
+     */
+    private static JsonValueProcessor THROWABLE_PROCESSOR = new AbstractJsonValueProcessor() {
+        /** {@inheritDoc} */
+        protected Object processBean(Object bean, JsonConfig jsonCfg) {
+            if (bean == null)
+                return new JSONObject(true);
+
+            if (bean instanceof Throwable) {
+                Throwable e = (Throwable)bean;
+
+                final JSONObject ret = new JSONObject();
+
+                ret.element("message", e.getMessage(), jsonCfg);
+
+                if (e.getCause() != null)
+                    ret.element("cause", e.getCause(), jsonCfg);
+
+                return ret;
+            }
+
+            throw new UnsupportedOperationException("Serialize value to json is not supported: " + bean);
+        }
+    };
+
+    /**
      * Constructs default jetty json config.
      */
     GridJettyJsonConfig(IgniteLogger log) {
@@ -218,6 +244,7 @@ class GridJettyJsonConfig extends JsonConfig {
         registerJsonValueProcessor(Date.class, DATE_PROCESSOR);
         registerJsonValueProcessor(java.sql.Date.class, DATE_PROCESSOR);
         registerJsonValueProcessor(HashMap.class, NULL_MAP_PREPROCESSOR);
+        registerJsonValueProcessor(Throwable.class, THROWABLE_PROCESSOR);
 
         final LessNamingProcessor lessNamingProcessor = new LessNamingProcessor();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/a5a5be7d/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
----------------------------------------------------------------------
diff --git a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
index b6a386b..bcee2b4 100644
--- a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
+++ b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
@@ -74,11 +74,13 @@ import static org.apache.ignite.internal.processors.rest.GridRestResponse.STATUS
 public class GridJettyRestHandler extends AbstractHandler {
     /** JSON value processor that does not transform input object. */
     private static final JsonValueProcessor SKIP_STR_VAL_PROC = new JsonValueProcessor() {
-        @Override public Object processArrayValue(Object o, JsonConfig jsonConfig) {
+        /** {@inheritDoc} */
+        @Override public Object processArrayValue(Object o, JsonConfig jsonCfg) {
             return o;
         }
 
-        @Override public Object processObjectValue(String s, Object o, JsonConfig jsonConfig) {
+        /** {@inheritDoc} */
+        @Override public Object processObjectValue(String s, Object o, JsonConfig jsonCfg) {
             return o;
         }
     };