Update: Although it would be interesting to know the answer to the below, it 
doesn't explain the problem I am trying to crack.
I have relationships StockItem.webPages() that are fired, report back as NOT 
being faults as expected, but then later have reverted to being faults and I 
don't know where or how they became faults. I put a stack trace in 
StockItem.turnIntoFault() in case the base object is being turned into a fault, 
but it isn't (at least not repeatedly), only the relationship is. Can I somehow 
trap the point at which a relationship is being reverted to a fault?

Thanks
John

On 5 Sep 2012, at 17:21, John Pollard wrote:

> Hi WO list,
> 
> The firing of a fault on EOs of one type is causing EOs of another type be 
> turned into faults... is that expected?
> 
> I have a WebPage eo with a to-many relationship called childWebPages (returns 
> an array of WebPage objects)
> 
> When I access this array recursively in getDescendantWebPages()...see stack 
> trace below, a totally different class of object is turned into a fault 
> StockItem, see top line of stack trace.
> 
> I don't want EOF to turn my carefully pre-loaded StockItems back into faults!
> 
> The two EOs are related via a join table.
> 
> This is causing performance headaches.
> 
>       at mp.eo.StockItem.turnIntoFault(StockItem.java:1714)
>       at 
> com.webobjects.eocontrol.EOFaultHandler.makeObjectIntoFault(EOFaultHandler.java:161)
>       at 
> com.webobjects.eoaccess.EODatabaseContext._turnToFaultGidEditingContextIsComplete(EODatabaseContext.java:3363)
>       at 
> com.webobjects.eoaccess.EODatabaseContext.faultForGlobalID(EODatabaseContext.java:3397)
>       at 
> com.webobjects.eocontrol.EOObjectStoreCoordinator.faultForGlobalID(EOObjectStoreCoordinator.java:537)
>       at 
> com.webobjects.eocontrol.EOEditingContext.faultForGlobalID(EOEditingContext.java:3608)
>       at 
> com.webobjects.eoaccess.EODatabaseContext._objectFaultWithSnapshotRelationshipEditingContext(EODatabaseContext.java:2361)
>       at 
> com.webobjects.eoaccess.EODatabaseContext._fireDeferredFaultWithSourceObject(EODatabaseContext.java:2401)
>       at 
> com.webobjects.eoaccess.EOAccessDeferredFaultHandler.createFaultForDeferredFault(EOAccessDeferredFaultHandler.java:49)
>       at 
> com.webobjects.eocontrol.EOCustomObject.willReadRelationship(EOCustomObject.java:1279)
>       at 
> com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer$_LazyGenericRecordBinding.valueInObject(_EOMutableKnownKeyDictionary.java:614)
>       at 
> com.webobjects.eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java:1634)
>       at 
> com.webobjects.eoaccess.EODatabaseContext.databaseOperationForObject(EODatabaseContext.java:4810)
>       at 
> com.webobjects.eoaccess.EODatabaseContext.valuesForKeys(EODatabaseContext.java:6531)
>       at 
> com.webobjects.eocontrol.EOObjectStoreCoordinator.valuesForKeys(EOObjectStoreCoordinator.java:321)
>       at 
> com.webobjects.eoaccess.EOQualifierSQLGeneration$_KeyValueQualifierSupport.schemaBasedQualifierWithRootEntity(EOQualifierSQLGeneration.java:439)
>       at 
> com.webobjects.eoaccess.EOQualifierSQLGeneration$Support._schemaBasedQualifierWithRootEntity(EOQualifierSQLGeneration.java:179)
>       at 
> com.webobjects.eoaccess.EODatabaseChannel.selectObjectsWithFetchSpecification(EODatabaseChannel.java:227)
>       at 
> com.webobjects.eoaccess.EODatabaseContext._objectsWithFetchSpecificationEditingContext(EODatabaseContext.java:3055)
>       at 
> com.webobjects.eoaccess.EODatabaseContext.objectsWithFetchSpecification(EODatabaseContext.java:3195)
>       at 
> com.webobjects.eocontrol.EOObjectStoreCoordinator.objectsWithFetchSpecification(EOObjectStoreCoordinator.java:483)
>       at 
> com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4053)
>       at 
> com.webobjects.eoaccess.EODatabaseContext.objectsForSourceGlobalID(EODatabaseContext.java:4084)
>       at 
> com.webobjects.eocontrol.EOObjectStoreCoordinator.objectsForSourceGlobalID(EOObjectStoreCoordinator.java:629)
>       at 
> com.webobjects.eocontrol.EOEditingContext.objectsForSourceGlobalID(EOEditingContext.java:3907)
>       at 
> com.webobjects.eoaccess.EODatabaseContext._fireArrayFault(EODatabaseContext.java:4245)
>       at 
> com.webobjects.eoaccess.EOAccessArrayFaultHandler.completeInitializationOfObject(EOAccessArrayFaultHandler.java:77)
>       at 
> com.webobjects.eocontrol._EOCheapCopyMutableArray.willRead(_EOCheapCopyMutableArray.java:45)
>       at 
> com.webobjects.eocontrol._EOCheapCopyMutableArray.count(_EOCheapCopyMutableArray.java:103)
>       at mp.eo.WebPage.getDescendantWebPages(WebPage.java:1410)
>       at mp.eo.WebPage.getDescendantWebPages(WebPage.java:1393)
>       at mp.eo.WebPage.getDescendantWebPages(WebPage.java:1414)
>       at mp.eo.WebPage.getDescendantWebPages(WebPage.java:1393)
>       at mp.eo.WebPage.getDescendantWebPages(WebPage.java:1414)
>       at mp.eo.WebPage.getDescendantWebPages(WebPage.java:1393)
>       at mp.eo.WebPage.getDescendantWebPages(WebPage.java:1414)
>       at mp.eo.WebSite.getAllWebPages(WebSite.java:842)
>       at mpMall.DirectAction.getWebPageById(DirectAction.java:1982)
>       at mpMall.DirectAction.viewPageAction(DirectAction.java:537)
> 
> Many thanks,
> John
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/john%40pollardweb.com
> 
> This email sent to [email protected]


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to