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