Re: recovering from a validation exception
Re: recovering from a validation exception
- Subject: Re: recovering from a validation exception
- From: Sacha Mallais <email@hidden>
- Date: Fri, 22 Apr 2005 09:31:12 -0700
On Apr 21, 2005, at 2:04 pm, Alexandre Mainville wrote:
I'm just starting out with java client apps myself, I'm starting to
get the bad feeling java client apps have a rather thin user base.
Don't understand why, the technology looks great and I'm certain that
if I could get it to work as advertised it would be a wonderful tool.
I agree: Java Client looks pretty cool, but is underused.
From what I have managed to grasp so far I think
EOGeneralAdaptorException are used only sever-side because they rely
on EOAccess
Makes sense.
while clients use EODistribution which leads to the interesting
question: how does one trap an optimistic locking failure on the
client? I'm still working on that one...
I would guess you catch that IllegalStateException... :-)
I created a fresh new db to run the test so the PK of 1 is ok.
Here is the trace of what happens during execution (sorry about the
long post...)
Notice that after the initial fetch, no other SQL is sent to the db so
I'm guessing it's complaining about differences in the snapshot cache
on the server and the snapshot cache on the client ????
That makes sense to me, but again I'm not much help with Java Client.
Given the dearth of responses, I'm guessing there aren't any on the
list either :-(
Good luck,
sacha
[Session started at 2005-04-21 16:39:54 -0400.]
Reading MacOSClassPath.txt ...
Launching temp.woa ...
java -XX:NewSize=2m -Xmx64m -Xms32m -DWORootDirectory="/System"
-DWOLocalRootDirectory=""
-DWOUserDirectory="/Users/alex/Projects/temp/build"
-DWOEnvClassPath="" -DWOApplicationClass=Application
-DWOPlatform=MacOS -Dcom.webobjects.pid=20086 -classpath
WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap
appRoot is /Users/alex/Projects/temp/build/temp.woa/Contents
Loading
/Users/alex/Projects/temp/build/temp.woa/Contents/MacOS/
MacOSClassPath.txt
Generated classpath:
/Users/alex/Projects/temp/build/temp.woa/Contents/Resources/Java/
temp.jar
/System/Library/Frameworks/JavaFoundation.framework/Resources/Java/
javafoundation.jar
/System/Library/Frameworks/JavaEOControl.framework/Resources/Java/
javaeocontrol.jar
/System/Library/Frameworks/JavaEOAccess.framework/Resources/Java/
javaeoaccess.jar
/System/Library/Frameworks/JavaWebObjects.framework/Resources/Java/
javawebobjects.jar
/System/Library/Frameworks/JavaWOExtensions.framework/Resources/Java/
JavaWOExtensions.jar
/System/Library/Frameworks/JavaXML.framework/Resources/Java/
javaxml.jar
/System/Library/Frameworks/JavaEOApplication.framework/Resources/Java/
javaeoapplication.jar
/System/Library/Frameworks/JavaEODistribution.framework/Resources/
Java/javaeodistribution.jar
/System/Library/Frameworks/JavaEOInterface.framework/Resources/Java/
javaeointerface.jar
/System/Library/Frameworks/JavaEOInterfaceSwing.framework/Resources/
Java/javaeointerfaceswing.jar
/System/Library/Frameworks/JavaJDBCAdaptor.framework/Resources/Java/
javajdbcadaptor.jar
/Library/Frameworks/PostgresqlPlugIn.framework/Resources/Java/
postgresqlplugin.jar
/Users/alex/Library/Java
/Library/Java/
/System/Library/Java/
/Network/Library/Java
/System/Library/Frameworks/JavaVM.framework/Classes/classes.jar
/System/Library/Frameworks/JavaVM.framework/Classes/ui.jar
/Library/WebObjects/Extensions/activation.jar
/Library/WebObjects/Extensions/avalon-framework-4.1.2.jar
/Library/WebObjects/Extensions/axis-ant.jar
/Library/WebObjects/Extensions/axis.jar
/Library/WebObjects/Extensions/clutil.jar
/Library/WebObjects/Extensions/commons-discovery.jar
/Library/WebObjects/Extensions/commons-logging.jar
/Library/WebObjects/Extensions/ejb-1.0.jar
/Library/WebObjects/Extensions/jaas_1.0.jar
/Library/WebObjects/Extensions/jaxrpc.jar
/Library/WebObjects/Extensions/jca_1.0.jar
/Library/WebObjects/Extensions/log4j-1.2.4.jar
/Library/WebObjects/Extensions/logkit-1.0.1.jar
/Library/WebObjects/Extensions/saaj.jar
/Library/WebObjects/Extensions/wsdl4j.jar
/Library/WebObjects/Extensions/
[2005-04-21 16:39:58 EDT] <main> WOMaxIOBufferSize=8196
[2005-04-21 16:39:58 EDT] <main> WOWorkerThreadCountMin=16
[2005-04-21 16:39:58 EDT] <main> WOSocketMonitorSleepTime=50
[2005-04-21 16:39:58 EDT] <main> WODirectConnectEnabled=true
[2005-04-21 16:39:58 EDT] <main> WOIncludeCommentsInResponse=false
[2005-04-21 16:39:58 EDT] <main> WOWorkerThreadCount=8
[2005-04-21 16:39:58 EDT] <main>
WOAdaptorURL=http://localhost/cgi-bin/WebObjects
[2005-04-21 16:39:58 EDT] <main> WOPlatform=MacOS
[2005-04-21 16:39:58 EDT] <main> WODebuggingEnabled=true
[2005-04-21 16:39:58 EDT] <main> WOEnvClassPath=
[2005-04-21 16:39:58 EDT] <main> WOListenQueueSize=128
[2005-04-21 16:39:58 EDT] <main> WOMissingResourceSearchEnabled=true
[2005-04-21 16:39:58 EDT] <main>
WOSessionStoreClassName=WOServerSessionStore
[2005-04-21 16:39:58 EDT] <main> WOContextClassName=WOContext
[2005-04-21 16:39:58 EDT] <main> WOCachingEnabled=false
[2005-04-21 16:39:58 EDT] <main> WOApplicationClass=Application
[2005-04-21 16:39:58 EDT] <main> WOAcceptMalformedCookies=false
[2005-04-21 16:39:58 EDT] <main> NSProjectSearchPath=("..")
[2005-04-21 16:39:58 EDT] <main> WOMonitorEnabled=false
[2005-04-21 16:39:58 EDT] <main> WOAllowRapidTurnaround=true
[2005-04-21 16:39:58 EDT] <main> WORootDirectory=/System
[2005-04-21 16:39:58 EDT] <main> WOLocalRootDirectory=
[2005-04-21 16:39:58 EDT] <main> WOGenerateWSDL=true
[2005-04-21 16:39:58 EDT] <main> WOWorkerThreadCountMax=256
[2005-04-21 16:39:58 EDT] <main>
WOAllowsConcurrentRequestHandling=false
[2005-04-21 16:39:58 EDT] <main> WOAdaptor=WODefaultAdaptor
[2005-04-21 16:39:58 EDT] <main> WOSessionTimeOut=3600
[2005-04-21 16:39:58 EDT] <main> WOMaxSocketIdleTime=180000
[2005-04-21 16:39:58 EDT] <main> WODefaultUndoStackLimit=10
[2005-04-21 16:39:58 EDT] <main> WOAutoOpenClientApplication=true
[2005-04-21 16:39:58 EDT] <main> WOAutoOpenInBrowser=true
[2005-04-21 16:39:58 EDT] <main> WOApplicationBaseURL=/WebObjects
[2005-04-21 16:39:58 EDT] <main> WOMaxHeaders=200
[2005-04-21 16:39:58 EDT] <main> WOLifebeatEnabled=true
[2005-04-21 16:39:58 EDT] <main> WOAllowsCacheControlHeader=true
[2005-04-21 16:39:58 EDT] <main> WOSMTPHost=smtp
[2005-04-21 16:39:58 EDT] <main>
WOFrameworksBaseURL=/WebObjects/Frameworks
[2005-04-21 16:39:58 EDT] <main> WOAdditionalAdaptors=()
[2005-04-21 16:39:58 EDT] <main> WOLifebeatDestinationPort=1085
[2005-04-21 16:39:58 EDT] <main> WOPort=55555
[2005-04-21 16:39:58 EDT] <main> WOLifebeatInterval=30
[2005-04-21 16:39:58 EDT] <main> WOSocketCacheSize=100
[2005-04-21 16:39:58 EDT] <main>
WOUserDirectory=/Users/alex/Projects/temp/build
[2005-04-21 16:39:58 EDT] <main> WODisplayExceptionPages=true
[2005-04-21 16:39:58 EDT] <main> com.webobjects.pid = 20086
[2005-04-21 16:39:58 EDT] <main> ------------------------
[2005-04-21 16:39:58 EDT] <main> Created adaptor of class
WODefaultAdaptor on port 55555 and address
mini.groupemetrik.com/192.168.1.109 with WOWorkerThread minimum of 16
and maximum of 256
[2005-04-21 16:39:58 EDT] <main> NSBundle is unable to find
"ExtensionsForResources.plist" in the main bundle. Ignoring optional
configuration file.
[2005-04-21 16:39:58 EDT] <main> Application project found: Will
locate resources in '' rather than
'/Users/alex/Projects/temp/build/temp.woa' .
[2005-04-21 16:39:59 EDT] <main> *** The application has found the
following opened, development-mode ProjectBuilder projects:
(<com.webobjects.appserver._private.WOProjectBundle:
projectName='temp';
bundlePath='/Users/alex/Projects/temp/build/temp.woa';
projectPath=''>)
[2005-04-21 16:39:59 EDT] <main> Creating LifebeatThread now with:
temp 55555 mini.groupemetrik.com/192.168.1.109 1085 30000
Welcome to temp!
[2005-04-21 16:39:59 EDT] <main> Opening client application with
script:
/Users/alex/Projects/temp/build/temp.woa/Contents/MacOS/temp_Client
http://mini.groupemetrik.com:55555/cgi-bin/WebObjects/temp.woa
[2005-04-21 16:40:00 EDT] <main> The URL for webserver connect is:
http://mini.groupemetrik.com/cgi-bin/WebObjects/temp.woa/-55555
The URL for direct connect is:
http://mini.groupemetrik.com:55555/cgi-bin/WebObjects/temp.woa
[2005-04-21 16:39:59 EDT] <main> Waiting for requests...
>>>>>>>>>>>>>>>>>>>>>> APPLICATION STARTED
[2005-04-21 16:40:04 EDT] <WorkerThread0>
com.webobjects.eoaccess.EODatabase@bb73b0 added model at path
"file:/Users/alex/Projects/temp/build/temp.woa/Contents/Resources/
temp.eomodeld".
[2005-04-21 16:40:04 EDT] <WorkerThread0> Using JDBCPlugIn
'PostgresqlPlugIn' for JDBCAdaptor@9573108
[2005-04-21 16:40:04 EDT] <WorkerThread0> connecting with dictionary:
{plugin = "PostgresqlPlugIn"; username = "alex"; driver =
"org.postgresql.Driver"; password = "<password deleted for log>"; URL
= "jdbc:postgresql:test"; }
[2005-04-21 16:40:04 EDT] <WorkerThread0> === Begin Internal
Transaction
[2005-04-21 16:40:04 EDT] <WorkerThread0> evaluateExpression:
<com.webobjects.jdbcadaptor.PostgresqlExpression: "SELECT t0.key,
t0.name FROM test t0">
[2005-04-21 16:40:04 EDT] <WorkerThread0> 1 row(s) processed
[2005-04-21 16:40:04 EDT] <WorkerThread0> === Commit Internal
Transaction
>>>>>>>>>>>>>>>>>>>>>>> WINDOW VISIBLE, FIELDS POPULATED WITH DATA
>>>>>>>>>>>>>>>>>>>>>>> USER HITS SAVE FOR THE FIRST TIME HERE
[2005-04-21 16:40:25 EDT] <WorkerThread0>
com.webobjects.foundation.NSValidation$ValidationException: always
fail...
at TestServer.validateName(TestServer.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
va:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
rImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
com.webobjects.foundation._NSReflectionUtilities._invokeMethodOnObject(
_NSReflectionUtilities.java:383)
at
com.webobjects.foundation.NSValidation$_MethodBinding.validateValueOnOb
ject(NSValidation.java:615)
at
com.webobjects.foundation.NSValidation$DefaultImplementation._validateV
alueForKey(NSValidation.java:705)
at
com.webobjects.eocontrol.EOCustomObject.validateValueForKey(EOCustomObj
ect.java:1341)
at
com.webobjects.eocontrol.EOCustomObject.validateForSave(EOCustomObject.
java:1411)
at
com.webobjects.eocontrol.EOCustomObject.validateForUpdate(EOCustomObjec
t.java:1490)
at
com.webobjects.eocontrol.EOEditingContext.validateTable(EOEditingContex
t.java:2177)
at
com.webobjects.eocontrol.EOEditingContext.validateChangesForSave(EOEdit
ingContext.java:2964)
at
com.webobjects.eocontrol.EOEditingContext._prepareForPushChanges(EOEdit
ingContext.java:3205)
at
com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.
java:3135)
at
com.webobjects.eodistribution.EODistributionContext$_RemoteMethodReceiv
er.clientSideRequestSave(EODistributionContext.java:1071)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
va:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
rImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.webobjects.foundation.NSSelector.invoke(NSSelector.java:354)
at
com.webobjects.foundation.NSSelector._safeInvokeSelector(NSSelector.jav
a:108)
at
com.webobjects.eodistribution.common._EOServerInvocation.doInvokeWithTa
rget(_EOServerInvocation.java:140)
at
com.webobjects.eodistribution.EODistributionContext._processClientReque
st(EODistributionContext.java:488)
at
com.webobjects.eodistribution.EODistributionContext.responseToClientMes
sage(EODistributionContext.java:577)
at
com.webobjects.eodistribution.WOJavaClientComponent.handleClientRequest
(WOJavaClientComponent.java:1105)
at
com.webobjects.eodistribution.WOJavaClientComponent.invokeAction(WOJava
ClientComponent.java:343)
at
com.webobjects.appserver._private.WOComponentReference.invokeAction(WOC
omponentReference.java:104)
at
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(W
ODynamicGroup.java:101)
at
com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamic
Group.java:110)
at
com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:
945)
at
com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1166)
at
com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:
1377)
at com.webobjects.appserver[2005-04-21 16:40:25 EDT] <WorkerThread0>
Server exception: always fail...
._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOCompone
ntRequestHandler.java:196)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWi
thPreparedSession(WOComponentRequestHandler.java:287)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWi
thPreparedApplication(WOComponentRequestHandler.java:322)
at
com.webobjects.appserver._private.WOComponentRequestHandler._handleRequ
est(WOComponentRequestHandler.java:358)
at
com.webobjects.appserver._private.WOComponentRequestHandler.handleReque
st(WOComponentRequestHandler.java:432)
at
com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.ja
va:1308)
at
com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread
.java:173)
at
com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.jav
a:254)
at java.lang.Thread.run(Thread.java:552)
>>>>>>>>>>>>>>>>>>>>>>> USER GETS A DIALOG WITH VALIDATION ERROR
>>>>>>>>>>>>>>>>>>>>>>> USER HITS SAVE FOR THE SECOND TIME HERE
>>>>>>>>>>>>>>>>>>>>>>> NOTE THE ABSENCE OF ANY SQL?????
[2005-04-21 16:40:30 EDT] <WorkerThread0>
java.lang.IllegalStateException: Optimistic locking failure: The
object with global ID _EOIntegralKeyGlobalID[Test
(java.lang.Integer)1] has been changed by another client
at
com.webobjects.eodistribution.EODistributionContext._throwOptimisticLoc
kingFailureForGlobalIDIfNecessary(EODistributionContext.java:822)
at
com.webobjects.eodistribution.common._EOSavingProxy.replacementEOInEdit
ingContext(_EOSavingProxy.java:135)
at
com.webobjects.eodistribution.EODistributionContext._replacementObjectF
orDecodedObject(EODistributionContext.java:875)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
rImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:
120)
at
com.webobjects.foundation._NSDelegate._perform(_NSDelegate.java:225)
at com.webobjects.foundation._NSDelegate.perform(_NSDelegate.java:162)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeO
bject(_EOReferenceRecordingCoder.java:559)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeO
bjects(_EOReferenceRecordingCoder.java:587)
at com.webobjects.foundation.NSArray.decodeObject(NSArray.java:1272)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
va:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
rImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder$_Decode
r.decodeObject(_EOReferenceRecordingCoder.java:704)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeO
bject(_EOReferenceRecordingCoder.java:551)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeO
bjects(_EOReferenceRecordingCoder.java:587)
at
com.webobjects.eodistribution.common._EOServerInvocation.decodeObject(_
EOServerInvocation.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
va:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
rImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder$_Decode
r.decodeObject(_EOReferenceRecordingCoder.java:704)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeO
bject(_EOReferenceRecordingCoder.java:551)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeO
bjects(_EOReferenceRecordingCoder.java:587)
at com.webobjects.foundation.NSArray.decodeObject(NSArray.java:1272)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
va:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
rImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder$_Decode
r.decodeObject(_EOReferenceRecordingCoder.java:704)
at
com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeO
bject(_EOReferenceRecordingCoder.java:551)
at
com.webobjects.eodistribution.EODistributionContext.responseToClientMes
sage(EODistributionContext.java:555)
at
com.webobjects.eodistribution.WOJavaClientComponent.handleClientRequest
(WOJavaClientComponent.java:1105)
at
com.webobjects.eodistribution.WOJavaClientComponent.invokeAction(WOJava
ClientComponent.java:343)
at
com.webobjects.appserver._private.WOComponentReference.invokeAction(WOC
omponentReference.java:104)
at
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(W
ODynamicGroup.java:101)
at
com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamic
Group.java:110)
at
com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:
945)
at
com.webobjects.appserver.WOSession.invokeAction(WOSession.ja[2005-04
-21 16:40:30 EDT] <WorkerThread0> Server exception: Optimistic locking
failure: The object with global ID _EOIntegralKeyGlobalID[Test
(java.lang.Integer)1] has been changed by another client
va:1166)
at
com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:
1377)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWi
thPreparedPage(WOComponentRequestHandler.java:196)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWi
thPreparedSession(WOComponentRequestHandler.java:287)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWi
thPreparedApplication(WOComponentRequestHandler.java:322)
at
com.webobjects.appserver._private.WOComponentRequestHandler._handleRequ
est(WOComponentRequestHandler.java:358)
at
com.webobjects.appserver._private.WOComponentRequestHandler.handleReque
st(WOComponentRequestHandler.java:432)
at
com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.ja
va:1308)
at
com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread
.java:173)
at
com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.jav
a:254)
at java.lang.Thread.run(Thread.java:552)
On 21-Apr-05, at 2:53 PM, Sacha Mallais wrote:
On Apr 20, 2005, at 7:20 pm, Alexandre Mainville wrote:
Unless the WO or EOF framework is doing something I'm not aware of
and that is not tracable with EOAdaptorDebugEnabled, I'm certain no
changes have been made on the database (I'm the only user on a
single instance).
Ok, good.
The app already handles valid optimistic locking exceptions
gracefully by warning the user and refaulting.
Here is the exception I get:
I'm not too familiar with the eodistribution framework. I was
expecting a EOGeneralAdaptorException.
java.lang.IllegalStateException: Server exception: Optimistic
locking failure: The object with global ID
_EOIntegralKeyGlobalID[Test (java.lang.Integer)1] has been changed
by another client
at
com.webobjects.eodistribution.client.EODistributedObjectStore._checkR
eturnValuesForExceptions(EODistributedObjectStore.java:565)
at
com.webobjects.eodistribution.client.EODistributedObjectStore._send(E
ODistributedObjectStore.java:593)
at
com.webobjects.eodistribution.client.EODistributedObjectStore.saveCha
ngesInEditingContext(EODistributedObjectStore.java:423)
at
com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContex
t.java:3148)
at temp.client.temp.saveChanges(temp.java:29)
at
com.webobjects.eoapplication.EODocumentController._saveIfUserConfirms
(EODocumentController.java:670)
at
com.webobjects.eoapplication.EODocumentController.save(EODocumentCont
roller.java:617)
Is this the first such object in your app? The PK of 1 is a little
suspicious.
I'm afraid I'm out of my area of expertise here. Try posting the SQL
that gets generated: optimistic locking failures normally only occur
if the database has changed, but maybe this problem is something more
directly related to JavaClient.
HTH,
sacha
--
Sacha Michel Mallais - 800 lb. gorilla
Global Village Consulting Inc.: http://www.global-village.net/
ObAd: read "Practical WebObjects" <fnord>
http://www.global-village.net/products/practical_webobjects
--
Sacha Michel Mallais - 400 lb. chimp
Global Village Consulting Inc.: http://www.global-village.net/
Choke on that, causality! -- the Professor, "Futurama"
_______________________________________________
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