0

我在 7.12 和 8.0 中出现了一个奇怪的错误。我正在尝试双向复制一个对象。它们都是 db4o 数据库,客户端通过嵌入式连接到本地数据库,并连接到 db4o 服务器以开始复制。

系统是 Mac OS X 10.7.3,Java 版本:

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04-415-11M3635)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01-415, mixed mode)

服务器上的错误是:

objc[7665]: Object 0x7ff03c0020e0 of class __NSArrayM autoreleased with no pool in place
- just leaking - break on objc_autoreleaseNoPool() to debug

客户端的错误是:

java.lang.NullPointerException
at com.db4o.internal.handlers.array.MultidimensionalArrayIterator.moveNext(MultidimensionalArrayIterator.java:47)
at com.db4o.internal.handlers.array.MultidimensionalArrayHandler.writeElements(MultidimensionalArrayHandler.java:99)
at com.db4o.internal.handlers.array.ArrayHandler.write(ArrayHandler.java:407)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:272)
at com.db4o.internal.FieldMetadata.marshall(FieldMetadata.java:775)
at com.db4o.internal.handlers.StandardReferenceTypeHandler$4.processAspect(StandardReferenceTypeHandler.java:155)
at com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2089)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.marshallAspects(StandardReferenceTypeHandler.java:163)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.write(StandardReferenceTypeHandler.java:123)
at com.db4o.internal.Handlers4.write(Handlers4.java:309)
at com.db4o.internal.ObjectReference.continueSet(ObjectReference.java:171)
at com.db4o.internal.ObjectContainerBase.stillToSet(ObjectContainerBase.java:1900)
at com.db4o.internal.ObjectContainerBase.store3(ObjectContainerBase.java:1721)
at com.db4o.internal.ObjectContainerBase.store2(ObjectContainerBase.java:1650)
at com.db4o.internal.ObjectContainerBase.storeAfterReplication(ObjectContainerBase.java:1632)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1618)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1616)
at com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:437)
at com.db4o.internal.ObjectContainerBase.asTopLevelStore(ObjectContainerBase.java:423)
at com.db4o.internal.ObjectContainerBase.storeInternal(ObjectContainerBase.java:1616)
at com.db4o.internal.TransportObjectContainer.storeInternal(TransportObjectContainer.java:191)
at com.db4o.internal.marshall.MarshallingContext.writeObject(MarshallingContext.java:252)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:266)
at com.db4o.internal.FieldMetadata.marshall(FieldMetadata.java:775)
at com.db4o.internal.handlers.StandardReferenceTypeHandler$4.processAspect(StandardReferenceTypeHandler.java:155)
at com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2089)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.marshallAspects(StandardReferenceTypeHandler.java:163)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.write(StandardReferenceTypeHandler.java:123)
at com.db4o.internal.Handlers4.write(Handlers4.java:309)
at com.db4o.internal.ObjectReference.continueSet(ObjectReference.java:171)
at com.db4o.internal.ObjectContainerBase.stillToSet(ObjectContainerBase.java:1900)
at com.db4o.internal.ObjectContainerBase.store3(ObjectContainerBase.java:1721)
at com.db4o.internal.ObjectContainerBase.store2(ObjectContainerBase.java:1650)
at com.db4o.internal.ObjectContainerBase.storeAfterReplication(ObjectContainerBase.java:1632)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1618)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1616)
at com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:437)
at com.db4o.internal.ObjectContainerBase.asTopLevelStore(ObjectContainerBase.java:423)
at com.db4o.internal.ObjectContainerBase.storeInternal(ObjectContainerBase.java:1616)
at com.db4o.internal.TransportObjectContainer.storeInternal(TransportObjectContainer.java:191)
at com.db4o.internal.marshall.MarshallingContext.writeObject(MarshallingContext.java:252)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:266)
at com.db4o.internal.FieldMetadata.marshall(FieldMetadata.java:775)
at com.db4o.internal.handlers.StandardReferenceTypeHandler$4.processAspect(StandardReferenceTypeHandler.java:155)
at com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2089)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.marshallAspects(StandardReferenceTypeHandler.java:163)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.write(StandardReferenceTypeHandler.java:123)
at com.db4o.internal.Handlers4.write(Handlers4.java:309)
at com.db4o.internal.ObjectReference.continueSet(ObjectReference.java:171)
at com.db4o.internal.ObjectContainerBase.stillToSet(ObjectContainerBase.java:1900)
at com.db4o.internal.ObjectContainerBase.store3(ObjectContainerBase.java:1721)
at com.db4o.internal.ObjectContainerBase.store2(ObjectContainerBase.java:1650)
at com.db4o.internal.ObjectContainerBase.storeAfterReplication(ObjectContainerBase.java:1632)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1618)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1616)
at com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:437)
at com.db4o.internal.ObjectContainerBase.asTopLevelStore(ObjectContainerBase.java:423)
at com.db4o.internal.ObjectContainerBase.storeInternal(ObjectContainerBase.java:1616)
at com.db4o.internal.TransportObjectContainer.storeInternal(TransportObjectContainer.java:191)
at com.db4o.internal.marshall.MarshallingContext.writeObject(MarshallingContext.java:252)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:266)
at com.db4o.internal.marshall.MarshallingContext.writeObject(MarshallingContext.java:260)
at com.db4o.internal.handlers.array.ArrayHandler.writeElements(ArrayHandler.java:422)
at com.db4o.internal.handlers.array.ArrayHandler.write(ArrayHandler.java:407)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:272)
at com.db4o.internal.FieldMetadata.marshall(FieldMetadata.java:775)
at com.db4o.internal.handlers.StandardReferenceTypeHandler$4.processAspect(StandardReferenceTypeHandler.java:155)
at com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2089)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.marshallAspects(StandardReferenceTypeHandler.java:163)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.write(StandardReferenceTypeHandler.java:123)
at com.db4o.internal.Handlers4.write(Handlers4.java:309)
at com.db4o.internal.ObjectReference.continueSet(ObjectReference.java:171)
at com.db4o.internal.ObjectContainerBase.stillToSet(ObjectContainerBase.java:1900)
at com.db4o.internal.ObjectContainerBase.store3(ObjectContainerBase.java:1721)
at com.db4o.internal.ObjectContainerBase.store2(ObjectContainerBase.java:1650)
at com.db4o.internal.ObjectContainerBase.storeAfterReplication(ObjectContainerBase.java:1632)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1618)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1616)
at com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:437)
at com.db4o.internal.ObjectContainerBase.asTopLevelStore(ObjectContainerBase.java:423)
at com.db4o.internal.ObjectContainerBase.storeInternal(ObjectContainerBase.java:1616)
at com.db4o.internal.TransportObjectContainer.storeInternal(TransportObjectContainer.java:191)
at com.db4o.internal.marshall.MarshallingContext.writeObject(MarshallingContext.java:252)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:266)
at com.db4o.internal.FieldMetadata.marshall(FieldMetadata.java:775)
at com.db4o.internal.handlers.StandardReferenceTypeHandler$4.processAspect(StandardReferenceTypeHandler.java:155)
at com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2089)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.marshallAspects(StandardReferenceTypeHandler.java:163)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.write(StandardReferenceTypeHandler.java:123)
at com.db4o.internal.Handlers4.write(Handlers4.java:309)
at com.db4o.internal.ObjectReference.continueSet(ObjectReference.java:171)
at com.db4o.internal.ObjectContainerBase.stillToSet(ObjectContainerBase.java:1900)
at com.db4o.internal.ObjectContainerBase.store3(ObjectContainerBase.java:1721)
at com.db4o.internal.ObjectContainerBase.store2(ObjectContainerBase.java:1650)
at com.db4o.internal.ObjectContainerBase.storeAfterReplication(ObjectContainerBase.java:1632)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1618)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1616)
at com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:437)
at com.db4o.internal.ObjectContainerBase.asTopLevelStore(ObjectContainerBase.java:423)
at com.db4o.internal.ObjectContainerBase.storeInternal(ObjectContainerBase.java:1616)
at com.db4o.internal.TransportObjectContainer.storeInternal(TransportObjectContainer.java:191)
at com.db4o.internal.marshall.MarshallingContext.writeObject(MarshallingContext.java:252)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:266)
at com.db4o.internal.FieldMetadata.marshall(FieldMetadata.java:775)
at com.db4o.internal.handlers.StandardReferenceTypeHandler$4.processAspect(StandardReferenceTypeHandler.java:155)
at com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2089)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.marshallAspects(StandardReferenceTypeHandler.java:163)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.write(StandardReferenceTypeHandler.java:123)
at com.db4o.internal.Handlers4.write(Handlers4.java:309)
at com.db4o.internal.ObjectReference.continueSet(ObjectReference.java:171)
at com.db4o.internal.ObjectContainerBase.stillToSet(ObjectContainerBase.java:1900)
at com.db4o.internal.ObjectContainerBase.store3(ObjectContainerBase.java:1721)
at com.db4o.internal.ObjectContainerBase.store2(ObjectContainerBase.java:1650)
at com.db4o.internal.ObjectContainerBase.storeAfterReplication(ObjectContainerBase.java:1632)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1618)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1616)
at com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:437)
at com.db4o.internal.ObjectContainerBase.asTopLevelStore(ObjectContainerBase.java:423)
at com.db4o.internal.ObjectContainerBase.storeInternal(ObjectContainerBase.java:1616)
at com.db4o.internal.TransportObjectContainer.storeInternal(TransportObjectContainer.java:191)
at com.db4o.internal.marshall.MarshallingContext.writeObject(MarshallingContext.java:252)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:266)
at com.db4o.internal.FieldMetadata.marshall(FieldMetadata.java:775)
at com.db4o.internal.handlers.StandardReferenceTypeHandler$4.processAspect(StandardReferenceTypeHandler.java:155)
at com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2089)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.marshallAspects(StandardReferenceTypeHandler.java:163)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.write(StandardReferenceTypeHandler.java:123)
at com.db4o.internal.Handlers4.write(Handlers4.java:309)
at com.db4o.internal.ObjectReference.continueSet(ObjectReference.java:171)
at com.db4o.internal.ObjectContainerBase.stillToSet(ObjectContainerBase.java:1900)
at com.db4o.internal.ObjectContainerBase.store3(ObjectContainerBase.java:1721)
at com.db4o.internal.ObjectContainerBase.store2(ObjectContainerBase.java:1650)
at com.db4o.internal.ObjectContainerBase.storeAfterReplication(ObjectContainerBase.java:1632)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1618)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1616)
at com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:437)
at com.db4o.internal.ObjectContainerBase.asTopLevelStore(ObjectContainerBase.java:423)
at com.db4o.internal.ObjectContainerBase.storeInternal(ObjectContainerBase.java:1616)
at com.db4o.internal.TransportObjectContainer.storeInternal(TransportObjectContainer.java:191)
at com.db4o.internal.marshall.MarshallingContext.writeObject(MarshallingContext.java:252)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:266)
at com.db4o.internal.FieldMetadata.marshall(FieldMetadata.java:775)
at com.db4o.internal.handlers.StandardReferenceTypeHandler$4.processAspect(StandardReferenceTypeHandler.java:155)
at com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2089)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.marshallAspects(StandardReferenceTypeHandler.java:163)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.write(StandardReferenceTypeHandler.java:123)
at com.db4o.internal.Handlers4.write(Handlers4.java:309)
at com.db4o.internal.ObjectReference.continueSet(ObjectReference.java:171)
at com.db4o.internal.ObjectContainerBase.stillToSet(ObjectContainerBase.java:1900)
at com.db4o.internal.ObjectContainerBase.store3(ObjectContainerBase.java:1721)
at com.db4o.internal.ObjectContainerBase.store2(ObjectContainerBase.java:1650)
at com.db4o.internal.ObjectContainerBase.storeAfterReplication(ObjectContainerBase.java:1632)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1618)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1616)
at com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:437)
at com.db4o.internal.ObjectContainerBase.asTopLevelStore(ObjectContainerBase.java:423)
at com.db4o.internal.ObjectContainerBase.storeInternal(ObjectContainerBase.java:1616)
at com.db4o.internal.TransportObjectContainer.storeInternal(TransportObjectContainer.java:191)
at com.db4o.internal.marshall.MarshallingContext.writeObject(MarshallingContext.java:252)
at com.db4o.internal.marshall.MarshallingContext.writeObjectWithCurrentState(MarshallingContext.java:266)
at com.db4o.internal.FieldMetadata.marshall(FieldMetadata.java:775)
at com.db4o.internal.handlers.StandardReferenceTypeHandler$4.processAspect(StandardReferenceTypeHandler.java:155)
at com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2089)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.marshallAspects(StandardReferenceTypeHandler.java:163)
at com.db4o.internal.handlers.StandardReferenceTypeHandler.write(StandardReferenceTypeHandler.java:123)
at com.db4o.internal.Handlers4.write(Handlers4.java:309)
at com.db4o.internal.ObjectReference.continueSet(ObjectReference.java:171)
at com.db4o.internal.ObjectContainerBase.stillToSet(ObjectContainerBase.java:1900)
at com.db4o.internal.ObjectContainerBase.store3(ObjectContainerBase.java:1721)
at com.db4o.internal.ObjectContainerBase.store2(ObjectContainerBase.java:1650)
at com.db4o.internal.ObjectContainerBase.storeAfterReplication(ObjectContainerBase.java:1632)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1618)
at com.db4o.internal.ObjectContainerBase$10.apply(ObjectContainerBase.java:1616)
at com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:437)
at com.db4o.internal.ObjectContainerBase.asTopLevelStore(ObjectContainerBase.java:423)
at com.db4o.internal.ObjectContainerBase.storeInternal(ObjectContainerBase.java:1616)
at com.db4o.internal.TransportObjectContainer.storeInternal(TransportObjectContainer.java:191)
at com.db4o.internal.ObjectContainerBase.store(ObjectContainerBase.java:1598)
at com.db4o.internal.ExternalObjectContainer.store(ExternalObjectContainer.java:154)
at com.db4o.internal.ExternalObjectContainer.store(ExternalObjectContainer.java:141)
at com.db4o.internal.Serializer.marshall(Serializer.java:26)
at com.db4o.internal.query.processor.QConEvaluation.marshallUsingDb4oFormat(QConEvaluation.java:56)
at com.db4o.internal.query.processor.QConEvaluation.marshall(QConEvaluation.java:45)
at com.db4o.internal.query.processor.QCon.marshall(QCon.java:531)
at com.db4o.internal.query.processor.QConObject.marshall(QConObject.java:262)
at com.db4o.internal.query.processor.QConClass.marshall(QConClass.java:108)
at com.db4o.internal.query.processor.QQueryBase.marshall(QQueryBase.java:766)
at com.db4o.cs.internal.ClientObjectContainer.executeQuery(ClientObjectContainer.java:972)
at com.db4o.internal.query.processor.QQueryBase.executeQuery(QQueryBase.java:476)
at com.db4o.internal.query.processor.QQueryBase.getQueryResult(QQueryBase.java:471)
at com.db4o.internal.query.processor.QQueryBase$3.run(QQueryBase.java:340)
at com.db4o.internal.query.processor.QQueryBase$3.run(QQueryBase.java:339)
at com.db4o.internal.query.processor.QQueryBase.triggeringQueryEvents(QQueryBase.java:574)
at com.db4o.internal.query.processor.QQueryBase.execute(QQueryBase.java:339)
at com.db4o.internal.query.NativeQueryHandler.execute(NativeQueryHandler.java:44)
at com.db4o.internal.ObjectContainerBase.query(ObjectContainerBase.java:1375)
at com.db4o.internal.ExternalObjectContainer.query(ExternalObjectContainer.java:120)
at com.db4o.internal.ExternalObjectContainer.query(ExternalObjectContainer.java:116)
at au.com.kingdomsolutions.tt.Views.MainWindow$6.widgetSelected(MainWindow.java:247)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.notifyListeners(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at au.com.kingdomsolutions.tt.Views.MainWindow.open(MainWindow.java:86)
at au.com.kingdomsolutions.tt.TeamTasks.main(TeamTasks.java:105)
Closing database connection.
[db4o 7.12.250.16103   2012-05-15 07:44:47] 
'/Users/dmuse/.tt/tt.db4o' closed by ShutdownHook.

我一直试图让它工作几天,但还没有走得很远。

该异常似乎与数组有关,但是,我没有在我的对象中使用任何类似数组的东西。然而,这可能是一个内部 db4o 结构。

无论如何,所有帮助表示赞赏!

干杯

4

1 回答 1

1

嗯,我在第二个堆栈跟踪中没有看到任何复制堆栈帧,只有一个本机查询。

消息“objc [7665]:__NSArrayM 类的对象 0x7ff03c0020e0 自动释放,没有适当的池 - 只是泄漏 - 在 objc_autoreleaseNoPool() 上中断以进行调试”

在我看来很可疑。就像 db4o 试图用 MacOS 内部的东西来存储或序列化一个 UI 对象一样。我怀疑常规 Java 对象是否使用任何 __NSArray 和引用计数。

所以我的猜测是你正在对服务器运行本机查询。该查询无法翻译为SODA。在这种情况下,db4o 尝试序列化查询对象并将其发送到服务器。查询可能是一个内部类并引用它的外部上下文,其中包含 GUI 对象。然后导致这个问题。

我的建议:只对服务器的查询使用 SODA 查询。本机查询在客户端-服务器模式下有很多问题。将查询更改为导致此问题的 SODA 查询,看看它是否解决了问题。

于 2012-05-15T09:35:36.510 回答