Re: Changed behavior after Wonderization
Re: Changed behavior after Wonderization
- Subject: Re: Changed behavior after Wonderization
- From: Timo Hoepfner <email@hidden>
- Date: Mon, 07 Nov 2011 09:52:53 +0100
Hi Frank,
yes, there is a way to control that via the Property "er.extensions.ERXDatabaseContextDelegate.tolerantEntityPattern".
See ERXDatabaseContextDelegate#databaseContextFailedToFetchObject:
/**
* This is Kelly Hawks' fix for the missing to one relationship.
* Delegate on EODatabaseContext that gets called when a to-one fault cannot find its data in
* the database. The object that is returned is a cleared fault.
* We raise here to restore the functionality that existed prior to WebObjects 4.5.
* Whenever a fault fails for a globalID (i.e. the object is NOT found in the database), we raise
* an {@link com.webobjects.eoaccess.EOObjectNotAvailableException EOObjectNotAvailableException}. <br>
* If you have entities you don't really care about, you can set the system property
* <code>er.extensions.ERXDatabaseContextDelegate.tolerantEntityPattern</code> to a regular expression
* that will be tested against the GID entity name. If it matches, then only an error will be logged
* but no exception will be thrown.
*
* @param context database context
* @param object object that is firing the fault for a given to-one relationship
* @param gid global id that wasn't found in the database.
*/
If you look through that code there is another property to control the logging.
Timo
Am 07.11.2011 um 09:08 schrieb Frank Gibau:
> Hey to all,
> In the last months we changed our System to a Projectwonder-System. All works fine (perfect) except one thing:
> There are errormesseages we never hat like:
>
> er.extensions.eof.ERXDatabaseContextDelegate$ObjectNotAvailableException: No de.jvm.eo.personal.PuMitarbeiter found with globalID: <PuMitarbeiter: [id: '7436'] >
>
> The System is right: this number is missing. But the old Apple EO hat no problems with missing relationsships, the new Wondersystem detects many problems in our databases.
> But I think: the apple EO was right, because its possible to delete an Object and make no action on his relationship.
> If I display now the relationship this should by no problem.
>
> My Question: is there a property I have to change to get back the old apple EO-behavior.
>
> Thanks in advance
> Frank
>
>
> er.extensions.eof.ERXDatabaseContextDelegate$ObjectNotAvailableException: No de.jvm.eo.personal.PuMitarbeiter found with globalID: <PuMitarbeiter: [id: '7436'] >
> at er.extensions.eof.ERXDatabaseContextDelegate.databaseContextFailedToFetchObject(ERXDatabaseContextDelegate.java:326)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
> at com.webobjects.foundation._NSDelegate._perform(_NSDelegate.java:223)
> at com.webobjects.foundation._NSDelegate.perform(_NSDelegate.java:167)
> at com.webobjects.eoaccess.EODatabaseContext._fireFault(EODatabaseContext.java:4205)
> at com.webobjects.eoaccess.EOAccessFaultHandler.completeInitializationOfObject(EOAccessFaultHandler.java:89)
> at com.webobjects.eocontrol.EOCustomObject.willRead(EOCustomObject.java:1172)
> at com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer$_GenericRecordBinding.valueInObject(_EOMutableKnownKeyDictionary.java:570)
> at com.webobjects.eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java:1634)
> at de.jvm.eo.personal._PuMitarbeiter.getLastName(_PuMitarbeiter.java:557)
> at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
> at com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
> at com.webobjects.eocontrol.EOCustomObject.valueForKey(EOCustomObject.java:1498)
> at com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
> at com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
> at com.webobjects.eocontrol.EOCustomObject.valueForKeyPath(EOCustomObject.java:1588)
> at com.webobjects.foundation.NSKeyValueCodingAdditions$Utility.valueForKeyPath(NSKeyValueCodingAdditions.java:149)
> at com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:217)
> at com.webobjects.eocontrol.EOCustomObject.valueForKeyPath(EOCustomObject.java:1588)
> at com.webobjects.foundation.NSKeyValueCodingAdditions$Utility.valueForKeyPath(NSKeyValueCodingAdditions.java:149)
> at com.webobjects.eocontrol.EOSortOrdering$_MultipleSortValueHolder.<init>(EOSortOrdering.java:437)
> at com.webobjects.eocontrol.EOSortOrdering._sortUsingKeyOrderArray(EOSortOrdering.java:208)
> at com.webobjects.eocontrol.EOSortOrdering.sortedArrayUsingKeyOrderArray(EOSortOrdering.java:249)
> at de.jvm.eo.BusinessZeiten.sortAscendingTwo(BusinessZeiten.java:795)
> at SchulungSearchPage.sortedPersonTeilnahmen(SchulungSearchPage.java:350)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at KeyValueCodingProtectedAccessor.methodValue(KeyValueCodingProtectedAccessor.java:60)
> at com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
> at com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
> at com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
> at com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
> at com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:216)
> at com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
> at com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
> at er.extensions.components._private.ERXWOString.appendToResponse(ERXWOString.java:67)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WOConditional.appendToResponse(WOConditional.java:94)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at er.extensions.components._private.ERXWORepetition.appendToResponse(ERXWORepetition.java:547)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WOConditional.appendToResponse(WOConditional.java:94)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
> at com.webobjects.appserver._private.WOComponentContent.appendToResponse(WOComponentContent.java:51)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at er.ajax.AjaxUpdateContainer.appendToResponse(AjaxUpdateContainer.java:185)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at er.extensions.components._private.ERXWOForm.appendChildrenToResponse(ERXWOForm.java:294)
> at er.extensions.components._private.ERXWOForm.appendToResponse(ERXWOForm.java:463)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WOConditional.appendToResponse(WOConditional.java:94)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at er.ajax.AjaxUpdateContainer.appendToResponse(AjaxUpdateContainer.java:185)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at er.ajax.AjaxUpdateContainer.appendToResponse(AjaxUpdateContainer.java:185)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WOHTMLDynamicElement.appendToResponse(WOHTMLDynamicElement.java:447)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
> at com.webobjects.appserver.WOComponent.appendToResponse(WOComponent.java:1122)
> at er.extensions.components.ERXComponent.appendToResponse(ERXComponent.java:107)
> at LayoutPage.appendToResponse(LayoutPage.java:92)
> at com.webobjects.appserver._private.WOComponentReference.appendToResponse(WOComponentReference.java:135)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
> at com.webobjects.appserver.WOComponent.appendToResponse(WOComponent.java:1122)
> at er.extensions.components.ERXComponent.appendToResponse(ERXComponent.java:107)
> at SchulungSearchPage.appendToResponse(SchulungSearchPage.java:78)
> at com.webobjects.appserver.WOSession.appendToResponse(WOSession.java:1385)
> at er.extensions.appserver.ERXSession.appendToResponse(ERXSession.java:548)
> at com.webobjects.appserver.WOApplication.appendToResponse(WOApplication.java:1794)
> at er.extensions.appserver.ERXApplication.appendToResponse(ERXApplication.java:1880)
> at Application.appendToResponse(Application.java:112)
> at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:242)
> at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:298)
> at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332)
> at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
> at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:445)
> at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
> at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1978)
> at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1943)
> at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
> at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
> at java.lang.Thread.run(Thread.java:680)
>
>
>
>
> _______________________________________________
> 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
_______________________________________________
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