tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Klaus.Schroe...@ethalon.de
Subject Antwort: Re: Unit tests hanging with openejb+dbunit+spring
Date Tue, 17 Jul 2012 06:54:01 GMT
Hi Romain
yes, see stack trace of the hanging thread below. After some more 
investigation it looks like it's hanging while trying to get database 
connections from the connection pool. Seems that connectins are not 
properly freed and returned to the pool? 

Any help is appreciated.
Klaus

Thread [main] (Suspended) 
        waiting for: GenericObjectPool$Latch  (id=146) 
        Object.wait(long) line: not available [native method] 
        GenericObjectPool$Latch(Object).wait() line: 485 [local variables 
unavailable] 
        GenericObjectPool.borrowObject() line: 1115 
        ManagedConnection.updateTransactionStatus() line: 117 
        ManagedConnection.<init>(ObjectPool, TransactionRegistry, boolean) 
line: 55 
        ManagedDataSource.getConnection() line: 77 
        BasicManagedDataSource(BasicDataSource).getConnection() line: 1044 

        DecoratingDataSource(DelegatingDataSource).getConnection() line: 
110 
        DecoratingDataSource.getConnection() line: 87 
        JDBCStoreManager.connectInternal() line: 960 
        JDBCStoreManager.connect(boolean) line: 945 
        JDBCStoreManager.getConnection() line: 240 
        FinderQueryImpl.execute(OpenJPAStateManager, StoreManager, 
FetchConfiguration) line: 139 
        JDBCStoreManager.getInitializeStateResult(OpenJPAStateManager, 
ClassMapping, JDBCFetchConfiguration, int) line: 537 
        JDBCStoreManager.initializeState(OpenJPAStateManager, PCState, 
JDBCFetchConfiguration, ConnectionInfo) line: 349 
        JDBCStoreManager.initialize(OpenJPAStateManager, PCState, 
FetchConfiguration, Object) line: 304 
 ROPStoreManager(DelegatingStoreManager).initialize(OpenJPAStateManager, 
PCState, FetchConfiguration, Object) line: 112 
        ROPStoreManager.initialize(OpenJPAStateManager, PCState, 
FetchConfiguration, Object) line: 57 
        BrokerImpl.initialize(StateManagerImpl, boolean, 
FetchConfiguration, Object) line: 1036 
        BrokerImpl.find(Object, FetchConfiguration, BitSet, Object, int, 
FindCallbacks) line: 994 
        BrokerImpl.find(Object, boolean, FindCallbacks) line: 911 
        DelegatingBroker.find(Object, boolean, FindCallbacks) line: 231 
        EntityManagerImpl.find(Class<T>, Object) line: 487 
        JtaEntityManager.find(Class<T>, Object) line: 157 
        MmData(BasicDataService).findById(Class<T>, U) line: 96 
        GeneratedMethodAccessor208.invoke(Object, Object[]) line: not 
available 
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 
        Method.invoke(Object, Object...) line: 597 
 
ReflectionInvocationContext$BeanInvocation(ReflectionInvocationContext$Invocation).invoke()

line: 181 
        ReflectionInvocationContext.proceed() line: 163 
        StatsInterceptor.record(InvocationContext, Method) line: 176 
        StatsInterceptor.invoke(InvocationContext) line: 95 
        GeneratedMethodAccessor86.invoke(Object, Object[]) line: not 
available 
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 
        Method.invoke(Object, Object...) line: 597 
 
ReflectionInvocationContext$InterceptorInvocation(ReflectionInvocationContext$Invocation).invoke()

line: 181 
        ReflectionInvocationContext.proceed() line: 163 
        CdiInterceptor.invoke(InvocationContext) line: 129 
        CdiInterceptor.access$000(CdiInterceptor, InvocationContext) line: 
45 
        CdiInterceptor$1.call() line: 66 
        CdiInterceptor.aroundInvoke(InvocationContext) line: 72 
        GeneratedMethodAccessor85.invoke(Object, Object[]) line: not 
