You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by wu...@apache.org on 2018/07/13 04:51:43 UTC
[incubator-skywalking] branch hotfix/5.0.0-beta2 updated: [Agent]
Apache http client plugin bug (#1448)
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch hotfix/5.0.0-beta2
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git
The following commit(s) were added to refs/heads/hotfix/5.0.0-beta2 by this push:
new 3b94761 [Agent] Apache http client plugin bug (#1448)
3b94761 is described below
commit 3b9476158bf2b3104d5d14f51cf2916a7810425f
Author: 彭勇升 pengys <80...@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;
}