You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Arunas F <ar...@gmail.com> on 2013/04/18 17:31:42 UTC

[T5 5.3.6] Dead Lock while initializing tapestry

Hi,

We are using T5 version 5.3.6. I found that Tapestry runs into a dead 
lock while building registry (initializing) if I start a new Thread what 
uses some T5 services.
Right now we have disabled multi threading while initializing app. But I 
would like to know, is it a T5 bug and I should file it into JIRA or 
this is an expected behavior and it is a T5 limitation.


Problem description: If the T5 registry and new Thread tries to create 
same service (from proxy) simultaneously sometimes you can run into 
deadlock and T5 app wont initialize. In the stacktrace dump below, you 
can find that  both threads tried to create MongoDB instance and ran 
into a deadlock.


Found one Java-level deadlock:
=============================
"Thread-10":
   waiting for ownable synchronizer 0x00000007c27e65f0, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
   which is held by "Thread-4"
"Thread-4":
   waiting to lock monitor 0x00007fdf5b91c658 (object 0x00000007eda35c20, a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator),
   which is held by "Thread-10"

Java stack information for the threads listed above:
===================================================
"Thread-10":
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000007c27e65f0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282)
	at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:731)
	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:75)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:868)
	at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
	at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
	at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
	at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
	at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
	at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
	at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
	- locked <0x00000007eda35c20> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
	at $MongoDBSource_12f60d9b0a6e8bb2.delegate(Unknown Source)
	at $MongoDBSource_12f60d9b0a6e8bb2.getMongo(Unknown Source)
	at org.apache.tapestry5.internal.mongodb.MongoDBImpl.<init>(MongoDBImpl.java:30)
	at org.apache.tapestry5.mongodb.MongoDBModule.buildMongoDB(MongoDBModule.java:46)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
	at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
	at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:47)
*	at $MongoDB_12f60d9b0a6e8bb1.delegate(Unknown Source)
	at $MongoDB_12f60d9b0a6e8bb1.getMongoDb(Unknown Source)
	at $MongoDB_12f60d9b0a6e8b77.getMongoDb(Unknown Source)*
	at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.getCollection(EtlAbstractJob.java:142)
	at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.ensureIndex(EtlAbstractJob.java:117)
	at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.ensureIndex(EtlAbstractJob.java:112)
	at eu.openg.colibri.reporting.service.etl.job.pcr.common.PcrFormSingleRowJob.initialize(PcrFormSingleRowJob.java:52)
	at eu.openg.colibri.reporting.service.etl.job.pcr.MissionBook.initialize(MissionBook.java:55)
	at eu.openg.colibri.reporting.service.etl.EtlManager$1.run(EtlManager.java:38)
	at java.lang.Thread.run(Thread.java:722)
"Thread-4":
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:61)
	- waiting to lock <0x00000007eda35c20> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
	at $MongoDBSource_12f60d9b0a6e8bb2.delegate(Unknown Source)
	at $MongoDBSource_12f60d9b0a6e8bb2.getMongo(Unknown Source)
	at org.apache.tapestry5.internal.mongodb.MongoDBImpl.<init>(MongoDBImpl.java:30)
	at org.apache.tapestry5.mongodb.MongoDBModule.buildMongoDB(MongoDBModule.java:46)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
	at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
	at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:47)
*	at $MongoDB_12f60d9b0a6e8bb1.delegate(Unknown Source)
	at $MongoDB_12f60d9b0a6e8bb1.getMongoDb(Unknown Source)
	at $MongoDB_12f60d9b0a6e8b77.getMongoDb(Unknown Source)*
	at eu.openg.colibri.reporting.service.miner.Miner.ensureIndex(Miner.java:41)
	at eu.openg.colibri.reporting.service.miner.Miner.ensureIndex(Miner.java:35)
	at eu.openg.colibri.reporting.service.miner.sources.dekbera.TeamStatusMiner.initialize(TeamStatusMiner.java:61)
	at eu.openg.colibri.reporting.service.miner.Miner.<init>(Miner.java:23)
	at eu.openg.colibri.reporting.service.miner.sources.dekbera.TeamStatusMiner.<init>(TeamStatusMiner.java:42)
	at eu.openg.colibri.reporting.service.ReportMinerModule.buildDekberaTeamStatusMiner(ReportMinerModule.java:84)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
	at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
	at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
	at org.apache.tapestry5.ioc.internal.ModuleImpl$4.invoke(ModuleImpl.java:284)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:332)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.access$100(ModuleImpl.java:39)
	at org.apache.tapestry5.ioc.internal.ModuleImpl$1.invoke(ModuleImpl.java:191)
	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withWrite(ConcurrentBarrier.java:140)
	at org.apache.tapestry5.ioc.internal.ModuleImpl$2.invoke(ModuleImpl.java:207)
	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
	at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.extractServiceFromMatches(RegistryImpl.java:925)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.findServiceByMarkerAndType(RegistryImpl.java:909)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:863)
	at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParametersForMethod(InternalUtils.java:264)
	at org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:117)
	at org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:80)
	at org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:633)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:629)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:483)
	at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)
	at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:107)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getOrderedConfiguration(ServiceResourcesImpl.java:105)
	at org.apache.tapestry5.ioc.internal.AbstractServiceCreator.getOrderedConfiguration(AbstractServiceCreator.java:123)
	at org.apache.tapestry5.ioc.internal.AbstractServiceCreator.access$200(AbstractServiceCreator.java:35)
	at org.apache.tapestry5.ioc.internal.AbstractServiceCreator$1.findResource(AbstractServiceCreator.java:103)
	at org.apache.tapestry5.ioc.internal.util.DelegatingInjectionResources.findResource(DelegatingInjectionResources.java:38)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:231)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
	at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
	at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
	at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
	at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
	at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
	at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
	- locked <0x00000007ed2637e8> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
	at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
	at $Runnable_12f60d9b0a6e8bac.delegate(Unknown Source)
	at $Runnable_12f60d9b0a6e8bac.run(Unknown Source)
	at org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:325)
	at org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
	at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118)
	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	- locked <0x00000007c277d608> (a java.lang.Object)
	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272)
	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489)
	at org.gradle.api.plugins.jetty.internal.JettyPluginWebAppContext.doStart(JettyPluginWebAppContext.java:112)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	- locked <0x00000007c253f860> (a java.lang.Object)
	at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
	at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	- locked <0x00000007c253fec0> (a java.lang.Object)
	at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	- locked <0x00000007c253f918> (a java.lang.Object)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.Server.doStart(Server.java:224)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	- locked <0x00000007c253f8d0> (a java.lang.Object)
	at org.gradle.api.plugins.jetty.internal.Jetty6PluginServer.start(Jetty6PluginServer.java:111)
	at org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJettyInternal(AbstractJettyRunTask.java:247)
	at org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJetty(AbstractJettyRunTask.java:198)
	at org.gradle.api.plugins.jetty.AbstractJettyRunTask.start(AbstractJettyRunTask.java:169)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
	at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:216)
	at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:122)
	at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147)
	at org.gradle.api.plugins.jetty.JettyRun_Decorated.invokeMethod(Unknown Source)
	at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source)
	at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:161)
	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:156)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:510)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:499)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:64)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:49)
	at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)
	at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34)
	at org.gradle.internal.Factories$1.create(Factories.java:22)
	at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:179)
	at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:232)
	at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
	at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
	at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
	at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:275)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.executeTask(DefaultTaskPlanExecutor.java:52)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.processTask(DefaultTaskPlanExecutor.java:38)
	at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker$1.run(ParallelTaskPlanExecutor.java:113)
	at org.gradle.internal.Factories$1.create(Factories.java:22)
	at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:124)
	at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:112)
	at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:134)
	at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
	at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker.executeTaskWithCacheLock(ParallelTaskPlanExecutor.java:110)
	at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker.run(ParallelTaskPlanExecutor.java:100)
	at java.lang.Thread.run(Thread.java:722)

