You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cayenne.apache.org by "Andrus Adamchik (JIRA)" <ji...@apache.org> on 2006/06/18 09:53:49 UTC

[JIRA] Created: (CAY-573) Deadlock involving connection pool, IncrementalFaultList, and DataRowStore

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