Hi Michael,

thanks for pointing out this serialization concern, I didn't think about it at 
all.

I've wrote a simple test for serialization of patched TreeMap and it works 
without errors for both no-args constructor and constructor with comparator:

public class TreeMapSerialization {
    public static void main(String[] args) throws Exception {
        TreeMap<Integer, String> serialized = new 
TreeMap<>(Comparator.reverseOrder());
        serialized.put(1, "1");
        serialized.put(2, "2");

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(baos);

        oos.writeObject(serialized);
        oos.flush();
        baos.flush();
        oos.close();
        baos.close();

        ByteArrayInputStream bais = new 
ByteArrayInputStream(baos.toByteArray());
        ObjectInputStream ois = new ObjectInputStream(bais);

        TreeMap<Integer, String> deserialized = (TreeMap<Integer, String>) 
ois.readObject();
        deserialized.put(3, "3");

        System.out.println(deserialized);
    }
}


I hope I don't miss anything, so there shouldn't be any serialization issues.

Regards,
Sergey Tsypanov

Reply via email to