提交 b8206b8c 编写于 作者: 彭勇升 pengys 提交者: wu-sheng

[Agent] Apache http client plugin bug (#1448)

* #1447

Fixed the after method interceptor for the apache http client NPE error when the response is null cause by the doExecute method throw a exception.
上级 5299a68e
...@@ -18,23 +18,14 @@ ...@@ -18,23 +18,14 @@
package org.apache.skywalking.apm.plugin.httpClient.v4; package org.apache.skywalking.apm.plugin.httpClient.v4;
import org.apache.http.HttpHost;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.skywalking.apm.agent.core.context.CarrierItem;
import org.apache.skywalking.apm.agent.core.context.ContextCarrier;
import org.apache.skywalking.apm.agent.core.context.ContextManager;
import org.apache.skywalking.apm.agent.core.context.tag.Tags;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.URL; import java.net.URL;
import org.apache.http.*;
import org.apache.skywalking.apm.agent.core.context.*;
import org.apache.skywalking.apm.agent.core.context.tag.Tags;
import org.apache.skywalking.apm.agent.core.context.trace.*;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.*;
import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterceptor { public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterceptor {
...@@ -73,6 +64,7 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc ...@@ -73,6 +64,7 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc
return ret; return ret;
} }
if (ret != null) {
HttpResponse response = (HttpResponse)ret; HttpResponse response = (HttpResponse)ret;
StatusLine responseStatusLine = response.getStatusLine(); StatusLine responseStatusLine = response.getStatusLine();
if (responseStatusLine != null) { if (responseStatusLine != null) {
...@@ -83,6 +75,8 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc ...@@ -83,6 +75,8 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc
Tags.STATUS_CODE.set(span, Integer.toString(statusCode)); Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
} }
} }
}
ContextManager.stopSpan(); ContextManager.stopSpan();
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册