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

Reply via email to