Protostuff の RuntimeSchema を使用してデータをシリアル化しています。これはほとんどの場合機能しますが、時々次のようになります。
java.lang.StackOverflowError
at io.protostuff.runtime.ObjectSchema.mergeFrom(ObjectSchema.java:350) ~[protostuff-runtime-1.5.3.jar:1.5.3]
at io.protostuff.CodedInput.mergeObjectEncodedAsGroup(CodedInput.java:336) ~[protostuff-core-1.5.3.jar:1.5.3]
at io.protostuff.CodedInput.mergeObject(CodedInput.java:298) ~[protostuff-core-1.5.3.jar:1.5.3]
at io.protostuff.runtime.RuntimeUnsafeFieldFactory$15$1.mergeFrom(RuntimeUnsafeFieldFactory.java:1217) ~[protostuff-runtime-1.5.3.jar:1.5.3]
これは明らかに、オブジェクト内にある種の循環参照があることを意味します。
ドキュメントを読む Protostuff は、理論的には実行時スキーマの循環参照をサポートしていますが、これを機能させるために有効にする必要がある構成はありますか?
私は読んだ:Dprotostuff.runtime.collection_schema_on_repeated_fields
しかし、私たちのオブジェクトには当てはまらない配列項目の循環参照にのみ適用されると思われます。
ありがとう!