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

From: Andrus Adamchik (JIRA) ("Andrus)
Date: Sun Jun 18 2006 - 03:53:49 EDT

  • Next message: Andrus Adamchik: "Re: Cayenne Plug-in as a CayenneModeler Plus..."

    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