On Sep 3, 2008, at 7:05 PM, Owen McKerrow wrote:

Hi All,

Updating an old application and have come across a very weird situation. Code which was working fine 2 days ago now produces an error. So I made the simplest test case I could and yet I still get the error.....

GeneralInfo gi = (GeneralInfo)EOUtilities.objectWithFetchSpecificationAndBindings(ec, "GeneralInfo", "find", new NSDictionary());
gi.setUpdaterRunning(new Integer(3));
ec.saveChanges();

which produces the following SQL and error message

....
11:58:39,855 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - evaluateExpression: <com.webobjects.jdbcadaptor.OraclePlugIn $OracleExpression: "SELECT t0.client_id, t0.common_rules, t0.general_info, t0.menu_Message, t0.updater_running FROM GENERAL_INFO t0 WHERE t0.client_id = ?" withBindings: 1:2(client_id)> 11:58:39,863 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - 1 row(s) processed 11:58:39,864 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - === Commit Internal Transaction

11:58:39,881 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - === Begin Internal Transaction 11:58:39,881 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - evaluateExpression: <com.webobjects.jdbcadaptor.OraclePlugIn $OracleExpression: "SELECT t0.client_id, t0.common_rules, t0.general_info, t0.menu_Message, t0.updater_running FROM GENERAL_INFO t0 WHERE t0.client_id = ? FOR UPDATE" withBindings: 1:2(client_id)>

Are you using Vertical Inheritance? If so, I think this can produce this FOR UPDATE. Or maybe it is an EOF in concert with VI. Otherwise, something is messed up in your model or code and making EOF confused. What has changed in the last two days? svn log -verbose is your friend here




11:58:39,893 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - 1 row(s) processed 11:58:39,898 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - === Rollback Internal Transaction 11:58:39,898 DEBUG [Thread-1] (Main:187 doUpdate) - updateStatementForRow: qualifier may not be null 11:58:39,934 OFF [Thread-1] (Log.NSLogErr:1546 appendln) - EXCEPTION:
updateStatementForRow: qualifier may not be null

That looks like there is no PK or locking on all columns has been turned off or something dreadful like that. Give that model a close once over.


DATE/TIME:
2008-09-04 01:58:39 Etc/GMT

null

STACK TRACE:
at _exceptionWithDatabaseContextInformationAdded(EODatabaseContext.java: 4685)
at performChanges(EODatabaseContext.java:6393)
at saveChangesInEditingContext(EOObjectStoreCoordinator.java:415)
at saveChanges(EOEditingContext.java:3226)
at doUpdate(SyncUtil.java:114)
at run(SyncUtil.java:81)

I don't understand why it wants to fetch the GeneralInfo object from the database again? And I don't think I have ever seen SQL "FOR UPDATE" which is tacked onto the end of the second select statement.

Can anyone suggest what may be going on and why ?


Hopefully the above will shed some light.

Chuck


--
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/products/practical_webobjects






_______________________________________________
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