Re: weird serialization issue with long
Hi,
I'm unable to reproduce ur problem. Things work fine for me .... Where
are you reading the object back? Is it in the same method or in a
different method?
FYI, here is the code that I have written:
package com.trilogy.temp;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.nio.ByteBuffer;
class MyEvent implements Serializable {
private long long1;
private final String string1;
public MyEvent( String stringArg , long longArg ) {
long1 = longArg;
string1=stringArg;
}
public String toString() {
return("MyEvent[string1=" + string1 + ", long1=" + long1 +
"]");
}
}
public class TestSerialization {
public void testSerialize() throws IOException,
ClassNotFoundException {
MyEvent event = new MyEvent("test", 123);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(event);
ByteBuffer buffer = ByteBuffer.wrap(baos.toByteArray());
ByteArrayInputStream bais = new
ByteArrayInputStream(buffer.array());
ObjectInputStream ois = new ObjectInputStream(bais);
MyEvent eventRead = ((MyEvent)ois.readObject());
System.out.println("eventRead = " + eventRead);
}
/**
* @param args
*/
public static void main(String[] args) {
try {
(new TestSerialization()).testSerialize();
} catch(Exception e) {
System.err.println("Got exception: " + e.getMessage());
e.printStackTrace();
}
}
}
The output I get is:
eventRead = MyEvent[string1=test, long1=123]