From fd5ed6472923624f63b584b6287c6ec4ddceced8 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Fri, 12 Feb 2021 17:10:35 +0300 Subject: [PATCH] metadata: fix nil metadata from FromIncoming/FromOutgoing context Signed-off-by: Vasiliy Tolstov --- metadata/context.go | 6 +++--- metadata/metadata_test.go | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/metadata/context.go b/metadata/context.go index b7540c14..482d801a 100644 --- a/metadata/context.go +++ b/metadata/context.go @@ -16,7 +16,7 @@ func FromIncomingContext(ctx context.Context) (Metadata, bool) { return nil, false } md, ok := ctx.Value(mdIncomingKey{}).(*rawMetadata) - if !ok { + if !ok || md.md == nil { return nil, false } return md.md, ok @@ -29,7 +29,7 @@ func FromOutgoingContext(ctx context.Context) (Metadata, bool) { return nil, false } md, ok := ctx.Value(mdOutgoingKey{}).(*rawMetadata) - if !ok { + if !ok || md.md == nil { return nil, false } return md.md, ok @@ -44,7 +44,7 @@ func FromContext(ctx context.Context) (Metadata, bool) { return nil, false } md, ok := ctx.Value(mdKey{}).(*rawMetadata) - if !ok { + if !ok || md.md == nil { return nil, false } return md.md, ok diff --git a/metadata/metadata_test.go b/metadata/metadata_test.go index d1b91efb..f580f5aa 100644 --- a/metadata/metadata_test.go +++ b/metadata/metadata_test.go @@ -2,7 +2,6 @@ package metadata import ( "context" - "fmt" "testing" ) @@ -25,7 +24,9 @@ func TestPassing(t *testing.T) { if !ok { t.Fatalf("missing metadata from outgoing context") } - fmt.Printf("%#+v\n", md) + if v, ok := md.Get("Key1"); !ok || v != "Val1_new" { + t.Fatalf("invalid metadata value %#+v", md) + } } func TestMerge(t *testing.T) {