You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2020/09/29 16:08:19 UTC

[skywalking] branch extension-header-fix created (now 38c2433)

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a change to branch extension-header-fix
in repository https://gitbox.apache.org/repos/asf/skywalking.git.


      at 38c2433  Make the extension header really extendable

This branch includes the following new commits:

     new 38c2433  Make the extension header really extendable

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[skywalking] 01/01: Make the extension header really extendable

Posted by wu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch extension-header-fix
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit 38c243355157db89ccf45a638af1e2ce09f845a9
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Wed Sep 30 00:06:55 2020 +0800

    Make the extension header really extendable
---
 .../apm/agent/core/context/ExtensionContext.java   | 24 +++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ExtensionContext.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ExtensionContext.java
index 8106fa6..e2564a8 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ExtensionContext.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ExtensionContext.java
@@ -18,13 +18,13 @@
 
 package org.apache.skywalking.apm.agent.core.context;
 
-import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
-
 import java.util.Objects;
+import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
+import org.apache.skywalking.apm.util.StringUtil;
 
 /**
- * Extension context, It provides the interaction capabilities between the agents
- * deployed in upstream and downstream services.
+ * Extension context, It provides the interaction capabilities between the agents deployed in upstream and downstream
+ * services.
  */
 public class ExtensionContext {
 
@@ -46,7 +46,15 @@ public class ExtensionContext {
      * Deserialize data from {@link String}
      */
     void deserialize(String value) {
-        this.skipAnalysis = Objects.equals(value, "1");
+        if (StringUtil.isEmpty(value)) {
+            return;
+        }
+        final String[] extensionParts = value.split("-");
+        // All parts of the extension header are optional.
+        // only try to read it when it exist.
+        if (extensionParts.length > 0) {
+            this.skipAnalysis = Objects.equals(extensionParts[0], "1");
+        }
     }
 
     /**
@@ -87,8 +95,10 @@ public class ExtensionContext {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
         ExtensionContext that = (ExtensionContext) o;
         return skipAnalysis == that.skipAnalysis;
     }