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) {