available 
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 
        Method.invoke(Object, Object...) line: 597 
 
ReflectionInvocationContext$InterceptorInvocation(ReflectionInvocationContext$Invocation).invoke()

line: 181 
        ReflectionInvocationContext.proceed() line: 163 
        InterceptorStack.invoke(Object...) line: 138 
        StatelessContainer._invoke(Method, Method, Object[], Instance, 
ThreadContext, InterfaceType) line: 226 
        StatelessContainer.invoke(Object, InterfaceType, Class, Method, 
Object[], Object) line: 178 
 
StatelessEjbObjectHandler(EjbObjectProxyHandler).synchronizedBusinessMethod(Class<?>,

Method, Object[], Object) line: 260 
 StatelessEjbObjectHandler(EjbObjectProxyHandler).businessMethod(Class<?>, 
Method, Object[], Object) line: 240 
        StatelessEjbObjectHandler(EjbObjectProxyHandler)._invoke(Object, 
Class, Method, Object[]) line: 91 
        StatelessEjbObjectHandler(BaseEjbProxyHandler).invoke(Object, 
Method, Object[]) line: 284 
        $Proxy98.findById(Class, Object) line: not available 
        InvoiceServiceLoadHelper.loadInvoiceHeaderEntity(Long, 
InventoryManagementContainer) line: 217 
        InvoiceServiceImpl.saveInvoiceItem(UserContainer, InvoiceItem, 
Long, Short, InvoiceItemResponse) line: 381 
 
InventoryManagementLogicEJB.saveInvoiceItem_aroundBody46(InventoryManagementLogicEJB, 
UserContainer, InvoiceItem, Long, Short, JoinPoint) line: 234 
 
InventoryManagementLogicEJB.saveInvoiceItem_aroundBody47$advice(InventoryManagementLogicEJB,

UserContainer, InvoiceItem, Long, Short, JoinPoint, LogicServiceAspect, 
AroundClosure, JoinPoint$StaticPart, JoinPoint) line: 117 
 
InventoryManagementLogicEJB.saveInvoiceItem_aroundBody48(InventoryManagementLogicEJB, 
UserContainer, InvoiceItem, Long, Short, JoinPoint) line: 1 
 
InventoryManagementLogicEJB.saveInvoiceItem_aroundBody49$advice(InventoryManagementLogicEJB,

UserContainer, InvoiceItem, Long, Short, JoinPoint, GuardAspect, 
AroundClosure, JoinPoint) line: 135 
        InventoryManagementLogicEJB.saveInvoiceItem(UserContainer, 
InvoiceItem, Long, Short) line: 1 
        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: 
not available [native method] 
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 
        Method.invoke(Object, Object...) line: 597 
 
ReflectionInvocationContext$BeanInvocation(ReflectionInvocationContext$Invocation).invoke()

line: 181 
        ReflectionInvocationContext.proceed() line: 163 
        StatsInterceptor.record(InvocationContext, Method) line: 176 
        StatsInterceptor.invoke(InvocationContext) line: 95 
        GeneratedMethodAccessor86.invoke(Object, Object[]) line: not 
available 
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 
        Method.invoke(Object, Object...) line: 597 
 
ReflectionInvocationContext$InterceptorInvocation(ReflectionInvocationContext$Invocation).invoke()

line: 181 
        ReflectionInvocationContext.proceed() line: 163 
        CdiInterceptor.invoke(InvocationContext) line: 129 
        CdiInterceptor.access$000(CdiInterceptor, InvocationContext) line: 
45 
        CdiInterceptor$1.call() line: 66 
        CdiInterceptor.aroundInvoke(InvocationContext) line: 72 
        GeneratedMethodAccessor85.invoke(Object, Object[]) line: not 
available 
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 
        Method.invoke(Object, Object...) line: 597 
 
