Serialization bug

Date view Thread view Subject view Author view

From: Alexandre Oliva (oliva@dcc.unicamp.br)
Date: Tue Dec 01 1998 - 12:01:45 EST


Hi!

Nadia could not find again that other serialization problem I
mentioned, but Alexandre Braga found another problem. I'll be
overloaded till next week, and then I hope I'll be able to get back to
software development :-)

Hope this helps...

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil
------- Start of forwarded message -------
Date: Tue, 1 Dec 1998 14:47:38 -0200 (   )
From: ALEXANDRE MELO BRAGA <972314@dcc.unicamp.br>
To: Alexandre Oliva <oliva@dcc.unicamp.br>
Subject: bug do kaffe
Message-ID: <Pine.GSO.4.05.9812011440450.16671-100000@iguacu.dcc.unicamp.br>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

/* This program tries to serialize and to unserialize a string, a byte array and a Byte. It works well only for the first case. Class Serializer is just a wrapper for the serialization and deserialization operations. */

import java.io.*;

class Serializer {

public static byte[] serialize(Serializable object){ ByteArrayOutputStream bArrayOut = null; try{ bArrayOut = new ByteArrayOutputStream(); ObjectOutput objOut = new ObjectOutputStream(bArrayOut); objOut.writeObject(object); objOut.flush(); objOut.close(); } catch (Exception e){ e.printStackTrace();} return(bArrayOut.toByteArray()); }

public static Serializable unserialize(byte[] serializedObject){ Serializable object = null; try{ ObjectInput objIn = new ObjectInputStream(new ByteArrayInputStream(serializedObject)); object = (Serializable) objIn.readObject(); objIn.close(); } catch (Exception e){ e.printStackTrace();} return(object); } }

public class BugFoundout{ public static void main(String[] argv){ //this case works well! System.out.println(Serializer.unserialize(Serializer.serialize(new String("this is a test")))); //these two do not work! System.out.println(Serializer.unserialize(Serializer.serialize(new byte[]{(byte)0}))); System.out.println(Serializer.unserialize(Serializer.serialize(new Byte((byte)0)))); } }

------- End of forwarded message -------


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:04 EDT