Je suis avec un problème qui s'étend sur plus de 2 jours. Lorsque j'échange des messages entre acteurs, j'accuse le débordement de la pile JVM.Akka - StackOverflowError pendant la sérialisation des objets
Mon message est un objet avec de nombreux liens (plus de 10000 objets enfants reliés entre eux dans une liste chaînée). A savoir, un objet avec des relations Neo4J.
L'erreur est la suivante:
java.lang.StackOverflowError
at java.io.Bits.putLong(Bits.java:108)
at java.io.ObjectOutputStream$BlockDataOutputStream.writeLong(ObjectOutputStream.java:1928)
at java.io.ObjectOutputStream.writeLong(ObjectOutputStream.java:788)
at java.util.Date.writeObject(Date.java:1303)
at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
Quelqu'un at-il une solution pour cela?
grâce
Peut-être que vous devriez ajouter les balises neo4j et java pour attirer l'attention de plus de gens ... – Christian
@Christian merci, je le ferai – ricardogobbo
Pourriez-vous s'il vous plaît élaborer sur votre structure de données? IMHO Neo4j-Les relations ne sont pas sérialisables car ce sont des objets connectés connectés à une base de données graphique. Vous pouvez simplement stocker leurs identifiants, mais le magasin de graphes à l'autre extrémité doit être exactement synchronisé avec celui d'origine. –