THRIFT-2904 json_protocol_test.go fails
Client: Go
Patch: Jens Geyer
diff --git a/lib/go/thrift/json_protocol.go b/lib/go/thrift/json_protocol.go
index bd89cb0..41cd218 100644
--- a/lib/go/thrift/json_protocol.go
+++ b/lib/go/thrift/json_protocol.go
@@ -310,12 +310,21 @@
}
// read size
- iSize, err := p.ReadI64()
+ iSize, e := p.ReadI64()
+ if e != nil {
+ return keyType, valueType, size, e
+ }
size = int(iSize)
- return keyType, valueType, size, err
+
+ _, e = p.ParseObjectStart()
+ return keyType, valueType, size, e
}
func (p *TJSONProtocol) ReadMapEnd() error {
+ e := p.ParseObjectEnd()
+ if e != nil {
+ return e
+ }
return p.ParseListEnd()
}
diff --git a/lib/go/thrift/json_protocol_test.go b/lib/go/thrift/json_protocol_test.go
index 8542a96..cd49273 100644
--- a/lib/go/thrift/json_protocol_test.go
+++ b/lib/go/thrift/json_protocol_test.go
@@ -640,7 +640,10 @@
t.Fatalf("Bad json-decoded value for %s %v, wrote: '%s', expected: '%v'", thetype, value, s, v)
}
}
- trans.Reset()
+ }
+ err = p.ReadMapEnd()
+ if err != nil {
+ t.Fatalf("Error while reading map end: %s", err.Error())
}
trans.Close()
}
diff --git a/lib/go/thrift/serializer_types.go b/lib/go/thrift/serializer_types.go
index efbcde8..0549ba8 100644
--- a/lib/go/thrift/serializer_types.go
+++ b/lib/go/thrift/serializer_types.go
@@ -97,84 +97,130 @@
func TestEnumPtr(v TestEnum) *TestEnum { return &v }
type TestStruct struct {
- On bool `thrift:"on,1"`
- B int8 `thrift:"b,2"`
- Int16 int16 `thrift:"int16,3"`
- Int32 int32 `thrift:"int32,4"`
- Int64 int64 `thrift:"int64,5"`
- D float64 `thrift:"d,6"`
- St string `thrift:"st,7"`
- Bin []byte `thrift:"bin,8"`
- StringMap map[string]string `thrift:"stringMap,9"`
- StringList []string `thrift:"stringList,10"`
- StringSet map[string]bool `thrift:"stringSet,11"`
- E TestEnum `thrift:"e,12"`
+ On bool `thrift:"on,1" json:"on"`
+ B int8 `thrift:"b,2" json:"b"`
+ Int16 int16 `thrift:"int16,3" json:"int16"`
+ Int32 int32 `thrift:"int32,4" json:"int32"`
+ Int64 int64 `thrift:"int64,5" json:"int64"`
+ D float64 `thrift:"d,6" json:"d"`
+ St string `thrift:"st,7" json:"st"`
+ Bin []byte `thrift:"bin,8" json:"bin"`
+ StringMap map[string]string `thrift:"stringMap,9" json:"stringMap"`
+ StringList []string `thrift:"stringList,10" json:"stringList"`
+ StringSet map[string]bool `thrift:"stringSet,11" json:"stringSet"`
+ E TestEnum `thrift:"e,12" json:"e"`
}
func NewTestStruct() *TestStruct {
- rval := &TestStruct{}
- return rval
+ return &TestStruct{}
}
+func (p *TestStruct) GetOn() bool {
+ return p.On
+}
+
+func (p *TestStruct) GetB() int8 {
+ return p.B
+}
+
+func (p *TestStruct) GetInt16() int16 {
+ return p.Int16
+}
+
+func (p *TestStruct) GetInt32() int32 {
+ return p.Int32
+}
+
+func (p *TestStruct) GetInt64() int64 {
+ return p.Int64
+}
+
+func (p *TestStruct) GetD() float64 {
+ return p.D
+}
+
+func (p *TestStruct) GetSt() string {
+ return p.St
+}
+
+func (p *TestStruct) GetBin() []byte {
+ return p.Bin
+}
+
+func (p *TestStruct) GetStringMap() map[string]string {
+ return p.StringMap
+}
+
+func (p *TestStruct) GetStringList() []string {
+ return p.StringList
+}
+
+func (p *TestStruct) GetStringSet() map[string]bool {
+ return p.StringSet
+}
+
+func (p *TestStruct) GetE() TestEnum {
+ return p.E
+}
func (p *TestStruct) Read(iprot TProtocol) error {
if _, err := iprot.ReadStructBegin(); err != nil {
- return fmt.Errorf("%T read error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T read error: ", p), err)
}
for {
_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
if err != nil {
- return fmt.Errorf("%T field %d read error: %s", p, fieldId, err)
+ return PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
}
if fieldTypeId == STOP {
break
}
switch fieldId {
case 1:
- if err := p.readField1(iprot); err != nil {
+ if err := p.ReadField1(iprot); err != nil {
return err
}
case 2:
- if err := p.readField2(iprot); err != nil {
+ if err := p.ReadField2(iprot); err != nil {
return err
}
case 3:
- if err := p.readField3(iprot); err != nil {
+ if err := p.ReadField3(iprot); err != nil {
return err
}
case 4:
- if err := p.readField4(iprot); err != nil {
+ if err := p.ReadField4(iprot); err != nil {
return err
}
case 5:
- if err := p.readField5(iprot); err != nil {
+ if err := p.ReadField5(iprot); err != nil {
return err
}
case 6:
- if err := p.readField6(iprot); err != nil {
+ if err := p.ReadField6(iprot); err != nil {
return err
}
case 7:
- if err := p.readField7(iprot); err != nil {
+ if err := p.ReadField7(iprot); err != nil {
return err
}
case 8:
- if err := p.readField8(iprot); err != nil {
+ if err := p.ReadField8(iprot); err != nil {
return err
}
case 9:
- if err := p.readField9(iprot); err != nil {
+ if err := p.ReadField9(iprot); err != nil {
return err
}
case 10:
- if err := p.readField10(iprot); err != nil {
+ if err := p.ReadField10(iprot); err != nil {
return err
}
case 11:
- if err := p.readField11(iprot); err != nil {
+ if err := p.ReadField11(iprot); err != nil {
return err
}
case 12:
- if err := p.readField12(iprot); err != nil {
+ if err := p.ReadField12(iprot); err != nil {
return err
}
default:
@@ -187,23 +233,23 @@
}
}
if err := iprot.ReadStructEnd(); err != nil {
- return fmt.Errorf("%T read struct end error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
}
return nil
}
-func (p *TestStruct) readField1(iprot TProtocol) error {
+func (p *TestStruct) ReadField1(iprot TProtocol) error {
if v, err := iprot.ReadBool(); err != nil {
- return fmt.Errorf("error reading field 1: %s", err)
+ return PrependError("error reading field 1: ", err)
} else {
p.On = v
}
return nil
}
-func (p *TestStruct) readField2(iprot TProtocol) error {
+func (p *TestStruct) ReadField2(iprot TProtocol) error {
if v, err := iprot.ReadByte(); err != nil {
- return fmt.Errorf("error reading field 2: %s", err)
+ return PrependError("error reading field 2: ", err)
} else {
temp := int8(v)
p.B = temp
@@ -211,135 +257,135 @@
return nil
}
-func (p *TestStruct) readField3(iprot TProtocol) error {
+func (p *TestStruct) ReadField3(iprot TProtocol) error {
if v, err := iprot.ReadI16(); err != nil {
- return fmt.Errorf("error reading field 3: %s", err)
+ return PrependError("error reading field 3: ", err)
} else {
p.Int16 = v
}
return nil
}
-func (p *TestStruct) readField4(iprot TProtocol) error {
+func (p *TestStruct) ReadField4(iprot TProtocol) error {
if v, err := iprot.ReadI32(); err != nil {
- return fmt.Errorf("error reading field 4: %s", err)
+ return PrependError("error reading field 4: ", err)
} else {
p.Int32 = v
}
return nil
}
-func (p *TestStruct) readField5(iprot TProtocol) error {
+func (p *TestStruct) ReadField5(iprot TProtocol) error {
if v, err := iprot.ReadI64(); err != nil {
- return fmt.Errorf("error reading field 5: %s", err)
+ return PrependError("error reading field 5: ", err)
} else {
p.Int64 = v
}
return nil
}
-func (p *TestStruct) readField6(iprot TProtocol) error {
+func (p *TestStruct) ReadField6(iprot TProtocol) error {
if v, err := iprot.ReadDouble(); err != nil {
- return fmt.Errorf("error reading field 6: %s", err)
+ return PrependError("error reading field 6: ", err)
} else {
p.D = v
}
return nil
}
-func (p *TestStruct) readField7(iprot TProtocol) error {
+func (p *TestStruct) ReadField7(iprot TProtocol) error {
if v, err := iprot.ReadString(); err != nil {
- return fmt.Errorf("error reading field 7: %s", err)
+ return PrependError("error reading field 7: ", err)
} else {
p.St = v
}
return nil
}
-func (p *TestStruct) readField8(iprot TProtocol) error {
+func (p *TestStruct) ReadField8(iprot TProtocol) error {
if v, err := iprot.ReadBinary(); err != nil {
- return fmt.Errorf("error reading field 8: %s", err)
+ return PrependError("error reading field 8: ", err)
} else {
p.Bin = v
}
return nil
}
-func (p *TestStruct) readField9(iprot TProtocol) error {
+func (p *TestStruct) ReadField9(iprot TProtocol) error {
_, _, size, err := iprot.ReadMapBegin()
if err != nil {
- return fmt.Errorf("error reading map begin: %s")
+ return PrependError("error reading map begin: ", err)
}
tMap := make(map[string]string, size)
p.StringMap = tMap
for i := 0; i < size; i++ {
var _key0 string
if v, err := iprot.ReadString(); err != nil {
- return fmt.Errorf("error reading field 0: %s", err)
+ return PrependError("error reading field 0: ", err)
} else {
_key0 = v
}
var _val1 string
if v, err := iprot.ReadString(); err != nil {
- return fmt.Errorf("error reading field 0: %s", err)
+ return PrependError("error reading field 0: ", err)
} else {
_val1 = v
}
p.StringMap[_key0] = _val1
}
if err := iprot.ReadMapEnd(); err != nil {
- return fmt.Errorf("error reading map end: %s")
+ return PrependError("error reading map end: ", err)
}
return nil
}
-func (p *TestStruct) readField10(iprot TProtocol) error {
+func (p *TestStruct) ReadField10(iprot TProtocol) error {
_, size, err := iprot.ReadListBegin()
if err != nil {
- return fmt.Errorf("error reading list begin: %s")
+ return PrependError("error reading list begin: ", err)
}
tSlice := make([]string, 0, size)
p.StringList = tSlice
for i := 0; i < size; i++ {
var _elem2 string
if v, err := iprot.ReadString(); err != nil {
- return fmt.Errorf("error reading field 0: %s", err)
+ return PrependError("error reading field 0: ", err)
} else {
_elem2 = v
}
p.StringList = append(p.StringList, _elem2)
}
if err := iprot.ReadListEnd(); err != nil {
- return fmt.Errorf("error reading list end: %s")
+ return PrependError("error reading list end: ", err)
}
return nil
}
-func (p *TestStruct) readField11(iprot TProtocol) error {
+func (p *TestStruct) ReadField11(iprot TProtocol) error {
_, size, err := iprot.ReadSetBegin()
if err != nil {
- return fmt.Errorf("error reading set begin: %s")
+ return PrependError("error reading set begin: ", err)
}
tSet := make(map[string]bool, size)
p.StringSet = tSet
for i := 0; i < size; i++ {
var _elem3 string
if v, err := iprot.ReadString(); err != nil {
- return fmt.Errorf("error reading field 0: %s", err)
+ return PrependError("error reading field 0: ", err)
} else {
_elem3 = v
}
p.StringSet[_elem3] = true
}
if err := iprot.ReadSetEnd(); err != nil {
- return fmt.Errorf("error reading set end: %s")
+ return PrependError("error reading set end: ", err)
}
return nil
}
-func (p *TestStruct) readField12(iprot TProtocol) error {
+func (p *TestStruct) ReadField12(iprot TProtocol) error {
if v, err := iprot.ReadI32(); err != nil {
- return fmt.Errorf("error reading field 12: %s", err)
+ return PrependError("error reading field 12: ", err)
} else {
temp := TestEnum(v)
p.E = temp
@@ -349,7 +395,7 @@
func (p *TestStruct) Write(oprot TProtocol) error {
if err := oprot.WriteStructBegin("TestStruct"); err != nil {
- return fmt.Errorf("%T write struct begin error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
}
if err := p.writeField1(oprot); err != nil {
return err
@@ -388,201 +434,193 @@
return err
}
if err := oprot.WriteFieldStop(); err != nil {
- return fmt.Errorf("write field stop error: %s", err)
+ return PrependError("write field stop error: ", err)
}
if err := oprot.WriteStructEnd(); err != nil {
- return fmt.Errorf("write struct stop error: %s", err)
+ return PrependError("write struct stop error: ", err)
}
return nil
}
func (p *TestStruct) writeField1(oprot TProtocol) (err error) {
if err := oprot.WriteFieldBegin("on", BOOL, 1); err != nil {
- return fmt.Errorf("%T write field begin error 1:on: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field begin error 1:on: ", p), err)
}
if err := oprot.WriteBool(bool(p.On)); err != nil {
- return fmt.Errorf("%T.on (1) field write error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T.on (1) field write error: ", p), err)
}
if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 1:on: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field end error 1:on: ", p), err)
}
return err
}
func (p *TestStruct) writeField2(oprot TProtocol) (err error) {
if err := oprot.WriteFieldBegin("b", BYTE, 2); err != nil {
- return fmt.Errorf("%T write field begin error 2:b: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field begin error 2:b: ", p), err)
}
if err := oprot.WriteByte(byte(p.B)); err != nil {
- return fmt.Errorf("%T.b (2) field write error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T.b (2) field write error: ", p), err)
}
if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 2:b: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field end error 2:b: ", p), err)
}
return err
}
func (p *TestStruct) writeField3(oprot TProtocol) (err error) {
if err := oprot.WriteFieldBegin("int16", I16, 3); err != nil {
- return fmt.Errorf("%T write field begin error 3:int16: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field begin error 3:int16: ", p), err)
}
if err := oprot.WriteI16(int16(p.Int16)); err != nil {
- return fmt.Errorf("%T.int16 (3) field write error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T.int16 (3) field write error: ", p), err)
}
if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 3:int16: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field end error 3:int16: ", p), err)
}
return err
}
func (p *TestStruct) writeField4(oprot TProtocol) (err error) {
if err := oprot.WriteFieldBegin("int32", I32, 4); err != nil {
- return fmt.Errorf("%T write field begin error 4:int32: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field begin error 4:int32: ", p), err)
}
if err := oprot.WriteI32(int32(p.Int32)); err != nil {
- return fmt.Errorf("%T.int32 (4) field write error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T.int32 (4) field write error: ", p), err)
}
if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 4:int32: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field end error 4:int32: ", p), err)
}
return err
}
func (p *TestStruct) writeField5(oprot TProtocol) (err error) {
if err := oprot.WriteFieldBegin("int64", I64, 5); err != nil {
- return fmt.Errorf("%T write field begin error 5:int64: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field begin error 5:int64: ", p), err)
}
if err := oprot.WriteI64(int64(p.Int64)); err != nil {
- return fmt.Errorf("%T.int64 (5) field write error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T.int64 (5) field write error: ", p), err)
}
if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 5:int64: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field end error 5:int64: ", p), err)
}
return err
}
func (p *TestStruct) writeField6(oprot TProtocol) (err error) {
if err := oprot.WriteFieldBegin("d", DOUBLE, 6); err != nil {
- return fmt.Errorf("%T write field begin error 6:d: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field begin error 6:d: ", p), err)
}
if err := oprot.WriteDouble(float64(p.D)); err != nil {
- return fmt.Errorf("%T.d (6) field write error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T.d (6) field write error: ", p), err)
}
if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 6:d: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field end error 6:d: ", p), err)
}
return err
}
func (p *TestStruct) writeField7(oprot TProtocol) (err error) {
if err := oprot.WriteFieldBegin("st", STRING, 7); err != nil {
- return fmt.Errorf("%T write field begin error 7:st: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field begin error 7:st: ", p), err)
}
if err := oprot.WriteString(string(p.St)); err != nil {
- return fmt.Errorf("%T.st (7) field write error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T.st (7) field write error: ", p), err)
}
if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 7:st: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field end error 7:st: ", p), err)
}
return err
}
func (p *TestStruct) writeField8(oprot TProtocol) (err error) {
- if p.Bin != nil {
- if err := oprot.WriteFieldBegin("bin", STRING, 8); err != nil {
- return fmt.Errorf("%T write field begin error 8:bin: %s", p, err)
- }
- if err := oprot.WriteBinary(p.Bin); err != nil {
- return fmt.Errorf("%T.bin (8) field write error: %s", p, err)
- }
- if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 8:bin: %s", p, err)
- }
+ if err := oprot.WriteFieldBegin("bin", STRING, 8); err != nil {
+ return PrependError(fmt.Sprintf("%T write field begin error 8:bin: ", p), err)
+ }
+ if err := oprot.WriteBinary(p.Bin); err != nil {
+ return PrependError(fmt.Sprintf("%T.bin (8) field write error: ", p), err)
+ }
+ if err := oprot.WriteFieldEnd(); err != nil {
+ return PrependError(fmt.Sprintf("%T write field end error 8:bin: ", p), err)
}
return err
}
func (p *TestStruct) writeField9(oprot TProtocol) (err error) {
- if p.StringMap != nil {
- if err := oprot.WriteFieldBegin("stringMap", MAP, 9); err != nil {
- return fmt.Errorf("%T write field begin error 9:stringMap: %s", p, err)
+ if err := oprot.WriteFieldBegin("stringMap", MAP, 9); err != nil {
+ return PrependError(fmt.Sprintf("%T write field begin error 9:stringMap: ", p), err)
+ }
+ if err := oprot.WriteMapBegin(STRING, STRING, len(p.StringMap)); err != nil {
+ return PrependError("error writing map begin: ", err)
+ }
+ for k, v := range p.StringMap {
+ if err := oprot.WriteString(string(k)); err != nil {
+ return PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
}
- if err := oprot.WriteMapBegin(STRING, STRING, len(p.StringMap)); err != nil {
- return fmt.Errorf("error writing map begin: %s")
+ if err := oprot.WriteString(string(v)); err != nil {
+ return PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
}
- for k, v := range p.StringMap {
- if err := oprot.WriteString(string(k)); err != nil {
- return fmt.Errorf("%T. (0) field write error: %s", p, err)
- }
- if err := oprot.WriteString(string(v)); err != nil {
- return fmt.Errorf("%T. (0) field write error: %s", p, err)
- }
- }
- if err := oprot.WriteMapEnd(); err != nil {
- return fmt.Errorf("error writing map end: %s")
- }
- if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 9:stringMap: %s", p, err)
- }
+ }
+ if err := oprot.WriteMapEnd(); err != nil {
+ return PrependError("error writing map end: ", err)
+ }
+ if err := oprot.WriteFieldEnd(); err != nil {
+ return PrependError(fmt.Sprintf("%T write field end error 9:stringMap: ", p), err)
}
return err
}
func (p *TestStruct) writeField10(oprot TProtocol) (err error) {
- if p.StringList != nil {
- if err := oprot.WriteFieldBegin("stringList", LIST, 10); err != nil {
- return fmt.Errorf("%T write field begin error 10:stringList: %s", p, err)
+ if err := oprot.WriteFieldBegin("stringList", LIST, 10); err != nil {
+ return PrependError(fmt.Sprintf("%T write field begin error 10:stringList: ", p), err)
+ }
+ if err := oprot.WriteListBegin(STRING, len(p.StringList)); err != nil {
+ return PrependError("error writing list begin: ", err)
+ }
+ for _, v := range p.StringList {
+ if err := oprot.WriteString(string(v)); err != nil {
+ return PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
}
- if err := oprot.WriteListBegin(STRING, len(p.StringList)); err != nil {
- return fmt.Errorf("error writing list begin: %s")
- }
- for _, v := range p.StringList {
- if err := oprot.WriteString(string(v)); err != nil {
- return fmt.Errorf("%T. (0) field write error: %s", p, err)
- }
- }
- if err := oprot.WriteListEnd(); err != nil {
- return fmt.Errorf("error writing list end: %s")
- }
- if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 10:stringList: %s", p, err)
- }
+ }
+ if err := oprot.WriteListEnd(); err != nil {
+ return PrependError("error writing list end: ", err)
+ }
+ if err := oprot.WriteFieldEnd(); err != nil {
+ return PrependError(fmt.Sprintf("%T write field end error 10:stringList: ", p), err)
}
return err
}
func (p *TestStruct) writeField11(oprot TProtocol) (err error) {
- if p.StringSet != nil {
- if err := oprot.WriteFieldBegin("stringSet", SET, 11); err != nil {
- return fmt.Errorf("%T write field begin error 11:stringSet: %s", p, err)
+ if err := oprot.WriteFieldBegin("stringSet", SET, 11); err != nil {
+ return PrependError(fmt.Sprintf("%T write field begin error 11:stringSet: ", p), err)
+ }
+ if err := oprot.WriteSetBegin(STRING, len(p.StringSet)); err != nil {
+ return PrependError("error writing set begin: ", err)
+ }
+ for v, _ := range p.StringSet {
+ if err := oprot.WriteString(string(v)); err != nil {
+ return PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
}
- if err := oprot.WriteSetBegin(STRING, len(p.StringSet)); err != nil {
- return fmt.Errorf("error writing set begin: %s")
- }
- for v, _ := range p.StringSet {
- if err := oprot.WriteString(string(v)); err != nil {
- return fmt.Errorf("%T. (0) field write error: %s", p, err)
- }
- }
- if err := oprot.WriteSetEnd(); err != nil {
- return fmt.Errorf("error writing set end: %s")
- }
- if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 11:stringSet: %s", p, err)
- }
+ }
+ if err := oprot.WriteSetEnd(); err != nil {
+ return PrependError("error writing set end: ", err)
+ }
+ if err := oprot.WriteFieldEnd(); err != nil {
+ return PrependError(fmt.Sprintf("%T write field end error 11:stringSet: ", p), err)
}
return err
}
func (p *TestStruct) writeField12(oprot TProtocol) (err error) {
if err := oprot.WriteFieldBegin("e", I32, 12); err != nil {
- return fmt.Errorf("%T write field begin error 12:e: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field begin error 12:e: ", p), err)
}
if err := oprot.WriteI32(int32(p.E)); err != nil {
- return fmt.Errorf("%T.e (12) field write error: %s", p, err)
+ return PrependError(fmt.Sprintf("%T.e (12) field write error: ", p), err)
}
if err := oprot.WriteFieldEnd(); err != nil {
- return fmt.Errorf("%T write field end error 12:e: %s", p, err)
+ return PrependError(fmt.Sprintf("%T write field end error 12:e: ", p), err)
}
return err
}
diff --git a/lib/go/thrift/simple_json_protocol.go b/lib/go/thrift/simple_json_protocol.go
index 6c43c56..c5ee9db 100644
--- a/lib/go/thrift/simple_json_protocol.go
+++ b/lib/go/thrift/simple_json_protocol.go
@@ -910,9 +910,9 @@
line2 := line[0 : len(line)-1]
l := len(line2)
if (l % 4) != 0 {
- pad := 4 - ( l % 4)
- fill := [...]byte { '=', '=', '='}
- line2 = append( line2, fill[:pad]...)
+ pad := 4 - (l % 4)
+ fill := [...]byte{'=', '=', '='}
+ line2 = append(line2, fill[:pad]...)
l = len(line2)
}
output := make([]byte, base64.StdEncoding.DecodedLen(l))
@@ -989,8 +989,8 @@
return err
}
cxt := _ParseContext(p.parseContextStack[len(p.parseContextStack)-1])
- if cxt != _CONTEXT_IN_OBJECT_FIRST && cxt != _CONTEXT_IN_OBJECT_NEXT_KEY {
- e := fmt.Errorf("Expected to be in the Object Context, but not in Object Context")
+ if (cxt != _CONTEXT_IN_OBJECT_FIRST) && (cxt != _CONTEXT_IN_OBJECT_NEXT_KEY) {
+ e := fmt.Errorf("Expected to be in the Object Context, but not in Object Context (%d)", cxt)
return NewTProtocolExceptionWithType(INVALID_DATA, e)
}
line, err := p.reader.ReadString(JSON_RBRACE[0])
@@ -1049,8 +1049,9 @@
if isNull, err := p.readIfNull(); isNull || err != nil {
return err
}
- if _ParseContext(p.parseContextStack[len(p.parseContextStack)-1]) != _CONTEXT_IN_LIST {
- e := fmt.Errorf("Expected to be in the List Context, but not in List Context")
+ cxt := _ParseContext(p.parseContextStack[len(p.parseContextStack)-1])
+ if cxt != _CONTEXT_IN_LIST {
+ e := fmt.Errorf("Expected to be in the List Context, but not in List Context (%d)", cxt)
return NewTProtocolExceptionWithType(INVALID_DATA, e)
}
line, err := p.reader.ReadString(JSON_RBRACKET[0])