I don't have a solution, but I have a couple of recommendations -- either of which would avoid the problem.
#1 - don't use object serialization. Convert to an XML or JSON representation instead. XML in particular would be preferred if you're going to store these for an extended time. #2 -- don't use Hashtable. It is a holdover from the early days of Java, but it has inappropriate synchronization on various methods. Use HashMap instead. This won't usually result in any other changes to your code. If you were depending on the method synchronization of Hashtable, you should take a good look at your code; it's likely you weren't doing it right, and synchronizing on the table (or a larger- scoped object) across a larger set of operations will fix bugs you may not know you have. The synchronizing built into Hashtable is seldom the actual synchronization needed! Nothing in your message really suggests that your crash is related to the message about serialization. If the loadfactor for the Hashtable is set to zero, I suspect that would cause problems, but if it ends up initialized to some reasonable default, this would be harmless. You could check in the debugger pretty easily The GC messages are not related to your problem. They indicate that your program is causing the GC to run; this is of interest for optimizing or analyzing performance. On Apr 13, 12:11 pm, nsyed <[email protected]> wrote: > Hi All, > > I am having a weird issue with serialization of a Hashtable. I have > made a Server, Client app. Where server(PC/MAC) is serializing a > Hashtable and sending it to Client(Android) through UDP. The data is > sent/read correctly but I get a bunch of these messages below on > LogCat. > > 04-12 11:19:43.059: DEBUG/dalvikvm(407): GetFieldID: unable to find > field Ljava/util/Hashtable;.loadFactor:F > > Occasionally, I would see these > > 04-12 11:21:19.150: DEBUG/dalvikvm(407): GC freed 10814 objects / > 447184 bytes in 97ms > > The app would run for 2-3 mins and then crash. Interestingly enough I > do not see the Loadfactor errors on SDK 1.5. But I do see the GC Free > xxxx objects, quiet often. > > After debugging I have found that the issue is with de-serialization > and the error/warning are coming from following code > > Code: > > ByteArrayInputStream bis = new ByteArrayInputStream(bytes); > ObjectInputStream ois = new ObjectInputStream(bis); > object = ois.readObject(); > at Code: > > object = ois.readObject(); > on the client. My server is serializing code is the following. > > Code: > > ByteArrayOutputStream bos = new ByteArrayOutputStream(); > ObjectOutputStream oos = new ObjectOutputStream(bos); > oos.writeObject(obj); > Any idea what is going on? > > Thanks for the Help! -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe, reply using "remove me" as the subject.

