StackOverflowError membuat serialisasi objek di java (Android 4.4) [duplikat]

Aplikasi Android saya perlu membuat serialisasi suatu objek (RowCreation) untuk mengirimkannya melalui jaringan. Jelasnya kelas objek mengimplementasikan antarmuka Serializable. Kelas memiliki struktur berikut:

    public class RowCreation extends ClientSyncRequest {

    private static final long serialVersionUID = 10001243L;


    public int localID;
    public int entity;
    public Hashtable attributes = new Hashtable();
    public byte[] bytes;
    public long time = 0;
    public String md5CheckSum;
}

public class ClientSyncRequest extends SyncMessage {

        private static final long serialVersionUID = 10001246L;


        public int id = 0;

        public int getId(){

            return this.id;

        }
    }




public class SyncMessage implements Serializable{

     private static final long serialVersionUID = 10001231L;


}

Kebetulan salah satu pengguna aplikasi melaporkan bug hari ini, Ketika saya melihat stacktrace di konsol google play adalah StackOverflowError:

java.lang.StackOverflowError
at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:1064)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:1035)
at java.io.ObjectStreamClass.createClassDesc(ObjectStreamClass.java:248)
at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:1067)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:1035)
at java.io.ObjectStreamClass.createClassDesc(ObjectStreamClass.java:248)
at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:1067)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1574)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
at java.util.Hashtable.writeObject(Hashtable.java:1079)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1053)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)

person m_junior    schedule 25.08.2015    source sumber
comment
Anda melihat Hashtable.writeObject di pelacakan tumpukan; mungkin entah kenapa Anda mengambil terlalu banyak objek. Salah satu kemungkinannya adalah kelas non-statis bagian dalam. Atau struktur data yang agak rekursif.   -  person Joop Eggen    schedule 25.08.2015
comment
apa sebenarnya yang kamu ingin aku lakukan?   -  person m_junior    schedule 25.08.2015