Skip to content

Commit 82c6add

Browse files
authored
fix nil pointer (#473)
1 parent 842874c commit 82c6add

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

internal/internal_task_handlers.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,9 @@ ProcessEvents:
667667

668668
func (wth *workflowTaskHandlerImpl) ProcessLocalActivityResult(lar *localActivityResult) (interface{}, error) {
669669
workflowContext := lar.task.wc
670+
workflowContext.Lock()
671+
defer workflowContext.release()
672+
670673
if workflowContext.currentDecisionTask != lar.task.decisionTask {
671674
// The possible case is decision task timeout while waiting for local activity to complete, then server would
672675
// generate a new new decision task, which could be dispatched to this same worker. In that case, the cached
@@ -680,9 +683,6 @@ func (wth *workflowTaskHandlerImpl) ProcessLocalActivityResult(lar *localActivit
680683
return nil, nil
681684
}
682685

683-
workflowContext.Lock()
684-
defer workflowContext.release()
685-
686686
eventDecisions, err := workflowContext.eventHandler.ProcessLocalActivityResult(lar)
687687
if err != nil {
688688
return nil, err

internal/internal_task_pollers.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,9 @@ func (wtp *workflowTaskPoller) processWorkflowTask(workflowTask *workflowTask) e
239239
}
240240

241241
func (wtp *workflowTaskPoller) processLocalActivityResult(lar *localActivityResult) error {
242+
workflowContext := lar.task.wc
243+
decisionStartTime := workflowContext.decisionStartTime
244+
decisionTask := workflowContext.currentDecisionTask
242245
completedRequest, err := wtp.taskHandler.(*workflowTaskHandlerImpl).ProcessLocalActivityResult(lar)
243246
if err != nil {
244247
return err
@@ -247,11 +250,10 @@ func (wtp *workflowTaskPoller) processLocalActivityResult(lar *localActivityResu
247250
return nil
248251
}
249252

250-
workflowContext := lar.task.wc
251-
wtp.metricsScope.Timer(metrics.DecisionExecutionLatency).Record(time.Now().Sub(workflowContext.decisionStartTime))
253+
wtp.metricsScope.Timer(metrics.DecisionExecutionLatency).Record(time.Now().Sub(decisionStartTime))
252254

253255
responseStartTime := time.Now()
254-
if err = wtp.RespondTaskCompleted(completedRequest, workflowContext.currentDecisionTask); err != nil {
256+
if err = wtp.RespondTaskCompleted(completedRequest, decisionTask); err != nil {
255257
return err
256258
}
257259
wtp.metricsScope.Timer(metrics.DecisionResponseLatency).Record(time.Now().Sub(responseStartTime))

0 commit comments

Comments
 (0)