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;
}
};