From 507b6b06f3cac813d88703a0e6c36a196fbc4704 Mon Sep 17 00:00:00 2001 From: wusheng Date: Fri, 3 Mar 2017 16:24:31 +0800 Subject: [PATCH] Fix tag.get NullPointException --- .../com/a/eye/skywalking/trace/tag/BooleanTag.java | 12 +++++++----- .../java/com/a/eye/skywalking/trace/tag/IntTag.java | 4 +++- .../com/a/eye/skywalking/trace/tag/ShortTag.java | 4 +++- 3 files changed, 13 insertions(+), 7 deletions(-) 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 25de949d9..ac3db515e 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 @@ -7,7 +7,7 @@ import com.a.eye.skywalking.trace.Span; * * Created by wusheng on 2017/2/17. */ -public class BooleanTag extends AbstractTag{ +public class BooleanTag extends AbstractTag { public BooleanTag(String key) { super(key); } @@ -18,8 +18,8 @@ public class BooleanTag extends AbstractTag{ } /** - * 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. + * 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 @@ -27,9 +27,11 @@ public class BooleanTag extends AbstractTag{ @Override public Boolean get(Span span) { Object tagValue = span.getTag(super.key); - if(tagValue instanceof Boolean){ + if (tagValue == null) { + return null; + } else if (tagValue instanceof Boolean) { return (Boolean)tagValue; - }else { + } 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 2157ff993..8af1fec9a 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 @@ -27,7 +27,9 @@ public class IntTag extends AbstractTag { @Override public Integer get(Span span) { Object tagValue = span.getTag(super.key); - if(tagValue instanceof Integer){ + if (tagValue == null) { + return null; + } else 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 5d0116e03..ebd93a607 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 @@ -26,7 +26,9 @@ public class ShortTag extends AbstractTag { */ @Override public Short get(Span span) { Object tagValue = span.getTag(super.key); - if(tagValue instanceof Short){ + if (tagValue == null) { + return null; + } else if(tagValue instanceof Short){ return (Short)tagValue; }else { return Short.valueOf(tagValue.toString());