ReflectionInvocationContext$InterceptorInvocation(ReflectionInvocationContext$Invocation).invoke()

line: 181 
        ReflectionInvocationContext.proceed() line: 163 
        InterceptorStack.invoke(Object...) line: 138 
        StatelessContainer._invoke(Method, Method, Object[], Instance, 
ThreadContext, InterfaceType) line: 226 
        StatelessContainer.invoke(Object, InterfaceType, Class, Method, 
Object[], Object) line: 178 
 
StatelessEjbObjectHandler(EjbObjectProxyHandler).synchronizedBusinessMethod(Class<?>,

Method, Object[], Object) line: 260 
 StatelessEjbObjectHandler(EjbObjectProxyHandler).businessMethod(Class<?>, 
Method, Object[], Object) line: 240 
        StatelessEjbObjectHandler(EjbObjectProxyHandler)._invoke(Object, 
Class, Method, Object[]) line: 91 
        StatelessEjbObjectHandler(BaseEjbProxyHandler).invoke(Object, 
Method, Object[]) line: 284 
        $Proxy97.saveInvoiceItem(UserContainer, InvoiceItem, Long, Short) 
line: not available 
        InvoiceServiceImplTest.testSaveInvoiceItemNoAmount() line: 882 
        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: 
not available [native method] 
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 
        Method.invoke(Object, Object...) line: 597 
        FrameworkMethod$1.runReflectiveCall() line: 44 
        FrameworkMethod$1(ReflectiveCallable).run() line: 15 
        FrameworkMethod.invokeExplosively(Object, Object...) line: 41 
        InvokeMethod.evaluate() line: 20 
        RunBefores.evaluate() line: 28 
        RunBeforeTestMethodCallbacks.evaluate() line: 74 
        RunAfters.evaluate() line: 31 
        RunAfterTestMethodCallbacks.evaluate() line: 82 
        SpringRepeat.evaluate() line: 72 
        SpringJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) 
line: 231 
        SpringJUnit4ClassRunner(BlockJUnit4ClassRunner).runChild(Object, 
RunNotifier) line: 49 
        ParentRunner$3.run() line: 193 
        ParentRunner$1.schedule(Runnable) line: 52 
        SpringJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier) 
line: 191 
        ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 42 
        ParentRunner$2.evaluate() line: 184 
        RunBeforeTestClassCallbacks.evaluate() line: 61 
        RunAfterTestClassCallbacks.evaluate() line: 70 
        SpringJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line: 
236 
        SpringJUnit4ClassRunner.run(RunNotifier) line: 174 
        JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) 
line: 50 
        TestExecution.run(ITestReference[]) line: 38 
        RemoteTestRunner.runTests(String[], String, TestExecution) line: 
467 
        RemoteTestRunner.runTests(TestExecution) line: 683 
        RemoteTestRunner.run() line: 390 
        RemoteTestRunner.main(String[]) line: 197 




Von:
Romain Manni-Bucau <rmannibucau@gmail.com>
An:
users@openejb.apache.org
Datum:
16.07.2012 17:03
Betreff:
Re: Unit tests hanging with openejb+dbunit+spring



Hi,

Any luck to get a thread stack when it hangs?

- Romain
Le 16 juil. 2012 16:23, <Klaus.Schroeder@ethalon.de> a écrit :

> Hi OpenEJB experts
> We use openejb4 + DbUnit + Spring for unittesting our EJBs. Works pretty
> well in most cases so far. But with some tests we run into a strange
> problem:
> If the test class has more than a certain number of test methods (e.g. 
20
> methods), the test simply hangs forever. It does not fail, it just hangs
> and this is really bad for our build server. If we comment out one 
method,
> the test runs fine. Our current workaround is to split up the test class
> in multiple classes and then all test methods work fine, but this is 
kind
> of a stupid fix.
>
> Does anybody ever encountered this behavior? Any ideas to fix this?
>
> Thanks
> Klaus
>
>
>
>





Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message