Found 1 deadlock.

Heap
  PSYoungGen      total 286272K, used 56115K [0x00000007eaab0000, 0x00000007febe0000, 0x0000000800000000)
   eden space 269504K, 20% used [0x00000007eaab0000,0x00000007ee17cdf0,0x00000007fb1e0000)
   from space 16768K, 0% used [0x00000007fdb80000,0x00000007fdb80000,0x00000007febe0000)
   to   space 20800K, 0% used [0x00000007fc340000,0x00000007fc340000,0x00000007fd790000)
  ParOldGen       total 100864K, used 55724K [0x00000007c0000000, 0x00000007c6280000, 0x00000007eaab0000)
   object space 100864K, 55% used [0x00000007c0000000,0x00000007c366b120,0x00000007c6280000)
  PSPermGen       total 77120K, used 40052K [0x00000007b0000000, 0x00000007b4b50000, 0x00000007c0000000)
   object space 77120K, 51% used [0x00000007b0000000,0x00000007b271d388,0x00000007b4b50000)

2013-04-18 17:18:42
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.0-b21 mixed mode):


Best regards,
Arunas F

Re: [T5 5.3.6] Dead Lock while initializing tapestry

Posted by "mailinglist@j-b-s.de" <ma...@j-b-s.de>.
Sorry I do not understand your response. From the stacktrace T5 is building your service. In the constructor of the service currently created you are spawning a new thread which again needs services from the T5 app in the run method, right?

Can't you defer thread creation to a method in your module class annotated by @Startup
?

Jens

Sent from my iPhone

On 18.04.2013, at 19:02, Arunas F <ar...@gmail.com> wrote:

