提交 8dffa5a2 编写于 作者: P pengys5

fixed the gson reader deserialization bug, use the method toJson in gson class...

fixed the gson reader deserialization bug, use the method toJson in gson class to get the character contains escape character
上级 b019d35f
...@@ -6,8 +6,8 @@ import com.a.eye.skywalking.collector.actor.LocalAsyncWorkerRef; ...@@ -6,8 +6,8 @@ import com.a.eye.skywalking.collector.actor.LocalAsyncWorkerRef;
import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext;
import com.a.eye.skywalking.collector.actor.Role; import com.a.eye.skywalking.collector.actor.Role;
import com.a.eye.skywalking.collector.worker.segment.entity.Segment; import com.a.eye.skywalking.collector.worker.segment.entity.Segment;
import com.a.eye.skywalking.collector.worker.segment.entity.SegmentJsonReader;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.stream.JsonReader;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import javax.servlet.ServletException; import javax.servlet.ServletException;
...@@ -57,12 +57,12 @@ public abstract class AbstractPost extends AbstractLocalAsyncWorker { ...@@ -57,12 +57,12 @@ public abstract class AbstractPost extends AbstractLocalAsyncWorker {
} }
private void streamReader(BufferedReader bufferedReader) throws Exception { private void streamReader(BufferedReader bufferedReader) throws Exception {
try (SegmentJsonReader reader = new SegmentJsonReader(bufferedReader)) { try (JsonReader reader = new JsonReader(bufferedReader)) {
readSegmentArray(reader); readSegmentArray(reader);
} }
} }
private void readSegmentArray(SegmentJsonReader reader) throws Exception { private void readSegmentArray(JsonReader reader) throws Exception {
reader.beginArray(); reader.beginArray();
while (reader.hasNext()) { while (reader.hasNext()) {
Segment segment = new Segment(); Segment segment = new Segment();
......
package com.a.eye.skywalking.collector.worker.segment.entity; package com.a.eye.skywalking.collector.worker.segment.entity;
import com.google.gson.stream.JsonReader;
import java.io.IOException; import java.io.IOException;
/** /**
...@@ -12,8 +13,8 @@ public class GlobalTraceId extends DeserializeObject { ...@@ -12,8 +13,8 @@ public class GlobalTraceId extends DeserializeObject {
return globalTraceId; return globalTraceId;
} }
public GlobalTraceId deserialize(SegmentJsonReader reader) throws IOException { public GlobalTraceId deserialize(JsonReader reader) throws IOException {
this.globalTraceId = reader.nextString().getValue(); this.globalTraceId = reader.nextString();
this.setJsonStr("\"" + globalTraceId + "\""); this.setJsonStr("\"" + globalTraceId + "\"");
return this; return this;
} }
......
package com.a.eye.skywalking.collector.worker.segment.entity; package com.a.eye.skywalking.collector.worker.segment.entity;
import com.google.gson.Gson;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -9,6 +10,8 @@ import java.util.Map; ...@@ -9,6 +10,8 @@ import java.util.Map;
public enum JsonBuilder { public enum JsonBuilder {
INSTANCE; INSTANCE;
private final Gson gson = new Gson();
public void append(StringBuilder builder, String name, String value, boolean first) { public void append(StringBuilder builder, String name, String value, boolean first) {
if (!first) { if (!first) {
builder.append(","); builder.append(",");
...@@ -58,7 +61,8 @@ public enum JsonBuilder { ...@@ -58,7 +61,8 @@ public enum JsonBuilder {
builder.append(","); builder.append(",");
} }
if (value instanceof String) { if (value instanceof String) {
builder.append("\"").append(key).append("\":\"").append(value).append("\""); // builder.append("\"").append(key).append("\":\"").append(value).append("\"");
builder.append("\"").append(key).append("\":").append(gson.toJson(value));
} else { } else {
builder.append("\"").append(key).append("\":").append(value); builder.append("\"").append(key).append("\":").append(value);
} }
......
package com.a.eye.skywalking.collector.worker.segment.entity; package com.a.eye.skywalking.collector.worker.segment.entity;
import com.google.gson.stream.JsonReader;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -19,7 +20,7 @@ public class LogData extends DeserializeObject { ...@@ -19,7 +20,7 @@ public class LogData extends DeserializeObject {
return fields; return fields;
} }
public LogData deserialize(SegmentJsonReader reader) throws IOException { public LogData deserialize(JsonReader reader) throws IOException {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("{"); stringBuilder.append("{");
...@@ -38,7 +39,7 @@ public class LogData extends DeserializeObject { ...@@ -38,7 +39,7 @@ public class LogData extends DeserializeObject {
while (reader.hasNext()) { while (reader.hasNext()) {
String key = reader.nextName(); String key = reader.nextName();
String value = reader.nextString().getOriginValue(); String value = reader.nextString();
fields.put(key, value); fields.put(key, value);
} }
reader.endObject(); reader.endObject();
......
package com.a.eye.skywalking.collector.worker.segment.entity; package com.a.eye.skywalking.collector.worker.segment.entity;
import com.google.gson.stream.JsonReader;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -44,7 +45,7 @@ public class Segment extends DeserializeObject { ...@@ -44,7 +45,7 @@ public class Segment extends DeserializeObject {
return relatedGlobalTraces; return relatedGlobalTraces;
} }
public Segment deserialize(SegmentJsonReader reader) throws IOException { public Segment deserialize(JsonReader reader) throws IOException {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("{"); stringBuilder.append("{");
...@@ -53,14 +54,12 @@ public class Segment extends DeserializeObject { ...@@ -53,14 +54,12 @@ public class Segment extends DeserializeObject {
while (reader.hasNext()) { while (reader.hasNext()) {
switch (reader.nextName()) { switch (reader.nextName()) {
case "ts": case "ts":
SegmentJsonReader.StringValue ts = reader.nextString(); this.traceSegmentId = reader.nextString();
this.traceSegmentId = ts.getValue(); JsonBuilder.INSTANCE.append(stringBuilder, "ts", this.traceSegmentId, first);
JsonBuilder.INSTANCE.append(stringBuilder, "ts", ts.getOriginValue(), first);
break; break;
case "ac": case "ac":
SegmentJsonReader.StringValue ac = reader.nextString(); this.applicationCode = reader.nextString();
this.applicationCode = ac.getValue(); JsonBuilder.INSTANCE.append(stringBuilder, "ac", this.applicationCode, first);
JsonBuilder.INSTANCE.append(stringBuilder, "ac", ac.getOriginValue(), first);
break; break;
case "st": case "st":
long st = reader.nextLong(); long st = reader.nextLong();
......
package com.a.eye.skywalking.collector.worker.segment.entity; package com.a.eye.skywalking.collector.worker.segment.entity;
import com.google.gson.stream.JsonReader;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.io.StringReader; import java.io.StringReader;
...@@ -13,7 +14,7 @@ public enum SegmentDeserialize { ...@@ -13,7 +14,7 @@ public enum SegmentDeserialize {
INSTANCE; INSTANCE;
public Segment deserializeSingle(String singleSegmentJsonStr) throws IOException { public Segment deserializeSingle(String singleSegmentJsonStr) throws IOException {
SegmentJsonReader reader = new SegmentJsonReader(new StringReader(singleSegmentJsonStr)); JsonReader reader = new JsonReader(new StringReader(singleSegmentJsonStr));
Segment segment = new Segment(); Segment segment = new Segment();
segment.deserialize(reader); segment.deserialize(reader);
return segment; return segment;
...@@ -26,12 +27,12 @@ public enum SegmentDeserialize { ...@@ -26,12 +27,12 @@ public enum SegmentDeserialize {
} }
private void streamReader(List<Segment> segmentList, FileReader fileReader) throws Exception { private void streamReader(List<Segment> segmentList, FileReader fileReader) throws Exception {
try (SegmentJsonReader reader = new SegmentJsonReader(fileReader)) { try (JsonReader reader = new JsonReader(fileReader)) {
readSegmentArray(segmentList, reader); readSegmentArray(segmentList, reader);
} }
} }
private void readSegmentArray(List<Segment> segmentList, SegmentJsonReader reader) throws Exception { private void readSegmentArray(List<Segment> segmentList, JsonReader reader) throws Exception {
reader.beginArray(); reader.beginArray();
while (reader.hasNext()) { while (reader.hasNext()) {
Segment segment = new Segment(); Segment segment = new Segment();
......
package com.a.eye.skywalking.collector.worker.segment.entity;
/**
* Copy from {@link com.google.gson.stream.JsonScope}, this class is invisible, {@link SegmentJsonReader} can not use it
* because of the package is different
*
* @author pengys5
*/
public class SegmentJsonScope {
/**
* An array with no elements requires no separators or newlines before
* it is closed.
*/
static final int EMPTY_ARRAY = 1;
/**
* A array with at least one value requires a comma and newline before
* the next element.
*/
static final int NONEMPTY_ARRAY = 2;
/**
* An object with no name/value pairs requires no separators or newlines
* before it is closed.
*/
static final int EMPTY_OBJECT = 3;
/**
* An object whose most recent element is a key. The next element must
* be a value.
*/
static final int DANGLING_NAME = 4;
/**
* An object with at least one name/value pair requires a comma and
* newline before the next element.
*/
static final int NONEMPTY_OBJECT = 5;
/**
* No object or array has been started.
*/
static final int EMPTY_DOCUMENT = 6;
/**
* A document with at an array or object.
*/
static final int NONEMPTY_DOCUMENT = 7;
/**
* A document that's been closed and cannot be accessed.
*/
static final int CLOSED = 8;
}
package com.a.eye.skywalking.collector.worker.segment.entity; package com.a.eye.skywalking.collector.worker.segment.entity;
import com.google.gson.stream.JsonReader;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -56,7 +57,7 @@ public class Span extends DeserializeObject { ...@@ -56,7 +57,7 @@ public class Span extends DeserializeObject {
return logs; return logs;
} }
public Span deserialize(SegmentJsonReader reader) throws IOException { public Span deserialize(JsonReader reader) throws IOException {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("{"); stringBuilder.append("{");
...@@ -85,7 +86,7 @@ public class Span extends DeserializeObject { ...@@ -85,7 +86,7 @@ public class Span extends DeserializeObject {
JsonBuilder.INSTANCE.append(stringBuilder, "et", et, first); JsonBuilder.INSTANCE.append(stringBuilder, "et", et, first);
break; break;
case "on": case "on":
String on = reader.nextString().getValue(); String on = reader.nextString();
this.operationName = on; this.operationName = on;
JsonBuilder.INSTANCE.append(stringBuilder, "on", on, first); JsonBuilder.INSTANCE.append(stringBuilder, "on", on, first);
break; break;
...@@ -95,7 +96,7 @@ public class Span extends DeserializeObject { ...@@ -95,7 +96,7 @@ public class Span extends DeserializeObject {
while (reader.hasNext()) { while (reader.hasNext()) {
String key = reader.nextName(); String key = reader.nextName();
String value = reader.nextString().getOriginValue(); String value = reader.nextString();
tagsWithStr.put(key, value); tagsWithStr.put(key, value);
} }
reader.endObject(); reader.endObject();
......
package com.a.eye.skywalking.collector.worker.segment.entity; package com.a.eye.skywalking.collector.worker.segment.entity;
import com.google.gson.stream.JsonReader;
import java.io.IOException; import java.io.IOException;
/** /**
...@@ -31,7 +32,7 @@ public class TraceSegmentRef extends DeserializeObject { ...@@ -31,7 +32,7 @@ public class TraceSegmentRef extends DeserializeObject {
return peerHost; return peerHost;
} }
public TraceSegmentRef deserialize(SegmentJsonReader reader) throws IOException { public TraceSegmentRef deserialize(JsonReader reader) throws IOException {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("{"); stringBuilder.append("{");
...@@ -40,7 +41,7 @@ public class TraceSegmentRef extends DeserializeObject { ...@@ -40,7 +41,7 @@ public class TraceSegmentRef extends DeserializeObject {
while (reader.hasNext()) { while (reader.hasNext()) {
switch (reader.nextName()) { switch (reader.nextName()) {
case "ts": case "ts":
String ts = reader.nextString().getValue(); String ts = reader.nextString();
this.traceSegmentId = ts; this.traceSegmentId = ts;
JsonBuilder.INSTANCE.append(stringBuilder, "ts", ts, first); JsonBuilder.INSTANCE.append(stringBuilder, "ts", ts, first);
break; break;
...@@ -50,12 +51,12 @@ public class TraceSegmentRef extends DeserializeObject { ...@@ -50,12 +51,12 @@ public class TraceSegmentRef extends DeserializeObject {
JsonBuilder.INSTANCE.append(stringBuilder, "si", si, first); JsonBuilder.INSTANCE.append(stringBuilder, "si", si, first);
break; break;
case "ac": case "ac":
String ac = reader.nextString().getValue(); String ac = reader.nextString();
this.applicationCode = ac; this.applicationCode = ac;
JsonBuilder.INSTANCE.append(stringBuilder, "ac", ac, first); JsonBuilder.INSTANCE.append(stringBuilder, "ac", ac, first);
break; break;
case "ph": case "ph":
String ph = reader.nextString().getValue(); String ph = reader.nextString();
this.peerHost = ph; this.peerHost = ph;
JsonBuilder.INSTANCE.append(stringBuilder, "ph", ph, first); JsonBuilder.INSTANCE.append(stringBuilder, "ph", ph, first);
break; break;
......
package com.a.eye.skywalking.collector.worker.segment.entity; package com.a.eye.skywalking.collector.worker.segment.entity;
import com.google.gson.stream.JsonReader;
import java.io.IOException; import java.io.IOException;
import java.io.StringReader; import java.io.StringReader;
import java.util.Map; import java.util.Map;
...@@ -15,7 +16,7 @@ public class LogDataTestCase { ...@@ -15,7 +16,7 @@ public class LogDataTestCase {
public void deserialize() throws IOException { public void deserialize() throws IOException {
LogData logData = new LogData(); LogData logData = new LogData();
SegmentJsonReader reader = new SegmentJsonReader(new StringReader("{\"tm\":1, \"fi\": {\"test1\":\"test1\",\"test2\":\"test2\"}, \"skip\":\"skip\"}")); JsonReader reader = new JsonReader(new StringReader("{\"tm\":1, \"fi\": {\"test1\":\"test1\",\"test2\":\"test2\"}, \"skip\":\"skip\"}"));
logData.deserialize(reader); logData.deserialize(reader);
Assert.assertEquals(1L, logData.getTime()); Assert.assertEquals(1L, logData.getTime());
......
package com.a.eye.skywalking.collector.worker.segment.entity; package com.a.eye.skywalking.collector.worker.segment.entity;
import com.google.gson.stream.JsonReader;
import java.io.IOException; import java.io.IOException;
import java.io.StringReader; import java.io.StringReader;
import org.junit.Assert; import org.junit.Assert;
...@@ -13,7 +14,7 @@ public class TraceSegmentRefTestCase { ...@@ -13,7 +14,7 @@ public class TraceSegmentRefTestCase {
@Test @Test
public void deserialize() throws IOException { public void deserialize() throws IOException {
TraceSegmentRef traceSegmentRef = new TraceSegmentRef(); TraceSegmentRef traceSegmentRef = new TraceSegmentRef();
SegmentJsonReader reader = new SegmentJsonReader(new StringReader("{\"ts\" :\"ts\",\"si\":0,\"ac\":\"ac\",\"ph\":\"ph\", \"skip\":\"skip\"}")); JsonReader reader = new JsonReader(new StringReader("{\"ts\" :\"ts\",\"si\":0,\"ac\":\"ac\",\"ph\":\"ph\", \"skip\":\"skip\"}"));
traceSegmentRef.deserialize(reader); traceSegmentRef.deserialize(reader);
Assert.assertEquals("ts", traceSegmentRef.getTraceSegmentId()); Assert.assertEquals("ts", traceSegmentRef.getTraceSegmentId());
......
...@@ -367,6 +367,7 @@ ...@@ -367,6 +367,7 @@
"tm": 1490923010332, "tm": 1490923010332,
"fi": { "fi": {
"stack": "com.weibo.api.motan.exception.MotanBizException: error_message: provider call process error, status: 503, error_code: 30001,r\n\tat com.weibo.api.motan.rpc.DefaultProvider.invoke(DefaultProvider.java:62)\n\tat com.weibo.api.motan.rpc.AbstractProvider.call(AbstractProvider.java:47)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.process(OpenTracingFilter.java:94)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.processProviderTrace(OpenTracingFilter.java:148)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.filter(OpenTracingFilter.java:58)\n\tat com.weibo.api.motan.protocol.support.ProtocolFilterDecorator$2.call(ProtocolFilterDecorator.java:150)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call$original$doBagGo8(ProviderMessageRouter.java:96)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call$original$doBagGo8$accessor$PEWyOMYz(ProviderMessageRouter.java)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter$auxiliary$s7ixnKeK.call(Unknown Source)\n\tat com.a.eye.skywalking.api.plugin.interceptor.enhance.ClassInstanceMethodsInterceptor.intercept(ClassInstanceMethodsInterceptor.java:66)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call(ProviderMessageRouter.java)\n\tat com.weibo.api.motan.transport.ProviderProtectedMessageRouter.call(ProviderProtectedMessageRouter.java:79)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.handle(ProviderMessageRouter.java:91)\n\tat com.weibo.api.motan.transport.support.DefaultRpcHeartbeatFactory$HeartMessageHandleWrapper.handle(DefaultRpcHeartbeatFactory.java:82)\n\tat com.weibo.api.motan.transport.netty.NettyChannelHandler.processRequest(NettyChannelHandler.java:139)\n\tat com.weibo.api.motan.transport.netty.NettyChannelHandler.access$000(NettyChannelHandler.java:47)\n\tat com.weibo.api.motan.transport.netty.NettyChannelHandler$1.run(NettyChannelHandler.java:116)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NullPointerException\n\tat com.a.eye.skywalking.test.cache.jedis.JedisServiceManager.findWithException(JedisServiceManager.java:49)\n\tat com.a.eye.skywalking.test.cache.CacheServiceImpl.findCacheWithException(CacheServiceImpl.java:46)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat com.weibo.api.motan.rpc.DefaultProvider.invoke(DefaultProvider.java:57)\n\t... 19 more\ncom.weibo.api.motan.exception.MotanBizException: error_message: provider call process error, status: 503, error_code: 30001,r\n\tat com.weibo.api.motan.rpc.DefaultProvider.invoke(DefaultProvider.java:62)\n\tat com.weibo.api.motan.rpc.AbstractProvider.call(AbstractProvider.java:47)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.process(OpenTracingFilter.java:94)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.processProviderTrace(OpenTracingFilter.java:148)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.filter(OpenTracingFilter.java:58)\n\tat com.weibo.api.motan.protocol.support.ProtocolFilterDecorator$2.call(ProtocolFilterDecorator.java:150)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call$original$doBagGo8(ProviderMessageRouter.java:96)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call$original$doBagGo8$accessor$PEWyOMYz(ProviderMessageRouter.java)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter$auxiliary$s7ixnKeK.call(Unknown Source)\n\tat com.a.eye.skywalking.api.plugin.interceptor.enhance.ClassInstanceMethodsInterceptor.intercept(ClassInstanceMethodsInterceptor.java:66)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call(ProviderMessageRouter.java)\n\tat com.weibo.api.motan.", "stack": "com.weibo.api.motan.exception.MotanBizException: error_message: provider call process error, status: 503, error_code: 30001,r\n\tat com.weibo.api.motan.rpc.DefaultProvider.invoke(DefaultProvider.java:62)\n\tat com.weibo.api.motan.rpc.AbstractProvider.call(AbstractProvider.java:47)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.process(OpenTracingFilter.java:94)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.processProviderTrace(OpenTracingFilter.java:148)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.filter(OpenTracingFilter.java:58)\n\tat com.weibo.api.motan.protocol.support.ProtocolFilterDecorator$2.call(ProtocolFilterDecorator.java:150)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call$original$doBagGo8(ProviderMessageRouter.java:96)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call$original$doBagGo8$accessor$PEWyOMYz(ProviderMessageRouter.java)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter$auxiliary$s7ixnKeK.call(Unknown Source)\n\tat com.a.eye.skywalking.api.plugin.interceptor.enhance.ClassInstanceMethodsInterceptor.intercept(ClassInstanceMethodsInterceptor.java:66)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call(ProviderMessageRouter.java)\n\tat com.weibo.api.motan.transport.ProviderProtectedMessageRouter.call(ProviderProtectedMessageRouter.java:79)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.handle(ProviderMessageRouter.java:91)\n\tat com.weibo.api.motan.transport.support.DefaultRpcHeartbeatFactory$HeartMessageHandleWrapper.handle(DefaultRpcHeartbeatFactory.java:82)\n\tat com.weibo.api.motan.transport.netty.NettyChannelHandler.processRequest(NettyChannelHandler.java:139)\n\tat com.weibo.api.motan.transport.netty.NettyChannelHandler.access$000(NettyChannelHandler.java:47)\n\tat com.weibo.api.motan.transport.netty.NettyChannelHandler$1.run(NettyChannelHandler.java:116)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NullPointerException\n\tat com.a.eye.skywalking.test.cache.jedis.JedisServiceManager.findWithException(JedisServiceManager.java:49)\n\tat com.a.eye.skywalking.test.cache.CacheServiceImpl.findCacheWithException(CacheServiceImpl.java:46)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat com.weibo.api.motan.rpc.DefaultProvider.invoke(DefaultProvider.java:57)\n\t... 19 more\ncom.weibo.api.motan.exception.MotanBizException: error_message: provider call process error, status: 503, error_code: 30001,r\n\tat com.weibo.api.motan.rpc.DefaultProvider.invoke(DefaultProvider.java:62)\n\tat com.weibo.api.motan.rpc.AbstractProvider.call(AbstractProvider.java:47)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.process(OpenTracingFilter.java:94)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.processProviderTrace(OpenTracingFilter.java:148)\n\tat com.weibo.api.motan.filter.opentracing.OpenTracingFilter.filter(OpenTracingFilter.java:58)\n\tat com.weibo.api.motan.protocol.support.ProtocolFilterDecorator$2.call(ProtocolFilterDecorator.java:150)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call$original$doBagGo8(ProviderMessageRouter.java:96)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call$original$doBagGo8$accessor$PEWyOMYz(ProviderMessageRouter.java)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter$auxiliary$s7ixnKeK.call(Unknown Source)\n\tat com.a.eye.skywalking.api.plugin.interceptor.enhance.ClassInstanceMethodsInterceptor.intercept(ClassInstanceMethodsInterceptor.java:66)\n\tat com.weibo.api.motan.transport.ProviderMessageRouter.call(ProviderMessageRouter.java)\n\tat com.weibo.api.motan.",
"message": "error_message: provider call process error, status: 503, error_code: 30001,r\u003d0",
"special.character": "\'\" \\ /" "special.character": "\'\" \\ /"
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册