diff --git a/client/workflow/workflow.go b/client/workflow/workflow.go index 3abed6a..2695d86 100644 --- a/client/workflow/workflow.go +++ b/client/workflow/workflow.go @@ -235,11 +235,11 @@ func (wf *Workflow) DoXa(dbConf dtmcli.DBConf, fn func(db *sql.DB) ([]byte, erro // Interceptor is the middleware for workflow to capture grpc call result func Interceptor(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error { logger.Debugf("grpc client calling: %s%s %v", cc.Target(), method, dtmimp.MustMarshalString(req)) - wf, _ := ctx.Value(wfMeta{}).(*Workflow) - if wf == nil { + wfVal := ctx.Value(wfMeta{}) + if wfVal == nil { return invoker(ctx, method, req, reply, cc, opts...) } - + wf, _ := wfVal.(*Workflow) origin := func() error { ctx1 := dtmgimp.TransInfo2Ctx(ctx, wf.Gid, wf.TransType, wf.currentBranch, wf.currentOp, wf.Dtm) err := invoker(ctx1, method, req, reply, cc, opts...)