> No, not at all. New Thread is spawned at some moment while initializing T5 app. And there is nothing special about a code:
> 
> 
> new Thread(new Runnable() {
> 
>            @Override
>            public void run() {
>                if (logger.isDebugEnabled()) logger.debug(etlName + " initializing... ");
> 
>                try {
> 
>                    for (EtlAbstractJob job : jobs.getJobs()) {
>                        job.initialize();
>                    }
> 
>                } catch (EtlJobException e) {
>                    logger.error(e.toString());
>                    e.printStackTrace();
>                }
> 
>                if (logger.isDebugEnabled()) logger.debug(etlName + " finished initialization... ");
>            }
> 
>        }).start();
> 
> 
> And in the code  at line "job.initialize();" the var job are T5 IOC services and these services depend on MongoDB service at some deeper level.
> 
> public class ReportStorageImpl implements ReportStorage {
> 
> .....
> 
>    private MongoDB mongoDB;
> 
>    public ReportStorageImpl(MongoDB mongoDB) {
>        this.mongoDB = mongoDB;
>    }
> 
> ......
> 
>    @Override
>    public MongoDB getMongoDB() {
>        return mongoDB;
>    }
> }
> 
> About MongoDB also nothing special. The module is taken from https://github.com/mlusetti/tapestry-mongodb-core (look at earlier revisions).
> 
> 
> BR,
> Arunas
> 
> 
> On 18/04/2013 18:53, mailinglist@j-b-s.de wrote:
>> Are you spawning a new thread in your MongoDBImpl.java:30 which makes use of T5 services, too? From the Stacktrace you are (well T5 IOC is) building the mongodb service right now. What happens in the ctor of your class? Can you paste some code??
>> 
>> Jens
>> 
>> Sent from my iPhone
>> 
>> On 18.04.2013, at 17:31, Arunas F <ar...@gmail.com> wrote:
>> 
>>> Hi,
>>> 
>>> We are using T5 version 5.3.6. I found that Tapestry runs into a dead lock while building registry (initializing) if I start a new Thread what uses some T5 services.
>>> Right now we have disabled multi threading while initializing app. But I would like to know, is it a T5 bug and I should file it into JIRA or this is an expected behavior and it is a T5 limitation.
>>> 
>>> 
>>> Problem description: If the T5 registry and new Thread tries to create same service (from proxy) simultaneously sometimes you can run into deadlock and T5 app wont initialize. In the stacktrace dump below, you can find that  both threads tried to create MongoDB instance and ran into a deadlock.
>>> 
>>> 
>>> Found one Java-level deadlock:
>>> =============================
>>> "Thread-10":
>>>  waiting for ownable synchronizer 0x00000007c27e65f0, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
>>>  which is held by "Thread-4"
>>> "Thread-4":
>>>  waiting to lock monitor 0x00007fdf5b91c658 (object 0x00000007eda35c20, a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator),
>>>  which is held by "Thread-10"
>>> 
>>> Java stack information for the threads listed above:
>>> ===================================================
>>> "Thread-10":
>>>    at sun.misc.Unsafe.park(Native Method)
>>>    - parking to wait for  <0x00000007c27e65f0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
>>>    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>>>    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
>>>    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964)
>>>    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282)
>>>    at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:731)
>>>    at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:75)
>>>    at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
>>>    at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:868)
>>>    at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
>>>    at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
>>>    at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>>    at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
>>>    at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
>>>    at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
>>>    at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
>>>    at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
>>>    - locked <0x00000007eda35c20> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
>>>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>>>    at $MongoDBSource_12f60d9b0a6e8bb2.delegate(Unknown Source)
>>>    at $MongoDBSource_12f60d9b0a6e8bb2.getMongo(Unknown Source)
>>>    at org.apache.tapestry5.internal.mongodb.MongoDBImpl.<init>(MongoDBImpl.java:30)
>>>    at org.apache.tapestry5.mongodb.MongoDBModule.buildMongoDB(MongoDBModule.java:46)
>>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>    at java.lang.reflect.Method.invoke(Method.java:601)
>>>    at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
>>>    at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
>>>    at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>>    at org.apache.tapestry5.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:47)
>>> *    at $MongoDB_12f60d9b0a6e8bb1.delegate(Unknown Source)
>>>    at $MongoDB_12f60d9b0a6e8bb1.getMongoDb(Unknown Source)
>>>    at $MongoDB_12f60d9b0a6e8b77.getMongoDb(Unknown Source)*
>>>    at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.getCollection(EtlAbstractJob.java:142)
>>>    at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.ensureIndex(EtlAbstractJob.java:117)
>>>    at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.ensureIndex(EtlAbstractJob.java:112)
>>>    at eu.openg.colibri.reporting.service.etl.job.pcr.common.PcrFormSingleRowJob.initialize(PcrFormSingleRowJob.java:52)
>>>    at eu.openg.colibri.reporting.service.etl.job.pcr.MissionBook.initialize(MissionBook.java:55)
>>>    at eu.openg.colibri.reporting.service.etl.EtlManager$1.run(EtlManager.java:38)
>>>    at java.lang.Thread.run(Thread.java:722)
>>> "Thread-4":
>>>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:61)
>>>    - waiting to lock <0x00000007eda35c20> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
>>>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>>>    at $MongoDBSource_12f60d9b0a6e8bb2.delegate(Unknown Source)
>>>    at $MongoDBSource_12f60d9b0a6e8bb2.getMongo(Unknown Source)
>>>    at org.apache.tapestry5.internal.mongodb.MongoDBImpl.<init>(MongoDBImpl.java:30)
>>>    at org.apache.tapestry5.mongodb.MongoDBModule.buildMongoDB(MongoDBModule.java:46)
>>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>    at java.lang.reflect.Method.invoke(Method.java:601)
>>>    at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
>>>    at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
>>>    at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>>    at org.apache.tapestry5.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:47)
>>> *    at $MongoDB_12f60d9b0a6e8bb1.delegate(Unknown Source)
>>>    at $MongoDB_12f60d9b0a6e8bb1.getMongoDb(Unknown Source)
>>>    at $MongoDB_12f60d9b0a6e8b77.getMongoDb(Unknown Source)*
>>>    at eu.openg.colibri.reporting.service.miner.Miner.ensureIndex(Miner.java:41)
>>>    at eu.openg.colibri.reporting.service.miner.Miner.ensureIndex(Miner.java:35)
>>>    at eu.openg.colibri.reporting.service.miner.sources.dekbera.TeamStatusMiner.initialize(TeamStatusMiner.java:61)
>>>    at eu.openg.colibri.reporting.service.miner.Miner.<init>(Miner.java:23)
>>>    at eu.openg.colibri.reporting.service.miner.sources.dekbera.TeamStatusMiner.<init>(TeamStatusMiner.java:42)
>>>    at eu.openg.colibri.reporting.service.ReportMinerModule.buildDekberaTeamStatusMiner(ReportMinerModule.java:84)
>>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>    at java.lang.reflect.Method.invoke(Method.java:601)
>>>    at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
>>>    at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
>>>    at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
>>>    at org.apache.tapestry5.ioc.internal.ModuleImpl$4.invoke(ModuleImpl.java:284)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:332)
>>>    at org.apache.tapestry5.ioc.internal.ModuleImpl.access$100(ModuleImpl.java:39)
>>>    at org.apache.tapestry5.ioc.internal.ModuleImpl$1.invoke(ModuleImpl.java:191)
>>>    at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withWrite(ConcurrentBarrier.java:140)
>>>    at org.apache.tapestry5.ioc.internal.ModuleImpl$2.invoke(ModuleImpl.java:207)
>>>    at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
>>>    at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
>>>    at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.extractServiceFromMatches(RegistryImpl.java:925)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.findServiceByMarkerAndType(RegistryImpl.java:909)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:863)
>>>    at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParametersForMethod(InternalUtils.java:264)
>>>    at org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:117)
>>>    at org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:80)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:633)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:629)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:483)
>>>    at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)
>>>    at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:107)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getOrderedConfiguration(ServiceResourcesImpl.java:105)
>>>    at org.apache.tapestry5.ioc.internal.AbstractServiceCreator.getOrderedConfiguration(AbstractServiceCreator.java:123)
>>>    at org.apache.tapestry5.ioc.internal.AbstractServiceCreator.access$200(AbstractServiceCreator.java:35)
>>>    at org.apache.tapestry5.ioc.internal.AbstractServiceCreator$1.findResource(AbstractServiceCreator.java:103)
>>>    at org.apache.tapestry5.ioc.internal.util.DelegatingInjectionResources.findResource(DelegatingInjectionResources.java:38)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:231)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
>>>    at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
>>>    at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>>    at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
>>>    at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
>>>    at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
>>>    at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
>>>    at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
>>>    - locked <0x00000007ed2637e8> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
>>>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>>>    at $Runnable_12f60d9b0a6e8bac.delegate(Unknown Source)
>>>    at $Runnable_12f60d9b0a6e8bac.run(Unknown Source)
>>>    at org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:325)
>>>    at org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
>>>    at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118)
>>>    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
>>>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>>    - locked <0x00000007c277d608> (a java.lang.Object)
>>>    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
>>>    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
>>>    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272)
>>>    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
>>>    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489)
>>>    at org.gradle.api.plugins.jetty.internal.JettyPluginWebAppContext.doStart(JettyPluginWebAppContext.java:112)
>>>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>>    - locked <0x00000007c253f860> (a java.lang.Object)
>>>    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>>>    at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
>>>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>>    - locked <0x00000007c253fec0> (a java.lang.Object)
>>>    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>>>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>>    - locked <0x00000007c253f918> (a java.lang.Object)
>>>    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
>>>    at org.mortbay.jetty.Server.doStart(Server.java:224)
>>>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>>    - locked <0x00000007c253f8d0> (a java.lang.Object)
>>>    at org.gradle.api.plugins.jetty.internal.Jetty6PluginServer.start(Jetty6PluginServer.java:111)
>>>    at org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJettyInternal(AbstractJettyRunTask.java:247)
>>>    at org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJetty(AbstractJettyRunTask.java:198)
>>>    at org.gradle.api.plugins.jetty.AbstractJettyRunTask.start(AbstractJettyRunTask.java:169)
>>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>    at java.lang.reflect.Method.invoke(Method.java:601)
>>>    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>>>    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>>>    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
>>>    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
>>>    at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:216)
>>>    at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:122)
>>>    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147)
>>>    at org.gradle.api.plugins.jetty.JettyRun_Decorated.invokeMethod(Unknown Source)
>>>    at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source)
>>>    at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
>>>    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:161)
>>>    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:156)
>>>    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:510)
>>>    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:499)
>>>    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:64)
>>>    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:49)
>>>    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)
>>>    at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34)
>>>    at org.gradle.internal.Factories$1.create(Factories.java:22)
>>>    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:179)
>>>    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:232)
>>>    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
>>>    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
>>>    at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32)
>>>    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
>>>    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
>>>    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
>>>    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
>>>    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
>>>    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
>>>    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:275)
>>>    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.executeTask(DefaultTaskPlanExecutor.java:52)
>>>    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.processTask(DefaultTaskPlanExecutor.java:38)
>>>    at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker$1.run(ParallelTaskPlanExecutor.java:113)
>>>    at org.gradle.internal.Factories$1.create(Factories.java:22)
>>>    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:124)
>>>    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:112)
>>>    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:134)
>>>    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
>>>    at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker.executeTaskWithCacheLock(ParallelTaskPlanExecutor.java:110)
>>>    at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker.run(ParallelTaskPlanExecutor.java:100)
>>>    at java.lang.Thread.run(Thread.java:722)
>>> 
>>> Found 1 deadlock.
>>> 
>>> Heap
>>> PSYoungGen      total 286272K, used 56115K [0x00000007eaab0000, 0x00000007febe0000, 0x0000000800000000)
>>>  eden space 269504K, 20% used [0x00000007eaab0000,0x00000007ee17cdf0,0x00000007fb1e0000)
>>>  from space 16768K, 0% used [0x00000007fdb80000,0x00000007fdb80000,0x00000007febe0000)
>>>  to   space 20800K, 0% used [0x00000007fc340000,0x00000007fc340000,0x00000007fd790000)
>>> ParOldGen       total 100864K, used 55724K [0x00000007c0000000, 0x00000007c6280000, 0x00000007eaab0000)
>>>  object space 100864K, 55% used [0x00000007c0000000,0x00000007c366b120,0x00000007c6280000)
>>> PSPermGen       total 77120K, used 40052K [0x00000007b0000000, 0x00000007b4b50000, 0x00000007c0000000)
>>>  object space 77120K, 51% used [0x00000007b0000000,0x00000007b271d388,0x00000007b4b50000)
>>> 
>>> 2013-04-18 17:18:42
>>> Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.0-b21 mixed mode):
>>> 
>>> 
>>> Best regards,
>>> Arunas F
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: [T5 5.3.6] Dead Lock while initializing tapestry

