[
https://issues.apache.org/jira/browse/THRIFT-5845?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yuxuan Wang resolved THRIFT-5845.
---------------------------------
Fix Version/s: 0.22.0
Resolution: Fixed
> The write error for union fields should be TException
> -----------------------------------------------------
>
> Key: THRIFT-5845
> URL: https://issues.apache.org/jira/browse/THRIFT-5845
> Project: Thrift
> Issue Type: Task
> Components: Go - Compiler
> Affects Versions: 0.21.0
> Reporter: Yuxuan Wang
> Assignee: Yuxuan Wang
> Priority: Major
> Fix For: 0.22.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Currently, when writing an union field and not exactly one field of the union
> is set, we just return a generic error:
> {code:go}
> return fmt.Errorf("%T write union: exactly one field must be set (%d set)",
> p, c)
> {code}
> This makes it very hard for logic like client pool management to decide
> whether a connection can be reused after an error. Making it return a
> TTransportException would resolve the issue.
> But with the codes of TTransportException none is appropriate (the codes are:
> NOT_OPEN, ALREADY_OPEN, TIMED_OUT, END_OF_FILE), so maybe use
> TProtocolException with INVALID_DATA instead.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)