diff --git a/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/BooleanTag.java b/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/BooleanTag.java index 6a6cd106b..25de949d9 100644 --- a/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/BooleanTag.java +++ b/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/BooleanTag.java @@ -17,7 +17,20 @@ public class BooleanTag extends AbstractTag{ span.setTag(key, tagValue); } - @Override public Boolean get(Span span) { - return (Boolean)span.getTag(super.key); + /** + * Get a tag value, type of {@link Boolean}. + * After akka-message/serialize, all tags values are type of {@link String}, convert to {@link Boolean}, if necessary. + * + * @param span + * @return tag value + */ + @Override + public Boolean get(Span span) { + Object tagValue = span.getTag(super.key); + if(tagValue instanceof Boolean){ + return (Boolean)tagValue; + }else { + return Boolean.valueOf(tagValue.toString()); + } } } diff --git a/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/IntTag.java b/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/IntTag.java index 758374ada..2157ff993 100644 --- a/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/IntTag.java +++ b/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/IntTag.java @@ -17,7 +17,20 @@ public class IntTag extends AbstractTag { span.setTag(super.key, tagValue); } - @Override public Integer get(Span span) { - return (Integer)span.getTag(super.key); + /** + * Get a tag value, type of {@link Integer}. + * After akka-message/serialize, all tags values are type of {@link String}, convert to {@link Integer}, if necessary. + * + * @param span + * @return tag value + */ + @Override + public Integer get(Span span) { + Object tagValue = span.getTag(super.key); + if(tagValue instanceof Integer){ + return (Integer)tagValue; + }else { + return Integer.valueOf(tagValue.toString()); + } } } diff --git a/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/ShortTag.java b/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/ShortTag.java index ce81ea060..5d0116e03 100644 --- a/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/ShortTag.java +++ b/skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/tag/ShortTag.java @@ -17,7 +17,19 @@ public class ShortTag extends AbstractTag { span.setTag(super.key, tagValue); } + /** + * Get a tag value, type of {@link Short}. + * After akka-message/serialize, all tags values are type of {@link String}, convert to {@link Short}, if necessary. + * + * @param span + * @return tag value + */ @Override public Short get(Span span) { - return (Short)span.getTag(super.key); + Object tagValue = span.getTag(super.key); + if(tagValue instanceof Short){ + return (Short)tagValue; + }else { + return Short.valueOf(tagValue.toString()); + } } }