Re: rowDiffsForAttributes _dbSnapshot and _newRow missing attributes
Re: rowDiffsForAttributes _dbSnapshot and _newRow missing attributes
- Subject: Re: rowDiffsForAttributes _dbSnapshot and _newRow missing attributes
- From: David Avendasora <email@hidden>
- Date: Mon, 14 Apr 2008 16:23:15 -0400
Okay, I added WOnder and made my server-side Application and Session
classes extend the ERX versions.
No Change. Same exact error in the same exact places.
Does the fact that WOnder didn't help in this situation help determine
what is wrong with it?
It definitely seems like the problem is with cascading-delete
relationships. If I make other changes to the Finished entity I don't
get the error, but if I "remove" a related object that is Owned by
Finished, I get the error.
If delete the target of the relationship instead of just removing it
from the relationship, it works as expected.
Thanks,
Dave
On Apr 11, 2008, at 3:03 PM, Chuck Hill wrote:
On Apr 11, 2008, at 11:23 AM, David Avendasora wrote:
On Apr 11, 2008, at 1:55 PM, Chuck Hill wrote:
Yeah, I am afraid so. I am trying to recall what thing_S_ can
cause this. Mike and I looked at this a while ago. It bit me.
HARD. I think my mind has pushed it out.
Are you using raw com.webobjects.eocontrol.EOEditingContext
editing contexts?!!?
Well, sort of.... Java Client, don't cha know.
IMO that class is WAAAAY too buggy to be used unpatched.
If you look at the stack trace, you can see that the server is
getting the EC sent back from the client, The server side then
tries to save it, and get's this error. Nothing but EOF here. No
Wonder, no JBND (yet :). Just classic D2JC. Hey. Stop Screaming.
The odd thing is that this is the first time I've seen this happen,
and this part of the application is the same as it's been for 2
years. The only exception to that is that I changed a couple non-
model attributes to ask the server for values instead of
calculating them on the client. But these are the attributes it's
complaining about.
I'm going to remove stop the RMI and see if that gets it working
again...
See you figured that out. It is some state corruption in EOF.
Still don't recall what...
Dave
On Apr 11, 2008, at 10:48 AM, David Avendasora wrote:
Oh God. No!
On Apr 11, 2008, at 1:40 PM, Chuck Hill wrote:
Run away! Run away!
On Apr 11, 2008, at 10:37 AM, David Avendasora wrote:
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)
_______________________________________________
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
--
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/products/practical_webobjects
--
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/products/practical_webobjects
--
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/products/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