Posted by Arunas F <ar...@gmail.com>.
No, not at all. New Thread is spawned at some moment while initializing 
T5 app. And there is nothing special about a code:


new Thread(new Runnable() {

             @Override
             public void run() {
                 if (logger.isDebugEnabled()) logger.debug(etlName + " 
initializing... ");

                 try {

                     for (EtlAbstractJob job : jobs.getJobs()) {
                         job.initialize();
                     }

                 } catch (EtlJobException e) {
                     logger.error(e.toString());
                     e.printStackTrace();
                 }

                 if (logger.isDebugEnabled()) logger.debug(etlName + " 
finished initialization... ");
             }

         }).start();


And in the code  at line "job.initialize();" the var job are T5 IOC 
services and these services depend on MongoDB service at some deeper level.

public class ReportStorageImpl implements ReportStorage {

.....

     private MongoDB mongoDB;

     public ReportStorageImpl(MongoDB mongoDB) {
         this.mongoDB = mongoDB;
     }

......

     @Override
     public MongoDB getMongoDB() {
         return mongoDB;
     }
}

About MongoDB also nothing special. The module is taken from 
https://github.com/mlusetti/tapestry-mongodb-core (look at earlier 
revisions).


BR,
Arunas


On 18/04/2013 18:53, mailinglist@j-b-s.de wrote:
> Are you spawning a new thread in your MongoDBImpl.java:30 which makes use of T5 services, too? From the Stacktrace you are (well T5 IOC is) building the mongodb service right now. What happens in the ctor of your class? Can you paste some code??
>
> Jens
>
> Sent from my iPhone
>
> On 18.04.2013, at 17:31, Arunas F <ar...@gmail.com> wrote:
>
>> Hi,
>>
>> We are using T5 version 5.3.6. I found that Tapestry runs into a dead lock while building registry (initializing) if I start a new Thread what uses some T5 services.
>> Right now we have disabled multi threading while initializing app. But I would like to know, is it a T5 bug and I should file it into JIRA or this is an expected behavior and it is a T5 limitation.
>>
>>
>> Problem description: If the T5 registry and new Thread tries to create same service (from proxy) simultaneously sometimes you can run into deadlock and T5 app wont initialize. In the stacktrace dump below, you can find that  both threads tried to create MongoDB instance and ran into a deadlock.
>>
>>
>> Found one Java-level deadlock:
>> =============================
>> "Thread-10":
>>   waiting for ownable synchronizer 0x00000007c27e65f0, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
>>   which is held by "Thread-4"
>> "Thread-4":
>>   waiting to lock monitor 0x00007fdf5b91c658 (object 0x00000007eda35c20, a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator),
>>   which is held by "Thread-10"
>>
>> Java stack information for the threads listed above:
>> ===================================================
>> "Thread-10":
>>     at sun.misc.Unsafe.park(Native Method)
>>     - parking to wait for  <0x00000007c27e65f0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
>>     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>>     at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
>>     at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964)
>>     at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282)
>>     at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:731)
>>     at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:75)
>>     at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
>>     at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:868)
>>     at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
>>     at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
>>     at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>     at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
>>     at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
>>     at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
>>     at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
>>     at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>     at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
>>     - locked <0x00000007eda35c20> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
>>     at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>>     at $MongoDBSource_12f60d9b0a6e8bb2.delegate(Unknown Source)
>>     at $MongoDBSource_12f60d9b0a6e8bb2.getMongo(Unknown Source)
>>     at org.apache.tapestry5.internal.mongodb.MongoDBImpl.<init>(MongoDBImpl.java:30)
>>     at org.apache.tapestry5.mongodb.MongoDBModule.buildMongoDB(MongoDBModule.java:46)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:601)
>>     at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
>>     at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
>>     at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>     at org.apache.tapestry5.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:47)
>> *    at $MongoDB_12f60d9b0a6e8bb1.delegate(Unknown Source)
>>     at $MongoDB_12f60d9b0a6e8bb1.getMongoDb(Unknown Source)
>>     at $MongoDB_12f60d9b0a6e8b77.getMongoDb(Unknown Source)*
>>     at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.getCollection(EtlAbstractJob.java:142)
>>     at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.ensureIndex(EtlAbstractJob.java:117)
>>     at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.ensureIndex(EtlAbstractJob.java:112)
>>     at eu.openg.colibri.reporting.service.etl.job.pcr.common.PcrFormSingleRowJob.initialize(PcrFormSingleRowJob.java:52)
>>     at eu.openg.colibri.reporting.service.etl.job.pcr.MissionBook.initialize(MissionBook.java:55)
>>     at eu.openg.colibri.reporting.service.etl.EtlManager$1.run(EtlManager.java:38)
>>     at java.lang.Thread.run(Thread.java:722)
>> "Thread-4":
>>     at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:61)
>>     - waiting to lock <0x00000007eda35c20> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
>>     at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>>     at $MongoDBSource_12f60d9b0a6e8bb2.delegate(Unknown Source)
>>     at $MongoDBSource_12f60d9b0a6e8bb2.getMongo(Unknown Source)
>>     at org.apache.tapestry5.internal.mongodb.MongoDBImpl.<init>(MongoDBImpl.java:30)
>>     at org.apache.tapestry5.mongodb.MongoDBModule.buildMongoDB(MongoDBModule.java:46)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:601)
>>     at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
>>     at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
>>     at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>     at org.apache.tapestry5.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:47)
>> *    at $MongoDB_12f60d9b0a6e8bb1.delegate(Unknown Source)
>>     at $MongoDB_12f60d9b0a6e8bb1.getMongoDb(Unknown Source)
>>     at $MongoDB_12f60d9b0a6e8b77.getMongoDb(Unknown Source)*
>>     at eu.openg.colibri.reporting.service.miner.Miner.ensureIndex(Miner.java:41)
>>     at eu.openg.colibri.reporting.service.miner.Miner.ensureIndex(Miner.java:35)
>>     at eu.openg.colibri.reporting.service.miner.sources.dekbera.TeamStatusMiner.initialize(TeamStatusMiner.java:61)
>>     at eu.openg.colibri.reporting.service.miner.Miner.<init>(Miner.java:23)
>>     at eu.openg.colibri.reporting.service.miner.sources.dekbera.TeamStatusMiner.<init>(TeamStatusMiner.java:42)
>>     at eu.openg.colibri.reporting.service.ReportMinerModule.buildDekberaTeamStatusMiner(ReportMinerModule.java:84)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:601)
>>     at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
>>     at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
>>     at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
>>     at org.apache.tapestry5.ioc.internal.ModuleImpl$4.invoke(ModuleImpl.java:284)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:332)
>>     at org.apache.tapestry5.ioc.internal.ModuleImpl.access$100(ModuleImpl.java:39)
>>     at org.apache.tapestry5.ioc.internal.ModuleImpl$1.invoke(ModuleImpl.java:191)
>>     at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withWrite(ConcurrentBarrier.java:140)
>>     at org.apache.tapestry5.ioc.internal.ModuleImpl$2.invoke(ModuleImpl.java:207)
>>     at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
>>     at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
>>     at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.extractServiceFromMatches(RegistryImpl.java:925)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.findServiceByMarkerAndType(RegistryImpl.java:909)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:863)
>>     at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParametersForMethod(InternalUtils.java:264)
>>     at org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:117)
>>     at org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:80)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:633)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:629)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:483)
>>     at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)
>>     at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:107)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getOrderedConfiguration(ServiceResourcesImpl.java:105)
>>     at org.apache.tapestry5.ioc.internal.AbstractServiceCreator.getOrderedConfiguration(AbstractServiceCreator.java:123)
>>     at org.apache.tapestry5.ioc.internal.AbstractServiceCreator.access$200(AbstractServiceCreator.java:35)
>>     at org.apache.tapestry5.ioc.internal.AbstractServiceCreator$1.findResource(AbstractServiceCreator.java:103)
>>     at org.apache.tapestry5.ioc.internal.util.DelegatingInjectionResources.findResource(DelegatingInjectionResources.java:38)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:231)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
>>     at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
>>     at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>     at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
>>     at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
>>     at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
>>     at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
>>     at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>>     at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>>     at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>     at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
>>     - locked <0x00000007ed2637e8> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
>>     at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>>     at $Runnable_12f60d9b0a6e8bac.delegate(Unknown Source)
>>     at $Runnable_12f60d9b0a6e8bac.run(Unknown Source)
>>     at org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:325)
>>     at org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
>>     at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118)
>>     at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
>>     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>     - locked <0x00000007c277d608> (a java.lang.Object)
>>     at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
>>     at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
>>     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272)
>>     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
>>     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489)
>>     at org.gradle.api.plugins.jetty.internal.JettyPluginWebAppContext.doStart(JettyPluginWebAppContext.java:112)
>>     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>     - locked <0x00000007c253f860> (a java.lang.Object)
>>     at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>>     at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
>>     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>     - locked <0x00000007c253fec0> (a java.lang.Object)
>>     at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>>     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>     - locked <0x00000007c253f918> (a java.lang.Object)
>>     at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
>>     at org.mortbay.jetty.Server.doStart(Server.java:224)
>>     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>>     - locked <0x00000007c253f8d0> (a java.lang.Object)
>>     at org.gradle.api.plugins.jetty.internal.Jetty6PluginServer.start(Jetty6PluginServer.java:111)
>>     at org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJettyInternal(AbstractJettyRunTask.java:247)
>>     at org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJetty(AbstractJettyRunTask.java:198)
>>     at org.gradle.api.plugins.jetty.AbstractJettyRunTask.start(AbstractJettyRunTask.java:169)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:601)
>>     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>>     at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>>     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
>>     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
>>     at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:216)
>>     at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:122)
>>     at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147)
>>     at org.gradle.api.plugins.jetty.JettyRun_Decorated.invokeMethod(Unknown Source)
>>     at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source)
>>     at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
>>     at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:161)
>>     at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:156)
>>     at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:510)
>>     at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:499)
>>     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:64)
>>     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:49)
>>     at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)
>>     at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34)
>>     at org.gradle.internal.Factories$1.create(Factories.java:22)
>>     at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:179)
>>     at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:232)
>>     at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
>>     at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
>>     at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32)
>>     at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
>>     at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
>>     at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
>>     at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
>>     at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
>>     at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
>>     at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:275)
>>     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.executeTask(DefaultTaskPlanExecutor.java:52)
>>     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.processTask(DefaultTaskPlanExecutor.java:38)
>>     at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker$1.run(ParallelTaskPlanExecutor.java:113)
>>     at org.gradle.internal.Factories$1.create(Factories.java:22)
>>     at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:124)
>>     at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:112)
>>     at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:134)
>>     at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
>>     at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker.executeTaskWithCacheLock(ParallelTaskPlanExecutor.java:110)
>>     at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker.run(ParallelTaskPlanExecutor.java:100)
>>     at java.lang.Thread.run(Thread.java:722)
>>
>> Found 1 deadlock.
>>
>> Heap
>> PSYoungGen      total 286272K, used 56115K [0x00000007eaab0000, 0x00000007febe0000, 0x0000000800000000)
>>   eden space 269504K, 20% used [0x00000007eaab0000,0x00000007ee17cdf0,0x00000007fb1e0000)
>>   from space 16768K, 0% used [0x00000007fdb80000,0x00000007fdb80000,0x00000007febe0000)
>>   to   space 20800K, 0% used [0x00000007fc340000,0x00000007fc340000,0x00000007fd790000)
>> ParOldGen       total 100864K, used 55724K [0x00000007c0000000, 0x00000007c6280000, 0x00000007eaab0000)
>>   object space 100864K, 55% used [0x00000007c0000000,0x00000007c366b120,0x00000007c6280000)
>> PSPermGen       total 77120K, used 40052K [0x00000007b0000000, 0x00000007b4b50000, 0x00000007c0000000)
>>   object space 77120K, 51% used [0x00000007b0000000,0x00000007b271d388,0x00000007b4b50000)
>>
>> 2013-04-18 17:18:42
>> Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.0-b21 mixed mode):
>>
>>
>> Best regards,
>> Arunas F
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: [T5 5.3.6] Dead Lock while initializing tapestry

