Skip to content

serialize/deserialize field with default value mistake #851

@KolorYan

Description

@KolorYan

Describe the bug

    public static void main(String[] args) {

        A param = new  A();
        param.setI(null);
        System.out.println(param);
        // console print "null"

        Kryo kryo = new Kryo();
        kryo.setRegistrationRequired(false);

        kryo.setDefaultSerializer(CompatibleFieldSerializer.class);

        Output output = getOutput();
        kryo.writeClassAndObject(output, param);

        param = (A) kryo.readClassAndObject(new Input(output.toBytes()));

        System.out.println(param);
        // console print 10
    }

    public static class A {
        private Integer i = 10;

        public Integer getI() {
            return i;
        }

        public void setI(Integer i) {
            this.i = i;
        }
        
        @Override
        public String toString() {
            return String.valueOf(i);
        }

    }

Environment:

  • Kryo Version: 5.2.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions