Hi all,
I'm using WO 5.3 and only ERExtensions from Wonder.
I've just started getting an odd error now when I try to save my EditingContext that I've never gotten before. The full stack trace is below, but here's the basics, formatted for easier reading:
<WorkerThread0> Server exception: rowDiffsForAttributes: snapshot in com.webobjects.eoaccess.EODatabaseOperation { _dbSnapshot = {}; _entity = "BillOfMaterial"; _newRow = { isActive = false; mustBeBalanced = false; partId = <com.webobjects.foundation.NSKeyValueCoding$Null>; routingDescription = "Preform Homestyle 240/1oz Chocolate Chip, MMA BOM"; isDefault = false; productionSequence = 0.000000; partQuantity = 1.000000; }; _object = "Preform Homestyle 240/1oz Chocolate Chip, MMA BOM"; _globalID = _EOIntegralKeyGlobalID[BillOfMaterial (java.lang.Long)1138]; _databaseOperator = "EODatabaseUpdateOperator"; } does not contain value for attribute named billOfMaterialTypeId with snapshot key: billOfMaterialTypeId
I see several problems with this:
1) _dbSnapshot is completely empty! This object is in the DB, so it should have a dbSnapshot, right?
2) The only change to the EO this is referring to _should be_ that the partId is being set to null by this object being removed from the Part->> BillOfMaterial relationship. Part "owns" BillOfMaterial, so this object should be in the process of being deleted.
3) The list of attributes in the _newRow dictionary isn't complete. It really doesn't contain the billOfMaterialTypeId attribute or several others. Why?!
billOfMaterialTypeId is a non-class attribute in the Model that is a FK for a toOne relationship. According to the API for EODatabaseOperation newRow, and I'm assuming _newRow, are supposed to contain all non-derived attributes, including non-class ones like PKs and FKs.
Any ideas as to what is going on?!
[2008-04-11 12:45:48 EDT] <WorkerThread0> Server exception: rowDiffsForAttributes: snapshot in com.webobjects.eoaccess.EODatabaseOperation {_dbSnapshot = {}; _entity = "BillOfMaterial"; _newRow = {isActive = false; mustBeBalanced = false; partId = <com.webobjects.foundation.NSKeyValueCoding$Null>; routingDescription = "Preform Homestyle 240/1oz Chocolate Chip, MMA BOM"; isDefault = false; productionSequence = 0.000000; partQuantity = 1.000000; }; _object = "Preform Homestyle 240/1oz Chocolate Chip, MMA BOM"; _globalID = _EOIntegralKeyGlobalID[BillOfMaterial (java.lang.Long)1138]; _databaseOperator = "EODatabaseUpdateOperator"; } does not contain value for attribute named billOfMaterialTypeId with snapshot key: billOfMaterialTypeId [2008-04-11 12:45:48 EDT] <WorkerThread0> java.lang.IllegalStateException: rowDiffsForAttributes: snapshot in com.webobjects.eoaccess.EODatabaseOperation {_dbSnapshot = {}; _entity = "BillOfMaterial"; _newRow = {isActive = false; mustBeBalanced = false; partId = <com.webobjects.foundation.NSKeyValueCoding$Null>; routingDescription = "Preform Homestyle 240/1oz Chocolate Chip, MMA BOM"; isDefault = false; productionSequence = 0.000000; partQuantity = 1.000000; }; _object = "Preform Homestyle 240/1oz Chocolate Chip, MMA BOM"; _globalID = _EOIntegralKeyGlobalID[BillOfMaterial (java.lang.Long)1138]; _databaseOperator = "EODatabaseUpdateOperator"; } does not contain value for attribute named billOfMaterialTypeId with snapshot key: billOfMaterialTypeId at com.webobjects.eoaccess.EODatabaseOperation.rowDiffsForAttributes(EODatabaseOperation.java:338) at com.webobjects.eoaccess.EODatabaseContext.createAdaptorOperationsForDatabaseOperationAttributes(EODatabaseContext.java:5373) at com.webobjects.eoaccess.EODatabaseContext.createAdaptorOperationsForDatabaseOperation(EODatabaseContext.java:5548) at com.webobjects.eoaccess.EODatabaseContext.performChanges(EODatabaseContext.java:6365) at com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:415) at com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.java:3226) at com.webobjects.eodistribution.EODistributionContext$_RemoteMethodReceiver.clientSideRequestSave(EODistributionContext.java:1071) 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:585) at com.webobjects.foundation.NSSelector.invoke(NSSelector.java:354) at com.webobjects.foundation.NSSelector._safeInvokeSelector(NSSelector.java:108) at com.webobjects.eodistribution.common._EOServerInvocation.doInvokeWithTarget(_EOServerInvocation.java:140) at com.webobjects.eodistribution.EODistributionContext._processClientRequest(EODistributionContext.java:488) at com.webobjects.eodistribution.EODistributionContext.responseToClientMessage(EODistributionContext.java:577) at com.webobjects.eodistribution.WOJavaClientComponent.handleClientRequest(WOJavaClientComponent.java:1105) at com.webobjects.eodistribution.WOJavaClientComponent.invokeAction(WOJavaClientComponent.java:343) at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:104) at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:101) at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:110) at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945) at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1168) at com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1375) at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:196) at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:287) at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:322) at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:358) at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:432) at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1306) at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:173) at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254) at java.lang.Thread.run(Thread.java:613) |