Thanks Le, I just checked in a fix for this. If you are able to build from
source, I would appreciate it if you could confirm that this fix resolves your
problem.
Thanks,
Greg
On Apr 29, 2011, at 9:02 PM, Le Zhou wrote:
> Hi all,
>
> I need to serialize the HashMap instance, so i wrote the following code for
> test:
>
> import java.io.FileOutputStream;
> import java.io.IOException;
> import java.io.ObjectOutputStream;
>
> import org.apache.pivot.collections.HashMap;
>
> public class HelloHashMap {
>
> public static void main(String[] args) throws IOException {
> HashMap<String, String> hashMap = new HashMap<String, String>();
> hashMap.put("key", "value");
> FileOutputStream fos = new FileOutputStream("hashmap.image");
> ObjectOutputStream oos = new ObjectOutputStream(fos);
> oos.writeObject(hashMap);
> oos.flush();
> }
> }
>
> running the code above thrown the following exception:
>
> Exception in thread "main" java.io.NotSerializableException:
> org.apache.pivot.collections.Dictionary$Pair
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.writeArray(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.writeObject(Unknown Source)
> at helloHashMap.HelloHashMap.main(HelloHashMap.java:19)
>
> As shown in the exception info, org.apache.pivot.collections.Dictionary$Pair,
> which is the element of HashMap, i guess, is not serializable, so how to
> serialize an non-empty HashMap instance?
>
> Any suggestions? Thanks a lot!