Re: testing M5 - StackOverflowError during context.deleteObject()

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Fri Dec 05 2008 - 09:01:03 EST

  • Next message: Andrus Adamchik: "Re: testing M5 - StackOverflowError during context.deleteObject()"

    In theory current ClassDescriptor "compiler" is prone to stack
    overflows because descriptors often try to access info from other
    descriptors before they are fully initialized, causing circular
    descriptor faulting. I saw that often during development, however I
    thought I addressed all cases. Can you send me a DataMap that caused
    this stack?

    Andrus

    On Dec 5, 2008, at 3:47 PM, Tore Halset wrote:

    > Hello.
    >
    > Sorry for being so slow, but I just now started testing M5 with our
    > internal junit tests. It did not go that well. a
    > context.deleteObject() caused a StackOverflowError. Anyone else seen
    > this?
    >
    > Regards,
    > - Tore.
    >
    > org.apache.cayenne.reflect.PropertyException: [v.3.0M5 Nov 29 2008
    > 21:12:47] Error reading DataObject property: toCellUpdate
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic
    > .DataObjectBaseProperty.readProperty(DataObjectBaseProperty.java:44)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataContextDeleteAction
    > .processDeleteRules(DataContextDeleteAction.java:158)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataContextDeleteAction
    > .deletePersistent(DataContextDeleteAction.java:107)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataContextDeleteAction.performDelete(DataContextDeleteAction.java:
    > 92)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataContextDeleteAction
    > .processDeleteRules(DataContextDeleteAction.java:236)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataContextDeleteAction
    > .deletePersistent(DataContextDeleteAction.java:107)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataContextDeleteAction.performDelete(DataContextDeleteAction.java:
    > 92)
    > at
    > org.apache.cayenne.access.DataContext.deleteObject(DataContext.java:
    > 960)
    > Caused by: java.lang.StackOverflowError
    > at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:302)
    > at org.apache.log4j.WriterAppender.append(WriterAppender.java:160)
    > at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:
    > 251)
    > at
    > org
    > .apache
    > .log4j
    > .helpers
    > .AppenderAttachableImpl
    > .appendLoopOnAppenders(AppenderAttachableImpl.java:66)
    > at org.apache.log4j.Category.callAppenders(Category.java:206)
    > at org.apache.log4j.Category.forcedLog(Category.java:391)
    > at org.apache.log4j.Category.log(Category.java:856)
    > at org.slf4j.impl.Log4jLoggerAdapter.log(Log4jLoggerAdapter.java:509)
    > at
    > org
    > .apache
    > .commons
    > .logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:
    > 120)
    > at
    > org.apache.cayenne.access.QueryLogger.logQueryStart(QueryLogger.java:
    > 473)
    > at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:
    > 205)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.runQuery(DataDomainQueryAction.java:423)
    > at org.apache.cayenne.access.DataDomainQueryAction.access
    > $000(DataDomainQueryAction.java:67)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $2.transform(DataDomainQueryAction.java:396)
    > at
    > org
    > .apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:
    > 846)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .runQueryInTransaction(DataDomainQueryAction.java:393)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:119)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > at
    > org
    > .apache
    > .cayenne
    > .access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:110)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:
    > 89)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $ObjectConversionStrategy.toObjects(DataDomainQueryAction.java:590)
    > at org.apache.cayenne.access.DataDomainQueryAction
    > $SingleObjectConversionStrategy.convert(DataDomainQueryAction.java:
    > 659)
    > at
    > org
    > .apache
    > .cayenne
    > .access
    > .DataDomainQueryAction
    > .interceptObjectConversion(DataDomainQueryAction.java:465)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:127)
    > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
    > at
    > org
    > .apache
    > .cayenne
    > .util
    > .ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:316)
    > at
    > org
    > .apache
    > .cayenne
    > .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:
    > 95)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    > 1343)
    > at
    > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:
    > 1332)
    > at
    > org.apache.cayenne.access.ToOneFault.doResolveFault(ToOneFault.java:
    > 81)
    > at
    > org.apache.cayenne.access.ToOneFault.resolveFault(ToOneFault.java:54)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectDiff.getArcSnapshotValue(ObjectDiff.java:144)
    > at org.apache.cayenne.access.DataRowUtils
    > $2.visitToOne(DataRowUtils.java:188)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .generic.DataObjectToOneProperty.visit(DataObjectToOneProperty.java:
    > 87)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor
    > .visitDeclaredProperties(PersistentDescriptor.java:376)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .PersistentDescriptor.visitProperties(PersistentDescriptor.java:408)
    > at
    > org
    > .apache
    > .cayenne
    > .reflect
    > .LazyClassDescriptorDecorator
    > .visitProperties(LazyClassDescriptorDecorator.java:167)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.forceMergeWithSnapshot(DataRowUtils.java:137)
    > at
    > org
    > .apache
    > .cayenne
    > .access.DataRowUtils.mergeObjectWithSnapshot(DataRowUtils.java:66)
    > at
    > org
    > .apache
    > .cayenne.access.ObjectResolver.objectFromDataRow(ObjectResolver.java:
    > 230)
    > ...and so on...
    >



    This archive was generated by hypermail 2.0.0 : Fri Dec 05 2008 - 09:01:44 EST