Re: Why are my EOs turning back to faults?
Re: Why are my EOs turning back to faults?
- Subject: Re: Why are my EOs turning back to faults?
- From: Chuck Hill <email@hidden>
- Date: Wed, 05 Sep 2012 09:48:20 -0700
Hi John,
Are StockItems "carefully pre-loaded" into the same EC as WebPages? If not, you are likely running into the EC's fetch timestamp lag. It looks like you are doing a count of StockItem at at mp.eo.WebPage.getDescendantWebPages(WebPage.java:1410) and this is causing the to-many to be faulted.
Chuck
On 2012-09-05, at 9:21 AM, 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@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/gvc/practical_webobjects
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden