java – Kryo crash EnvironmentFailureException

前端之家收集整理的这篇文章主要介绍了java – Kryo crash EnvironmentFailureException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图序列化一些自定义类的对象,我得到以下异常:
  1. com.esotericsoftware.kryo.KryoException: com.sleepycat.je.EnvironmentFailureException: (JE 5.0.73) IdentityHashMap.entrySet() should not be used. See [#18167]. UNEXPECTED_STATE: Unexpected internal state,may have side effects.
  2. Serialization trace:
  3. highestFlushLevels (com.sleepycat.je.recovery.DirtyINMap)
  4. checkpointDirtyMap (com.sleepycat.je.recovery.Checkpointer)
  5. checkpointer (com.sleepycat.je.dbi.EnvironmentImpl)
  6. envImpl (com.sleepycat.je.dbi.MemoryBudget)
  7. budget (com.sleepycat.je.cleaner.DbFileSummaryMap)
  8. dbFileSummaries (com.sleepycat.je.dbi.DatabaseImpl)
  9. databaseImpl (com.sleepycat.je.Database)
  10. db (com.thinkaurelius.titan.diskstorage.berkeleyje.BerkeleyJEKeyValueStore)
  11. store (com.thinkaurelius.titan.diskstorage.keycolumnvalue.keyvalue.OrderedKeyValueStoreAdapter)
  12. store (com.thinkaurelius.titan.diskstorage.keycolumnvalue.cache.NoKCVSCache)
  13. edgeStore (com.thinkaurelius.titan.diskstorage.Backend)
  14. backend (com.thinkaurelius.titan.graphdb.database.StandardTitanGraph)
  15. graph (com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx)
  16. tx (com.thinkaurelius.titan.graphdb.types.vertices.PropertyKeyVertex)
  17. key (com.thinkaurelius.titan.graphdb.relations.SimpleTitanProperty)
  18. properties (main.java.com.bag.util.storage.RelationshipStorage)
  19. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:101)
  20. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  21. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  22. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  23. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  24. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  25. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  26. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  27. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  28. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  29. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  30. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  31. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  32. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  33. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  34. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  35. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  36. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  37. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  38. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  39. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  40. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  41. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  42. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  43. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  44. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  45. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  46. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  47. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  48. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  49. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  50. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  51. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  52. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  53. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  54. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  55. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  56. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  57. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  58. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  59. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  60. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  61. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  62. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  63. at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651)
  64. at com.esotericsoftware.kryo.serializers.MapSerializer.write(MapSerializer.java:113)
  65. at com.esotericsoftware.kryo.serializers.MapSerializer.write(MapSerializer.java:39)
  66. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  67. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  68. at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
  69. at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651)
  70. at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:100)
  71. at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:40)
  72. at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651)
  73. at main.java.com.bag.server.TestServer.handleRelationshipRead(TestServer.java:299)
  74. at main.java.com.bag.server.TestServer.appExecuteUnordered(TestServer.java:219)
  75. at bftsmart.tom.server.defaultservices.DefaultRecoverable.executeUnordered(DefaultRecoverable.java:417)
  76. at bftsmart.tom.ServiceReplica.receiveReadonlyMessage(ServiceReplica.java:214)
  77. at bftsmart.tom.core.DeliveryThread.deliverUnordered(DeliveryThread.java:289)
  78. at bftsmart.tom.core.TOMLayer.requestReceived(TOMLayer.java:290)
  79. at bftsmart.communication.client.netty.NettyClientServerCommunicationSystemServerSide.channelRead0(NettyClientServerCommunicationSystemServerSide.java:184)
  80. at bftsmart.communication.client.netty.NettyClientServerCommunicationSystemServerSide.channelRead0(NettyClientServerCommunicationSystemServerSide.java:61)
  81. at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
  82. at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
  83. at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
  84. at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:277)
  85. at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:264)
  86. at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
  87. at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
  88. at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:962)
  89. at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
  90. at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)
  91. at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)
  92. at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)
  93. at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371)
  94. at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
  95. at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
  96. at java.lang.Thread.run(Thread.java:745)
  97. Caused by: com.sleepycat.je.EnvironmentFailureException: (JE 5.0.73) IdentityHashMap.entrySet() should not be used. See [#18167]. UNEXPECTED_STATE: Unexpected internal state,may have side effects.
  98. at com.sleepycat.je.EnvironmentFailureException.unexpectedState(EnvironmentFailureException.java:376)
  99. at com.sleepycat.je.utilint.IdentityHashMap.entrySet(IdentityHashMap.java:31)
  100. at com.esotericsoftware.kryo.serializers.MapSerializer.write(MapSerializer.java:98)
  101. at com.esotericsoftware.kryo.serializers.MapSerializer.write(MapSerializer.java:39)
  102. at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
  103. at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
  104. ... 77 more

我有一个ArrayList:

  1. ArrayList<RelationshipStorage> relationshipStorage = new ArrayList<>();

存储是可序列化的,其中的所有内容也是如此.

但是我仍然有这个错误,我不知道为什么.
财产地图中只有一个键和值.
键是一个字符串,该值是一个长字符串(整个对象的散列).

解决方法

由于我的存储对象接受任何类型的地图,我没有注意到其中一个数据库返回了一个IdentityHashMap实例. 删除和执行正常的HashMap的使用解决了这个问题.

猜你在找的Java相关文章