Re: ERXEC and methods getting called without lock
Re: ERXEC and methods getting called without lock
- Subject: Re: ERXEC and methods getting called without lock
- From: Anjo Krank <email@hidden>
- Date: Fri, 5 Aug 2005 12:25:50 +0200
You still have to lock the EC before using it. ERXEC just prevents
leaving locked EC afters the RR loop. However, you can also set the
autoLock stuff to on
er.extensions.ERXEC.defaultAutomaticLockUnlock=true
in which case the EC will get automatically looked. As this can lead
to deadlocks I normally don´t recommend it, though.
Cheers, Anjo
Am 05.08.2005 um 12:16 schrieb Daniel Eggert:
On Aug 4, 2005, at 10:35 PM, Giorgio Valoti wrote:
On 04/ago/05, at 21:04, Daniel Eggert wrote:
I'm using (Project Wonder's) ERXEC, since I use several editing
contexts, but I'm seeing this in my log:
[…]
2005-08-04 20:54:50,014 WARN Aurora[24636:50000 1] LockLogger
(ERXEC.java:251) - called method recordObject without a lock,
ec=er.extensions.ERXEC@64b898
What does that mean? Is there some non-ERXEC editing context
around, or is some ERXEC not locking?
The ERXEC is not locked, you could activate the debug log to get a
stack trace and the detect the origin.
OK. Things look like this:
2005-08-05 12:11:51,001 DEBUG Aurora[26873:50000 1] LockLoggerTrace
(ERXEC.java:249) - called method recordObject without a lock,
ec=er.extensions.ERXEC@32dc75
java.lang.Exception
at er.extensions.ERXEC.autoLock(ERXEC.java:249)
at er.extensions.ERXEC.recordObject(ERXEC.java:295)
at com.webobjects.eoaccess.EODatabaseChannel._fetchObject
(EODatabaseChannel.java:417)
at
com.webobjects.eoaccess.EODatabaseContext._objectsWithFetchSpecificati
onEditingContext(EODatabaseContext.java:3221)
at
com.webobjects.eoaccess.EODatabaseContext.objectsWithFetchSpecificatio
n(EODatabaseContext.java:3346)
at
com.webobjects.eocontrol.EOObjectStoreCoordinator.objectsWithFetchSpec
ification(EOObjectStoreCoordinator.java:539)
at
com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecificatio
n(EOEditingContext.java:4111)
at er.extensions.ERXEC.objectsWithFetchSpecification(ERXEC.java:
547)
at com.webobjects.eoaccess.EODatabaseDataSource.fetchObjects
(EODatabaseDataSource.java:633)
at com.webobjects.appserver.WODisplayGroup.fetch
(WODisplayGroup.java:2191)
at EditAuthors.authorDisplayGroup(EditAuthors.java:36)
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:324)
at KeyValueCodingProtectedAccessor.methodValue
(KeyValueCodingProtectedAccessor.java:54)
at com.webobjects.foundation.NSKeyValueCoding
$_MethodBinding.valueInObject(NSKeyValueCoding.java:1160)
at com.webobjects.foundation.NSKeyValueCoding
$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1268)
at com.webobjects.appserver.WOComponent.valueForKey
(WOComponent.java:1539)
at com.webobjects.foundation.NSKeyValueCoding
$Utility.valueForKey(NSKeyValueCoding.java:498)
at com.webobjects.foundation.NSKeyValueCodingAdditions
$DefaultImplementation.valueForKeyPath
(NSKeyValueCodingAdditions.java:216)
at com.webobjects.appserver.WOComponent.valueForKeyPath
(WOComponent.java:1600)
at
com.webobjects.appserver._private.WOKeyValueAssociation.valueInCompone
nt(WOKeyValueAssociation.java:46)
at com.webobjects.appserver._private.WOString.appendToResponse
(WOString.java:55)
at
com.webobjects.appserver._private.WODynamicGroup.appendChildrenToRespo
nse(WODynamicGroup.java:121)
at
com.webobjects.appserver._private.WODynamicGroup.appendToResponse
(WODynamicGroup.java:130)
at com.webobjects.appserver.WOComponent.appendToResponse
(WOComponent.java:992)
at com.webobjects.appserver.WOSession.appendToResponse
(WOSession.java:1200)
at com.webobjects.appserver.WOApplication.appendToResponse
(WOApplication.java:1418)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchW
ithPreparedPage(WOComponentRequestHandler.java:230)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchW
ithPreparedSession(WOComponentRequestHandler.java:287)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchW
ithPreparedApplication(WOComponentRequestHandler.java:322)
at
com.webobjects.appserver._private.WOComponentRequestHandler._handleReq
uest(WOComponentRequestHandler.java:358)
at
com.webobjects.appserver._private.WOComponentRequestHandler.handleRequ
est(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:552)
I'm still lost. What should I do about this? The display group does
a fetch(), but what am I doing wrong here?
/Daniel
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40logicunited.com
This email sent to email@hidden
_______________________________________________
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