Posted by "mailinglist@j-b-s.de" <ma...@j-b-s.de>.
Are you spawning a new thread in your MongoDBImpl.java:30 which makes use of T5 services, too? From the Stacktrace you are (well T5 IOC is) building the mongodb service right now. What happens in the ctor of your class? Can you paste some code??

Jens

Sent from my iPhone

On 18.04.2013, at 17:31, Arunas F <ar...@gmail.com> wrote:

> Hi,
> 
> We are using T5 version 5.3.6. I found that Tapestry runs into a dead lock while building registry (initializing) if I start a new Thread what uses some T5 services.
> Right now we have disabled multi threading while initializing app. But I would like to know, is it a T5 bug and I should file it into JIRA or this is an expected behavior and it is a T5 limitation.
> 
> 
> Problem description: If the T5 registry and new Thread tries to create same service (from proxy) simultaneously sometimes you can run into deadlock and T5 app wont initialize. In the stacktrace dump below, you can find that  both threads tried to create MongoDB instance and ran into a deadlock.
> 
> 
> Found one Java-level deadlock:
> =============================
> "Thread-10":
>  waiting for ownable synchronizer 0x00000007c27e65f0, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
>  which is held by "Thread-4"
> "Thread-4":
>  waiting to lock monitor 0x00007fdf5b91c658 (object 0x00000007eda35c20, a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator),
>  which is held by "Thread-10"
> 
> Java stack information for the threads listed above:
> ===================================================
> "Thread-10":
>    at sun.misc.Unsafe.park(Native Method)
>    - parking to wait for  <0x00000007c27e65f0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
>    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
>    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964)
>    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282)
>    at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:731)
>    at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:75)
>    at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
>    at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:868)
>    at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
>    at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
>    at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>    at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
>    at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
>    at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
>    at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
>    at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
>    - locked <0x00000007eda35c20> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>    at $MongoDBSource_12f60d9b0a6e8bb2.delegate(Unknown Source)
>    at $MongoDBSource_12f60d9b0a6e8bb2.getMongo(Unknown Source)
>    at org.apache.tapestry5.internal.mongodb.MongoDBImpl.<init>(MongoDBImpl.java:30)
>    at org.apache.tapestry5.mongodb.MongoDBModule.buildMongoDB(MongoDBModule.java:46)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>    at java.lang.reflect.Method.invoke(Method.java:601)
>    at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
>    at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
>    at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>    at org.apache.tapestry5.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:47)
> *    at $MongoDB_12f60d9b0a6e8bb1.delegate(Unknown Source)
>    at $MongoDB_12f60d9b0a6e8bb1.getMongoDb(Unknown Source)
>    at $MongoDB_12f60d9b0a6e8b77.getMongoDb(Unknown Source)*
>    at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.getCollection(EtlAbstractJob.java:142)
>    at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.ensureIndex(EtlAbstractJob.java:117)
>    at eu.openg.colibri.reporting.service.etl.job.EtlAbstractJob.ensureIndex(EtlAbstractJob.java:112)
>    at eu.openg.colibri.reporting.service.etl.job.pcr.common.PcrFormSingleRowJob.initialize(PcrFormSingleRowJob.java:52)
>    at eu.openg.colibri.reporting.service.etl.job.pcr.MissionBook.initialize(MissionBook.java:55)
>    at eu.openg.colibri.reporting.service.etl.EtlManager$1.run(EtlManager.java:38)
>    at java.lang.Thread.run(Thread.java:722)
> "Thread-4":
>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:61)
>    - waiting to lock <0x00000007eda35c20> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>    at $MongoDBSource_12f60d9b0a6e8bb2.delegate(Unknown Source)
>    at $MongoDBSource_12f60d9b0a6e8bb2.getMongo(Unknown Source)
>    at org.apache.tapestry5.internal.mongodb.MongoDBImpl.<init>(MongoDBImpl.java:30)
>    at org.apache.tapestry5.mongodb.MongoDBModule.buildMongoDB(MongoDBModule.java:46)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>    at java.lang.reflect.Method.invoke(Method.java:601)
>    at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
>    at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
>    at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>    at org.apache.tapestry5.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:47)
> *    at $MongoDB_12f60d9b0a6e8bb1.delegate(Unknown Source)
>    at $MongoDB_12f60d9b0a6e8bb1.getMongoDb(Unknown Source)
>    at $MongoDB_12f60d9b0a6e8b77.getMongoDb(Unknown Source)*
>    at eu.openg.colibri.reporting.service.miner.Miner.ensureIndex(Miner.java:41)
>    at eu.openg.colibri.reporting.service.miner.Miner.ensureIndex(Miner.java:35)
>    at eu.openg.colibri.reporting.service.miner.sources.dekbera.TeamStatusMiner.initialize(TeamStatusMiner.java:61)
>    at eu.openg.colibri.reporting.service.miner.Miner.<init>(Miner.java:23)
>    at eu.openg.colibri.reporting.service.miner.sources.dekbera.TeamStatusMiner.<init>(TeamStatusMiner.java:42)
>    at eu.openg.colibri.reporting.service.ReportMinerModule.buildDekberaTeamStatusMiner(ReportMinerModule.java:84)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>    at java.lang.reflect.Method.invoke(Method.java:601)
>    at org.apache.tapestry5.ioc.internal.util.MethodInvoker.invoke(MethodInvoker.java:50)
>    at org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
>    at org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
>    at org.apache.tapestry5.ioc.internal.ModuleImpl$4.invoke(ModuleImpl.java:284)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:332)
>    at org.apache.tapestry5.ioc.internal.ModuleImpl.access$100(ModuleImpl.java:39)
>    at org.apache.tapestry5.ioc.internal.ModuleImpl$1.invoke(ModuleImpl.java:191)
>    at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withWrite(ConcurrentBarrier.java:140)
>    at org.apache.tapestry5.ioc.internal.ModuleImpl$2.invoke(ModuleImpl.java:207)
>    at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
>    at org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213)
>    at org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.extractServiceFromMatches(RegistryImpl.java:925)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.findServiceByMarkerAndType(RegistryImpl.java:909)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:863)
>    at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:257)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParametersForMethod(InternalUtils.java:264)
>    at org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:117)
>    at org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:80)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:633)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:629)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:483)
>    at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)
>    at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:107)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getOrderedConfiguration(ServiceResourcesImpl.java:105)
>    at org.apache.tapestry5.ioc.internal.AbstractServiceCreator.getOrderedConfiguration(AbstractServiceCreator.java:123)
>    at org.apache.tapestry5.ioc.internal.AbstractServiceCreator.access$200(AbstractServiceCreator.java:35)
>    at org.apache.tapestry5.ioc.internal.AbstractServiceCreator$1.findResource(AbstractServiceCreator.java:103)
>    at org.apache.tapestry5.ioc.internal.util.DelegatingInjectionResources.findResource(DelegatingInjectionResources.java:38)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:231)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
>    at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
>    at org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>    at org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
>    at org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
>    at org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
>    at org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
>    at org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>    at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
>    at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
>    at org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
>    - locked <0x00000007ed2637e8> (a org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator)
>    at org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
>    at $Runnable_12f60d9b0a6e8bac.delegate(Unknown Source)
>    at $Runnable_12f60d9b0a6e8bac.run(Unknown Source)
>    at org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:325)
>    at org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
>    at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118)
>    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>    - locked <0x00000007c277d608> (a java.lang.Object)
>    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
>    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
>    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272)
>    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
>    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489)
>    at org.gradle.api.plugins.jetty.internal.JettyPluginWebAppContext.doStart(JettyPluginWebAppContext.java:112)
>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>    - locked <0x00000007c253f860> (a java.lang.Object)
>    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>    at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>    - locked <0x00000007c253fec0> (a java.lang.Object)
>    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>    - locked <0x00000007c253f918> (a java.lang.Object)
>    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
>    at org.mortbay.jetty.Server.doStart(Server.java:224)
>    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>    - locked <0x00000007c253f8d0> (a java.lang.Object)
>    at org.gradle.api.plugins.jetty.internal.Jetty6PluginServer.start(Jetty6PluginServer.java:111)
>    at org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJettyInternal(AbstractJettyRunTask.java:247)
>    at org.gradle.api.plugins.jetty.AbstractJettyRunTask.startJetty(AbstractJettyRunTask.java:198)
>    at org.gradle.api.plugins.jetty.AbstractJettyRunTask.start(AbstractJettyRunTask.java:169)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>    at java.lang.reflect.Method.invoke(Method.java:601)
>    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047)
>    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877)
>    at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:216)
>    at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:122)
>    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147)
>    at org.gradle.api.plugins.jetty.JettyRun_Decorated.invokeMethod(Unknown Source)
>    at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source)
>    at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
>    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:161)
>    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:156)
>    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:510)
>    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:499)
>    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:64)
>    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:49)
>    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)
>    at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34)
>    at org.gradle.internal.Factories$1.create(Factories.java:22)
>    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:179)
>    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:232)
>    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
>    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
>    at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32)
>    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
>    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
>    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
>    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
>    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
>    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
>    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:275)
>    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.executeTask(DefaultTaskPlanExecutor.java:52)
>    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.processTask(DefaultTaskPlanExecutor.java:38)
>    at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker$1.run(ParallelTaskPlanExecutor.java:113)
>    at org.gradle.internal.Factories$1.create(Factories.java:22)
>    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:124)
>    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:112)
>    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:134)
>    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
>    at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker.executeTaskWithCacheLock(ParallelTaskPlanExecutor.java:110)
>    at org.gradle.execution.taskgraph.ParallelTaskPlanExecutor$TaskExecutorWorker.run(ParallelTaskPlanExecutor.java:100)
>    at java.lang.Thread.run(Thread.java:722)
> 
> Found 1 deadlock.
> 
> Heap
> PSYoungGen      total 286272K, used 56115K [0x00000007eaab0000, 0x00000007febe0000, 0x0000000800000000)
>  eden space 269504K, 20% used [0x00000007eaab0000,0x00000007ee17cdf0,0x00000007fb1e0000)
>  from space 16768K, 0% used [0x00000007fdb80000,0x00000007fdb80000,0x00000007febe0000)
>  to   space 20800K, 0% used [0x00000007fc340000,0x00000007fc340000,0x00000007fd790000)
> ParOldGen       total 100864K, used 55724K [0x00000007c0000000, 0x00000007c6280000, 0x00000007eaab0000)
>  object space 100864K, 55% used [0x00000007c0000000,0x00000007c366b120,0x00000007c6280000)
> PSPermGen       total 77120K, used 40052K [0x00000007b0000000, 0x00000007b4b50000, 0x00000007c0000000)
>  object space 77120K, 51% used [0x00000007b0000000,0x00000007b271d388,0x00000007b4b50000)
> 
> 2013-04-18 17:18:42
> Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.0-b21 mixed mode):
> 
> 
> Best regards,
> Arunas F

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org