From 5457bdf56b8a772d68479c93b091da6d0c60aea4 Mon Sep 17 00:00:00 2001 From: "M. Mert Yildiran" Date: Thu, 14 Jul 2022 13:51:06 +0300 Subject: [PATCH] Handle `item.Pair.Response.Payload` is `nil` case in AMQP --- tap/extensions/amqp/main.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tap/extensions/amqp/main.go b/tap/extensions/amqp/main.go index 4662c40d7..cfd001984 100644 --- a/tap/extensions/amqp/main.go +++ b/tap/extensions/amqp/main.go @@ -264,9 +264,7 @@ func (d dissecting) Dissect(b *bufio.Reader, reader api.TcpReader, options *api. func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, resolvedDestination string, namespace string) *api.Entry { request := item.Pair.Request.Payload.(map[string]interface{}) - response := item.Pair.Response.Payload.(map[string]interface{}) reqDetails := request["details"].(map[string]interface{}) - resDetails := response["details"].(map[string]interface{}) elapsedTime := item.Pair.Response.CaptureTime.Sub(item.Pair.Request.CaptureTime).Round(time.Millisecond).Milliseconds() if elapsedTime < 0 { @@ -274,7 +272,14 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, } reqDetails["method"] = request["method"] - resDetails["method"] = response["method"] + + var resDetails map[string]interface{} + if item.Pair.Response.Payload != nil { + response := item.Pair.Response.Payload.(map[string]interface{}) + resDetails := response["details"].(map[string]interface{}) + resDetails["method"] = response["method"] + } + return &api.Entry{ Protocol: protocol.ProtocolSummary, Capture: item.Capture,