You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Yuxuan Wang (Jira)" <ji...@apache.org> on 2025/01/10 17:21:00 UTC
[jira] [Resolved] (THRIFT-5845) The write error for union fields should be TException
[ 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)