Deadlock involving connection pool, IncrementalFaultList, and DataRowStore
--------------------------------------------------------------------------
Key: CAY-573
URL: http://issues.apache.org/cayenne/browse/CAY-573
Project: Cayenne
Type: Bug
Components: Cayenne Core Library
Versions: 1.2
Reporter: Andrus Adamchik
Assigned to: Andrus Adamchik
Priority: Minor
Fix For: 1.2
An obscure bug that I discovered when doing load testing. When Cayenne connection pool size is less than the average number of concurrent requests, doing commit and filling in IncrementalFaultList in parallel eventually causes a deadlock. See thread dump below - IncrementalFaultList is holding an open connection and trying to get a lock on DataRowStore, while a committing thread that locked DataRowStore can's get a connection, cause the pool is empty.
"btpool0-6" prio=5 tid=0x0053a000 nid=0x18d3400 in Object.wait() [0xb1594000..0xb1594d10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1c1a0600> (a org.objectstyle.cayenne.conn.PoolManager)
at org.objectstyle.cayenne.conn.PoolManager.uncheckPooledConnection(PoolManager.java:458)
at org.objectstyle.cayenne.conn.PoolManager.getConnection(PoolManager.java:392)
- locked <0x1c1a0600> (a org.objectstyle.cayenne.conn.PoolManager)
at org.objectstyle.cayenne.conn.PoolManager.getConnection(PoolManager.java:385)
at org.objectstyle.cayenne.access.DataNode$TransactionDataSource.getConnection(DataNode.java:580)
at org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:287)
at org.objectstyle.cayenne.access.DataDomainFlushAction.runQueries(DataDomainFlushAction.java:255)
at org.objectstyle.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:177)
- locked <0x1c33baf8> (a org.objectstyle.cayenne.access.DataRowStore)
at org.objectstyle.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:829)
at org.objectstyle.cayenne.access.DataDomain$2.transform(DataDomain.java:800)
at org.objectstyle.cayenne.access.DataDomain.runInTransaction(DataDomain.java:855)
at org.objectstyle.cayenne.access.DataDomain.onSync(DataDomain.java:797)
at org.objectstyle.cayenne.access.DataContext.flushToParent(DataContext.java:1261)
- locked <0x1abdc6b0> (a org.objectstyle.cayenne.access.ObjectStore)
at org.objectstyle.cayenne.access.DataContext.commitChanges(DataContext.java:1165)
at org.apache.cayenne.profile.cases.RandomOperationCase.doRequest(RandomOperationCase.java:88)
at org.apache.cayenne.profile.AbstractCase.doGet(AbstractCase.java:37)
at org.apache.cayenne.profile.servlet.ProfileServlet.doGet(ProfileServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:423)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:355)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:219)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:542)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:145)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.mortbay.jetty.Server.handle(Server.java:245)
at org.mortbay.jetty.HttpConnection.handlerRequest(HttpConnection.java:365)
at org.mortbay.jetty.HttpConnection.access$1500(HttpConnection.java:38)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:609)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:486)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:196)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:296)
at org.mortbay.jetty.nio.SelectChannelConnector$HttpEndPoint.run(SelectChannelConnector.java:740)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:435)
"btpool0-5" prio=5 tid=0x00538210 nid=0x18d3000 waiting for monitor entry [0xb1513000..0xb1513d10]
at org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:134)
- waiting to lock <0x1c33baf8> (a org.objectstyle.cayenne.access.DataRowStore)
- locked <0x1ad43b88> (a org.objectstyle.cayenne.access.ObjectStore)
at org.objectstyle.cayenne.access.DataContext.objectsFromDataRows(DataContext.java:758)
at org.objectstyle.cayenne.access.IncrementalFaultList.fillIn(IncrementalFaultList.java:241)
- locked <0x1ad48be8> (a java.util.Collections$SynchronizedRandomAccessList)
at org.objectstyle.cayenne.access.IncrementalFaultList.<init>(IncrementalFaultList.java:192)
at org.objectstyle.cayenne.access.DataContextQueryAction.interceptPaginatedQuery(DataContextQueryAction.java:128)
at org.objectstyle.cayenne.access.DataContextQueryAction.execute(DataContextQueryAction.java:86)
at org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java:1422)
at org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:1411)
at org.apache.cayenne.profile.cases.RandomOperationCase.getRandomObject(RandomOperationCase.java:121)
at org.apache.cayenne.profile.cases.RandomOperationCase.doUpdate(RandomOperationCase.java:97)
at org.apache.cayenne.profile.cases.RandomOperationCase.doRequest(RandomOperationCase.java:80)
at org.apache.cayenne.profile.AbstractCase.doGet(AbstractCase.java:37)
at org.apache.cayenne.profile.servlet.ProfileServlet.doGet(ProfileServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:423)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:355)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:219)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:542)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:145)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.mortbay.jetty.Server.handle(Server.java:245)
at org.mortbay.jetty.HttpConnection.handlerRequest(HttpConnection.java:365)
at org.mortbay.jetty.HttpConnection.access$1500(HttpConnection.java:38)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:609)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:486)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:196)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:296)
at org.mortbay.jetty.nio.SelectChannelConnector$HttpEndPoint.run(SelectChannelConnector.java:740)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:435)
"btpool0-4" prio=5 tid=0x00536780 nid=0x18d2c00 waiting for monitor entry [0xb1492000..0xb1492d10]
at org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:134)
- waiting to lock <0x1c33baf8> (a org.objectstyle.cayenne.access.DataRowStore)
- locked <0x1acb1e38> (a org.objectstyle.cayenne.access.ObjectStore)
at org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectConversion(DataDomainQueryAction.java:373)
at org.objectstyle.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:151)
at org.objectstyle.cayenne.access.DataDomain.onQuery(DataDomain.java:765)
at org.objectstyle.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:253)
at org.objectstyle.cayenne.access.DataContextQueryAction.execute(DataContextQueryAction.java:90)
at org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java:1422)
at org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:1411)
at org.objectstyle.cayenne.access.IncrementalFaultList.resolveInterval(IncrementalFaultList.java:385)
- locked <0x1acb6e98> (a java.util.Collections$SynchronizedRandomAccessList)
at org.objectstyle.cayenne.access.IncrementalFaultList.get(IncrementalFaultList.java:624)
- locked <0x1acb6e98> (a java.util.Collections$SynchronizedRandomAccessList)
at org.apache.cayenne.profile.cases.RandomOperationCase.getRandomObject(RandomOperationCase.java:126)
at org.apache.cayenne.profile.cases.RandomOperationCase.doUpdate(RandomOperationCase.java:97)
at org.apache.cayenne.profile.cases.RandomOperationCase.doRequest(RandomOperationCase.java:80)
at org.apache.cayenne.profile.AbstractCase.doGet(AbstractCase.java:37)
at org.apache.cayenne.profile.servlet.ProfileServlet.doGet(ProfileServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:423)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:355)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:219)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:542)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:145)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.mortbay.jetty.Server.handle(Server.java:245)
at org.mortbay.jetty.HttpConnection.handlerRequest(HttpConnection.java:365)
at org.mortbay.jetty.HttpConnection.access$1500(HttpConnection.java:38)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:609)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:486)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:196)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:296)
at org.mortbay.jetty.nio.SelectChannelConnector$HttpEndPoint.run(SelectChannelConnector.java:740)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:435)
"btpool0-3" prio=5 tid=0x00534090 nid=0x18d2800 waiting for monitor entry [0xb1411000..0xb1411d10]
at org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:134)
- waiting to lock <0x1c33baf8> (a org.objectstyle.cayenne.access.DataRowStore)
- locked <0x1ad1e900> (a org.objectstyle.cayenne.access.ObjectStore)
at org.objectstyle.cayenne.access.DataContext.objectsFromDataRows(DataContext.java:758)
at org.objectstyle.cayenne.access.IncrementalFaultList.fillIn(IncrementalFaultList.java:241)
- locked <0x1ad23960> (a java.util.Collections$SynchronizedRandomAccessList)
at org.objectstyle.cayenne.access.IncrementalFaultList.<init>(IncrementalFaultList.java:192)
at org.objectstyle.cayenne.access.DataContextQueryAction.interceptPaginatedQuery(DataContextQueryAction.java:128)
at org.objectstyle.cayenne.access.DataContextQueryAction.execute(DataContextQueryAction.java:86)
at org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java:1422)
at org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:1411)
at org.apache.cayenne.profile.cases.RandomOperationCase.getRandomObject(RandomOperationCase.java:121)
at org.apache.cayenne.profile.cases.RandomOperationCase.doDelete(RandomOperationCase.java:104)
at org.apache.cayenne.profile.cases.RandomOperationCase.doRequest(RandomOperationCase.java:83)
at org.apache.cayenne.profile.AbstractCase.doGet(AbstractCase.java:37)
at org.apache.cayenne.profile.servlet.ProfileServlet.doGet(ProfileServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:423)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:355)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:219)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:542)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:145)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.mortbay.jetty.Server.handle(Server.java:245)
at org.mortbay.jetty.HttpConnection.handlerRequest(HttpConnection.java:365)
at org.mortbay.jetty.HttpConnection.access$1500(HttpConnection.java:38)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:609)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:486)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:196)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:296)
at org.mortbay.jetty.nio.SelectChannelConnector$HttpEndPoint.run(SelectChannelConnector.java:740)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:435)
"btpool0-2" prio=5 tid=0x0052a540 nid=0x18cc800 waiting for monitor entry [0xb1390000..0xb1390d10]
at org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:134)
- waiting to lock <0x1c33baf8> (a org.objectstyle.cayenne.access.DataRowStore)
- locked <0x1ac796c0> (a org.objectstyle.cayenne.access.ObjectStore)
at org.objectstyle.cayenne.access.DataContext.objectsFromDataRows(DataContext.java:758)
at org.objectstyle.cayenne.access.IncrementalFaultList.fillIn(IncrementalFaultList.java:241)
- locked <0x1ac7e720> (a java.util.Collections$SynchronizedRandomAccessList)
at org.objectstyle.cayenne.access.IncrementalFaultList.<init>(IncrementalFaultList.java:192)
at org.objectstyle.cayenne.access.DataContextQueryAction.interceptPaginatedQuery(DataContextQueryAction.java:128)
at org.objectstyle.cayenne.access.DataContextQueryAction.execute(DataContextQueryAction.java:86)
at org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java:1422)
at org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:1411)
at org.apache.cayenne.profile.cases.RandomOperationCase.getRandomObject(RandomOperationCase.java:121)
at org.apache.cayenne.profile.cases.RandomOperationCase.doDelete(RandomOperationCase.java:104)
at org.apache.cayenne.profile.cases.RandomOperationCase.doRequest(RandomOperationCase.java:83)
at org.apache.cayenne.profile.AbstractCase.doGet(AbstractCase.java:37)
at org.apache.cayenne.profile.servlet.ProfileServlet.doGet(ProfileServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:423)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:355)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:219)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:542)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:145)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.mortbay.jetty.Server.handle(Server.java:245)
at org.mortbay.jetty.HttpConnection.handlerRequest(HttpConnection.java:365)
at org.mortbay.jetty.HttpConnection.access$1500(HttpConnection.java:38)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:609)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:486)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:196)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:296)
at org.mortbay.jetty.nio.SelectChannelConnector$HttpEndPoint.run(SelectChannelConnector.java:740)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:435)
"Thread-5" daemon prio=5 tid=0x005299b0 nid=0x18d5000 waiting on condition [0xb130f000..0xb130fd10]
at java.lang.Thread.sleep(Native Method)
at org.mortbay.jetty.plugin.util.Scanner.run(Scanner.java:144)
"btpool0-1 - Acceptor0 SelectChannelConnector..0.0.0.0:8080" prio=4 tid=0x00529280 nid=0x18d4c00 runnable [0xb128e000..0xb128ed10]
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:118)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:69)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
- locked <0x1c3422f0> (a sun.nio.ch.Util$1)
- locked <0x1c342300> (a java.util.Collections$UnmodifiableSet)
- locked <0x1c3422a8> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at org.mortbay.jetty.nio.SelectChannelConnector$SelectSet.accept(SelectChannelConnector.java:347)
at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:183)
at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:594)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:435)
"PoolManagerCleanup-3326052" daemon prio=5 tid=0x00528470 nid=0x191f600 waiting on condition [0xb120d000..0xb120dd10]
at java.lang.Thread.sleep(Native Method)
at org.objectstyle.cayenne.conn.PoolManager$PoolMaintenanceThread.run(PoolManager.java:558)
"EventDispatchThread-1" daemon prio=5 tid=0x00527a90 nid=0x191f200 in Object.wait() [0xb118c000..0xb118cd10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1c1998c0> (a java.util.Collections$SynchronizedList)
at java.lang.Object.wait(Object.java:474)
at org.objectstyle.cayenne.event.EventManager$DispatchThread.run(EventManager.java:486)
- locked <0x1c1998c0> (a java.util.Collections$SynchronizedList)
"EventDispatchThread-0" daemon prio=5 tid=0x005277e0 nid=0x191ee00 in Object.wait() [0xb110b000..0xb110bd10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1c1998c0> (a java.util.Collections$SynchronizedList)
at java.lang.Object.wait(Object.java:474)
at org.objectstyle.cayenne.event.EventManager$DispatchThread.run(EventManager.java:486)
- locked <0x1c1998c0> (a java.util.Collections$SynchronizedList)
"EventDispatchThread-4" daemon prio=5 tid=0x00526fa0 nid=0x191ea00 in Object.wait() [0xb108a000..0xb108ad10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
at java.lang.Object.wait(Object.java:474)
at org.objectstyle.cayenne.event.EventManager$DispatchThread.run(EventManager.java:486)
- locked <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
"EventDispatchThread-3" daemon prio=5 tid=0x00526a50 nid=0x1921c00 in Object.wait() [0xb1009000..0xb1009d10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
at java.lang.Object.wait(Object.java:474)
at org.objectstyle.cayenne.event.EventManager$DispatchThread.run(EventManager.java:486)
- locked <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
"EventDispatchThread-2" daemon prio=5 tid=0x005266e0 nid=0x1921800 in Object.wait() [0xb0f88000..0xb0f88d10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
at java.lang.Object.wait(Object.java:474)
at org.objectstyle.cayenne.event.EventManager$DispatchThread.run(EventManager.java:486)
- locked <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
"EventDispatchThread-1" daemon prio=5 tid=0x00526230 nid=0x1921400 in Object.wait() [0xb0f07000..0xb0f07d10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
at java.lang.Object.wait(Object.java:474)
at org.objectstyle.cayenne.event.EventManager$DispatchThread.run(EventManager.java:486)
- locked <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
"EventDispatchThread-0" daemon prio=5 tid=0x00525e40 nid=0x1921000 in Object.wait() [0xb0e86000..0xb0e86d10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
at java.lang.Object.wait(Object.java:474)
at org.objectstyle.cayenne.event.EventManager$DispatchThread.run(EventManager.java:486)
- locked <0x1c18f8e0> (a java.util.Collections$SynchronizedList)
"btpool0-0 - Invalidator - /cayenne-regression-profiler" prio=5 tid=0x00523670 nid=0x1920c00 waiting on condition [0xb0e05000..0xb0e05d10]
at java.lang.Thread.sleep(Native Method)
at org.mortbay.jetty.servlet.AbstractSessionManager$SessionScavenger.run(AbstractSessionManager.java:816)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:435)
"EventDispatchThread-1" daemon prio=5 tid=0x0051bc50 nid=0x1867200 in Object.wait() [0xb0d84000..0xb0d84d10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1bd3e0a0> (a java.util.Collections$SynchronizedList)
at java.lang.Object.wait(Object.java:474)
at org.objectstyle.cayenne.event.EventManager$DispatchThread.run(EventManager.java:486)
- locked <0x1bd3e0a0> (a java.util.Collections$SynchronizedList)
"EventDispatchThread-0" daemon prio=5 tid=0x0051b9e0 nid=0x18ae200 in Object.wait() [0xb0d03000..0xb0d03d10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1bd3e0a0> (a java.util.Collections$SynchronizedList)
at java.lang.Object.wait(Object.java:474)
at org.objectstyle.cayenne.event.EventManager$DispatchThread.run(EventManager.java:486)
- locked <0x1bd3e0a0> (a java.util.Collections$SynchronizedList)
"Low Memory Detector" daemon prio=5 tid=0x00508f50 nid=0x1812000 runnable [0x00000000..0x00000000]
"CompilerThread0" daemon prio=9 tid=0x00508550 nid=0x1818800 waiting on condition [0x00000000..0xb0aff74c]
"Signal Dispatcher" daemon prio=9 tid=0x00508040 nid=0x1815e00 waiting on condition [0x00000000..0x00000000]
"Finalizer" daemon prio=8 tid=0x00507790 nid=0x1810000 in Object.wait() [0xb09fd000..0xb09fdd10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1b9301e0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x1b9301e0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x00507390 nid=0x180f000 in Object.wait() [0xb097c000..0xb097cd10]
at java.lang.Object.wait(Native Method)
- waiting on <0x1b930260> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:474)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x1b930260> (a java.lang.ref.Reference$Lock)
"main" prio=5 tid=0x00501480 nid=0x1804600 in Object.wait() [0xb07f8000..0xb07f90dc]
at java.lang.Object.wait(Native Method)
- waiting on <0x2ab1ca98> (a java.lang.String)
at org.mortbay.thread.BoundedThreadPool.join(BoundedThreadPool.java:157)
- locked <0x2ab1ca98> (a java.lang.String)
at org.mortbay.jetty.plugin.Jetty6PluginServer.join(Jetty6PluginServer.java:196)
at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:418)
at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:356)
at org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:172)
at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:167)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:412)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:488)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:458)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
"VM Thread" prio=9 tid=0x00506b80 nid=0x1803c00 runnable
"VM Periodic Task Thread" prio=9 tid=0x0050a660 nid=0x1812400 waiting on condition
"Exception Catcher Thread" prio=10 tid=0x005016a0 nid=0x1804e00 runnable
-- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/cayenne/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
This archive was generated by hypermail 2.0.0 : Sun Jun 18 2006 - 03:55:11 EDT