From d5112c677b60a11ce9409050dfb2ff9733d1612c Mon Sep 17 00:00:00 2001 From: little-cui Date: Tue, 10 Apr 2018 17:09:24 +0800 Subject: [PATCH] SCB-472 Null point reference in zipkin plugin --- server/plugin/infra/tracing/buildin/span.go | 4 +++- server/plugin/infra/tracing/buildin/span_test.go | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/server/plugin/infra/tracing/buildin/span.go b/server/plugin/infra/tracing/buildin/span.go index 5b8011d9d..3d2008876 100644 --- a/server/plugin/infra/tracing/buildin/span.go +++ b/server/plugin/infra/tracing/buildin/span.go @@ -61,7 +61,9 @@ type Endpoint struct { func (s *Span) FromZipkinSpan(span *zipkincore.Span) { traceId := new(types.TraceID) traceId.Low = uint64(span.TraceID) - traceId.High = uint64(*(span.TraceIDHigh)) + if span.TraceIDHigh != nil { + traceId.High = uint64(*(span.TraceIDHigh)) + } s.TraceID = traceId.ToHex() s.Duration = span.Duration diff --git a/server/plugin/infra/tracing/buildin/span_test.go b/server/plugin/infra/tracing/buildin/span_test.go index c3dceb49e..069e6a9a6 100644 --- a/server/plugin/infra/tracing/buildin/span_test.go +++ b/server/plugin/infra/tracing/buildin/span_test.go @@ -158,4 +158,12 @@ func TestFromZipkinSpan(t *testing.T) { t.FailNow() } fmt.Println(string(b)) + + s = FromZipkinSpan(&zipkincore.Span{}) + b, err = json.Marshal(s) + if err != nil { + fmt.Println("TestFromZipkinSpan Marshal", err) + t.FailNow() + } + fmt.Println(string(b)) }