@@ -58,18 +58,18 @@ type FailureConverter interface {
5858type knownErrorFailureConverter struct {}
5959
6060type serializedHandlerError struct {
61- Type string `json:"type,omitempty"`
62- Retryable string `json:"retryable ,omitempty"`
61+ Type string `json:"type,omitempty"`
62+ RetryableOverride * bool `json:"retryableOverride ,omitempty"`
6363}
6464
6565func (e serializedHandlerError ) RetryBehavior () HandlerErrorRetryBehavior {
66- switch e .Retryable {
67- case "true" :
66+ if e .RetryableOverride == nil {
67+ return HandlerErrorRetryBehaviorUnspecified
68+ }
69+ if * e .RetryableOverride {
6870 return HandlerErrorRetryBehaviorRetryable
69- case "false" :
71+ } else {
7072 return HandlerErrorRetryBehaviorNonRetryable
71- default :
72- return HandlerErrorRetryBehaviorUnspecified
7373 }
7474}
7575
@@ -96,16 +96,16 @@ func (e knownErrorFailureConverter) ErrorToFailure(err error) (Failure, error) {
9696 }
9797 return f , nil
9898 case * HandlerError :
99- if typedErr .originalFailure != nil {
100- return * typedErr .originalFailure , nil
99+ if typedErr .OriginalFailure != nil {
100+ return * typedErr .OriginalFailure , nil
101101 }
102102 // Temporary workaround for compatibility with old SDKs that don't support handler error messages.
103103 if typedErr .Message == "" && typedErr .Cause != nil {
104104 return e .ErrorToFailure (typedErr .Cause )
105105 }
106106 data := serializedHandlerError {
107- Type : string (typedErr .Type ),
108- Retryable : typedErr .retryBehaviorAsString (),
107+ Type : string (typedErr .Type ),
108+ RetryableOverride : typedErr .retryBehaviorAsOptionalBool (),
109109 }
110110 var details []byte
111111 details , err := json .Marshal (data )
@@ -131,8 +131,8 @@ func (e knownErrorFailureConverter) ErrorToFailure(err error) (Failure, error) {
131131
132132 return f , nil
133133 case * OperationError :
134- if typedErr .originalFailure != nil {
135- return * typedErr .originalFailure , nil
134+ if typedErr .OriginalFailure != nil {
135+ return * typedErr .OriginalFailure , nil
136136 }
137137 // Temporary workaround for compatibility with old SDKs that don't support operation error messages.
138138 if typedErr .Message == "" && typedErr .Cause != nil {
@@ -184,7 +184,7 @@ func (e knownErrorFailureConverter) FailureToError(f Failure) (error, error) {
184184 StackTrace : f .StackTrace ,
185185 Type : HandlerErrorType (se .Type ),
186186 RetryBehavior : se .RetryBehavior (),
187- originalFailure : & f ,
187+ OriginalFailure : & f ,
188188 }
189189 if f .Cause != nil {
190190 he .Cause , err = e .FailureToError (* f .Cause )
@@ -203,7 +203,7 @@ func (e knownErrorFailureConverter) FailureToError(f Failure) (error, error) {
203203 Message : f .Message ,
204204 StackTrace : f .StackTrace ,
205205 State : OperationState (se .State ),
206- originalFailure : & f ,
206+ OriginalFailure : & f ,
207207 }
208208 if f .Cause != nil {
209209 oe .Cause , err = e .FailureToError (* f .Cause )
0 commit comments