After upgrading to 1.3 I've noticed that the decoder does not wrap the original error in the following test case as it used to:
type testFaultyReader struct {
}
func (t testFaultyReader) Read(p []byte) (n int, err error) {
return 0, net.ErrClosed
}
func TestUgorjiErrorPropagation(t *testing.T) {
var r testFaultyReader
h := &codec.JsonHandle{}
h.ReaderBufferSize = 4096 // Commenting this out makes the test pass
dec := codec.NewDecoder(r, h)
var v any
err := dec.Decode(&v)
if !errors.Is(err, net.ErrClosed) {
t.Fatal(err)
}
}