Hi All -
We have a problem with sessions locking up, so I turned on the screaming editing context to see if that highlighted any problems. Anyway, the trace below has really confused me.
I've bolded the lines that are of interest. It's saying that it attempted to lock an editing context in a method called trainlineTicketTypes, but the ec was previously locked in a method called buildNewHotelProfile. The thing that's stumped me is both these methods use brand new ERXEC's via ERXEC.newEditingContext(). The one inside the long response is explicitly locked and unlocked in a try / catch / finally block, the other one is left to ERXEC autolocking.
Any ideas what is going wrong ?
Thanks, Simon
!!! Attempting to lock editing context from WOLongResponsePage: com.clicktravel.travelsystem.components.TrainSearchLongResponsePage that was previously locked in pool-130-thread-5!!! Current stack trace: java.lang.Throwable at com.clicktravel.plumbing.system.ScreamingEditingContext._trace(ScreamingEditingContext.java:52) at com.clicktravel.plumbing.system.ScreamingEditingContext.lock(ScreamingEditingContext.java:130) at com.webobjects.eocontrol.EOEditingContext.tryLock(EOEditingContext.java:4700) at com.webobjects.eocontrol.EOEditingContext._sendOrEnqueueNotification(EOEditingContext.java:4774) at com.webobjects.eocontrol.EOEditingContext._objectsChangedInStore(EOEditingContext.java:3598) at er.extensions.eof.ERXEC._objectsChangedInStore(ERXEC.java:1278) at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:120) at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:601) at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:545) at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:575) at com.webobjects.eocontrol.EOObjectStoreCoordinator._objectsChangedInSubStore(EOObjectStoreCoordinator.java:744) at sun.reflect.GeneratedMethodAccessor211.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:120) at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:601) at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:545) at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:575) at com.webobjects.eoaccess.EODatabaseContext._snapshotsChangedInDatabase(EODatabaseContext.java:3821) at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:120) at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:601) at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:545) at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:575) at com.webobjects.eoaccess.EODatabaseContext.commitChanges(EODatabaseContext.java:6589) at com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:425) at com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.java:3226) at er.extensions.eof.ERXEC._saveChanges(ERXEC.java:981) at
er.extensions.eof.ERXEC.saveChanges(ERXEC.java:903) at com.clicktravel.plumbing.foundation.Utilities.trainlineTicketTypes(Utilities.java:1008) at
com.clicktravel.travelsystem.plumbing.trains.Ticket.isStandardClass(Ticket.java:199) at com.clicktravel.travelsystem.plumbing.trains.TrainAvailRS.noneStandardTickets(TrainAvailRS.java:200) at com.clicktravel.policies.travel.BlogsTravelPolicy.applyTrainPolicy(BlogsTravelPolicy.java:258) at com.clicktravel.travelsystem.components.TrainSearchLongResponsePage.performAction(TrainSearchLongResponsePage.java:140) at com.webobjects.woextensions.WOLongResponsePage.run(WOLongResponsePage.java:119) at er.extensions.concurrency.ERXWOLongResponsePage.run(ERXWOLongResponsePage.java:23) at java.lang.Thread.run(Thread.java:613)
!!! Stack trace for most recent lock: java.lang.Throwable at com.clicktravel.plumbing.system.ScreamingEditingContext._trace(ScreamingEditingContext.java:52) at com.clicktravel.plumbing.system.ScreamingEditingContext.lock(ScreamingEditingContext.java:113) at com.clicktravel.travelsystem.plumbing.hotels.LTRUtilities.buildNewHotelProfile(LTRUtilities.java:142) at com.clicktravel.travelsystem.plumbing.hotels.LoadHotelProfilesService.execute(LoadHotelProfilesService.java:92) at com.clicktravel.plumbing.system.ComponentExecutor.executeGuardedly(ComponentExecutor.java:232) at com.clicktravel.plumbing.system.BlockExecutor.executeContainedComponentExecutors(BlockExecutor.java:102) at com.clicktravel.plumbing.system.BlockExecutor.executeComponentList(BlockExecutor.java:85) at com.clicktravel.plumbing.system.BlockExecutor.execute(BlockExecutor.java:56) at com.clicktravel.plumbing.system.ComponentExecutor.executeGuardedly(ComponentExecutor.java:232) at com.clicktravel.plumbing.system.ComponentExecutor.call(ComponentExecutor.java:186) at com.clicktravel.plumbing.system.ComponentExecutor.call(ComponentExecutor.java:1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) at java.util.concurrent.FutureTask.run(FutureTask.java:123) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Thread.java:613)