package bugs;

public class Serializable implements java.io.Serializable {
    public static void main(String argv[]) throws Exception {
        org.apache.xerces.parsers.DOMParser parser = new org.apache.xerces.parsers.DOMParser();
        parser.setFeature("http://xml.org/sax/features/validation", true);
        //parser.setFeature("http://apache.org/xml/features/dom/defer-node-expansion", false);
        java.io.Reader reader = new java.io.StringReader(
            "<?xml version='1.0' encoding='US-ASCII'?>\n"+
            "<!DOCTYPE root [\n"+
            "<!ELEMENT root EMPTY>\n"+
            "]>\n"+
            "<root/>"
            );
        parser.parse(new org.xml.sax.InputSource(reader));
        org.w3c.dom.Document document1 = parser.getDocument();
        System.out.println("document1.class.name: "+document1.getClass().getName());
        System.out.println("document1.doctype: "+document1.getDoctype());
        final String FILENAME = "serializable.ser";
        java.io.ObjectOutputStream out = new java.io.ObjectOutputStream(new java.io.FileOutputStream(FILENAME));
        out.writeObject(document1);
        out.flush();
        out.close();
        java.io.ObjectInputStream in = new java.io.ObjectInputStream(new java.io.FileInputStream(FILENAME));
        org.w3c.dom.Document document2 = (org.w3c.dom.Document)in.readObject();
        in.close();
        System.out.println("document2.class.name: "+document2.getClass().getName());
        System.out.println("document2.doctype: "+document2.getDoctype());
    }
}
