Hi Amadeo,

The prblem is that EOEditingContext and InverseRelationship updating is currently incompatible.

I had this problem recently. It occurred in specific places in old source code after I turned on Wonder's InverseRelationship updater. After copious debugging, I realized that this only happened if the eo in question was in a regular plain apple EOEditingContext. Finding places where there was "new EOEditingContext()" anywhere in my workspace showed up a few occurrences in old source in little used code in some frameworks. Basically changing those to ERXEC.newEditingContext() immediately fixed the problem.

Probably ERXGenericRecord needs some code to make sure its editingContext is an ERXEC or ERXEC subclass and fail early with a better error message. The current message sends you on a time-wasting wild goose chase.

Regards, Kieran

On Feb 24, 2009, at 11:22 AM, Amedeo Mantica wrote:

This is new to me....



public void setIsPrimoPiano(Boolean value) {
        if (value) {
                  EOEditingContext ec = new EOEditingContext();
ec.setSharedEditingContext(null); // I set null to shared EO because i fetch all in application LINE 42 ---> NSArray<CFArticle> array = (NSArray<CFArticle>)EOUtilities.objectsMatchingKeyAndValue(ec, "CFArticle", "isPrimoPiano", true);
                  if (array!=null) {
                          for (int i=0 ; i < array.count() ; i++) {
                                  array.objectAtIndex(i).setIsPrimoPiano(false);
                          }
                  }
                  ec.saveChanges();
          }
          super.setIsPrimoPiano(value);
  }




Attempt to access an EO that has either not been inserted into any EOEditingContext or its EOEditingContext has already been disposed


com.webobjects.eocontrol.EOCustomObject.willRead(EOCustomObject.java: 1158) com.webobjects.eocontrol._EOMutableKnownKeyDictionary $Initializer $ _GenericRecordBinding .valueInObject(_EOMutableKnownKeyDictionary.java:570) com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer $ _LazyGenericRecordBinding .valueInObject(_EOMutableKnownKeyDictionary.java:613) com .webobjects .eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java: 1634) it.chieti.confindustria._CFArea.articles(_CFArea.java:103) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun .reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) com.webobjects.foundation.NSKeyValueCoding$ValueAccessor $1.methodValue(NSKeyValueCoding.java:636) com.webobjects.foundation.NSKeyValueCoding $_MethodBinding.valueInObject(NSKeyValueCoding.java:1134) com .webobjects.eocontrol.EOCustomObject.valueForKey(EOCustomObject.java: 1498) er.extensions.eof.ERXGenericRecord $ InverseRelationshipUpdater .takeStoredValueForKey(ERXGenericRecord.java:1431) er .extensions .eof.ERXGenericRecord.takeStoredValueForKey(ERXGenericRecord.java: 1217) com.webobjects.eocontrol.EOKeyValueCoding $_StoredForwardingBinding.setValueInObject(EOKeyValueCoding.java: 240) com .webobjects .eoaccess .EODatabaseContext .initializeObjectRowEntityEditingContext(EODatabaseContext.java: 2246) com .webobjects .eoaccess.EODatabaseContext.initializeObject(EODatabaseContext.java: 3581) com .webobjects .eocontrol .EOObjectStoreCoordinator .initializeObject(EOObjectStoreCoordinator.java:597) com .webobjects .eocontrol.EOEditingContext.initializeObject(EOEditingContext.java: 3768) com.webobjects.eoaccess.EODatabaseChannel $ _EODatabaseChannelFetchResult .initializeObjects(EODatabaseChannel.java:496) com .webobjects .eoaccess .EODatabaseContext ._objectsWithFetchSpecificationEditingContext(EODatabaseContext.java: 3090) com .webobjects .eoaccess .EODatabaseContext .objectsWithFetchSpecification(EODatabaseContext.java:3195) com .webobjects .eocontrol .EOObjectStoreCoordinator .objectsWithFetchSpecification(EOObjectStoreCoordinator.java:488) com .webobjects .eocontrol .EOEditingContext .objectsWithFetchSpecification(EOEditingContext.java:4069) com .webobjects .eocontrol .EOEditingContext .objectsWithFetchSpecification(EOEditingContext.java:4444) com .webobjects .eoaccess.EOUtilities.objectsMatchingValues(EOUtilities.java:216) com .webobjects .eoaccess.EOUtilities.objectsMatchingKeyAndValue(EOUtilities.java: 190) it.chieti.confindustria.CFArticle.setIsPrimoPiano(CFArticle.java:42)

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.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:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to