Hi Bob, Thanks for the help.Yes you are correct there is a difference in architecture which I naively dismissed, I changed it to JSON and everything is working correctly. I did tested with HashMap however but it was no different from what I saw on Hashtable. As for GC yes my problem turned out to be the Datagram Socket, i was initializing it every time I was making a datapacket and closing it afterwards. Once I tweaked the code a bit more it has gone down to acceptable levels.
Thanks, Naqi On Wed, Apr 14, 2010 at 12:23 PM, Bob Kerns <[email protected]> wrote: > 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]<android-developers%[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. > -- -Naqi Syed -- 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

