Team_RPCtester created THRIFT-5801: -------------------------------------- Summary: Handling Default Values for Optional Container Type Fields Key: THRIFT-5801 URL: https://issues.apache.org/jira/browse/THRIFT-5801 Project: Thrift Issue Type: Bug Affects Versions: 0.20.0, 0.19.0 Reporter: Team_RPCtester
Hi, We discover an inconsistent behavior illustrated by the following example. {code:java} namespace go commonResourcestruct StructClass_0 { 1: optional list<string, string> f_1 = ["a", "b"], } service DataService { StructClass_0 Method_1(1: StructClass_0 agr_method_1) } {code} When default values are set for optional container type fields (e.g., lists, sets), these fields are not automatically initialized in Go if not explicitly set, whereas in other languages, these container type fields are automatically initialized according to the default values. For example, in the Go client side, our code are as follows: {code:java} agr_method_1_0 := commonResource.NewStructClass_0() fmt.Println(agr_method_1_0) // method_1_re_agr_method_1_0: StructClass_0({F_1:<nil>}) {code} In the Python client side: {code:java} agr_method_1 = StructClass_0() print(agr_method_1) # agr_method_1: StructClass_0(f_1-[’a’,’b’]) {code} In Go, the field f_1 is nil, while in Python, the field f_1 is automatically set to its default value ['a', 'b']. Can you help check the issue? Thank you. -- This message was sent by Atlassian Jira (v8.20.10#820010)