This is an automated email from the ASF dual-hosted git repository. wusheng pushed a commit to branch 6.0 in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git
The following commit(s) were added to refs/heads/6.0 by this push: new b8206b8 [Agent] Apache http client plugin bug (#1448) b8206b8 is described below commit b8206b8cecd787891f1ace550ecd9550d7bec1bf Author: 彭勇升 pengys <8082...@qq.com> AuthorDate: Fri Jul 13 12:51:41 2018 +0800 [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. --- .../v4/HttpClientExecuteInterceptor.java | 40 +++++++++------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java index 3688e39..5d2cf29 100644 --- a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java @@ -18,23 +18,14 @@ 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.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 { @@ -73,16 +64,19 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc return ret; } - HttpResponse response = (HttpResponse)ret; - StatusLine responseStatusLine = response.getStatusLine(); - if (responseStatusLine != null) { - int statusCode = responseStatusLine.getStatusCode(); - AbstractSpan span = ContextManager.activeSpan(); - if (statusCode >= 400) { - span.errorOccurred(); - Tags.STATUS_CODE.set(span, Integer.toString(statusCode)); + if (ret != null) { + HttpResponse response = (HttpResponse)ret; + StatusLine responseStatusLine = response.getStatusLine(); + if (responseStatusLine != null) { + int statusCode = responseStatusLine.getStatusCode(); + AbstractSpan span = ContextManager.activeSpan(); + if (statusCode >= 400) { + span.errorOccurred(); + Tags.STATUS_CODE.set(span, Integer.toString(statusCode)); + } } } + ContextManager.stopSpan(); return ret; }