Details
Description
When the repository is not available yet (for example during startup) all threads/requests will stall on the database which leads to a large amount of the following errors:
06.08.2012 00:52:51 ERROR [org.apache.jackrabbit.core.util.db.ConnectionHelper$RetryManager.doTry():498] Failed to execute SQL (stacktrace on DEBUG log level)
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:114)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.apache.jackrabbit.core.util.db.ConnectionHelper.getConnection(ConnectionHelper.java:428)
at org.apache.jackrabbit.core.util.db.ConnectionHelper.reallyExec(ConnectionHelper.java:383)
at org.apache.jackrabbit.core.util.db.ConnectionHelper$3.call(ConnectionHelper.java:371)
at org.apache.jackrabbit.core.util.db.ConnectionHelper$3.call(ConnectionHelper.java:367)
at org.apache.jackrabbit.core.util.db.ConnectionHelper$RetryManager.doTry(ConnectionHelper.java:494)
at org.apache.jackrabbit.core.util.db.ConnectionHelper.exec(ConnectionHelper.java:367)
at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1033)
at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundle(AbstractBundlePersistenceManager.java:667)
at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.exists(AbstractBundlePersistenceManager.java:488)
at org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState(SharedItemStateManager.java:1775)
at org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(SharedItemStateManager.java:307)
at org.hippoecm.repository.jackrabbit.HippoSharedItemStateManager.hasItemState(HippoSharedItemStateManager.java:137)
at org.apache.jackrabbit.core.state.ForkedXAItemStateManager.hasItemState(ForkedXAItemStateManager.java:305)
at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager.hasItemState(HippoLocalItemStateManager.java:413)
at org.apache.jackrabbit.core.state.SessionItemStateManager.hasItemState(SessionItemStateManager.java:182)
at org.apache.jackrabbit.core.ItemManager.itemExists(ItemManager.java:301)
at org.apache.jackrabbit.core.ItemManager.itemExists(ItemManager.java:523)
at org.apache.jackrabbit.core.NodeImpl.hasNode(NodeImpl.java:2222)
at org.hippoecm.repository.security.user.AbstractUserManager.getUser(AbstractUserManager.java:169)
at org.hippoecm.repository.security.SecurityManager.authenticate(SecurityManager.java:274)
at org.hippoecm.repository.security.HippoLoginModule.login(HippoLoginModule.java:142)
at org.apache.jackrabbit.core.security.authentication.LocalAuthContext.login(LocalAuthContext.java:88)
at org.apache.jackrabbit.core.RepositoryImpl.login(RepositoryImpl.java:1474)
at org.hippoecm.repository.impl.RepositoryDecorator.login(RepositoryDecorator.java:84)
at org.hippoecm.repository.decorating.checked.RepositoryDecorator.login(RepositoryDecorator.java:78)
at org.hippoecm.repository.HippoRepositoryImpl.login(HippoRepositoryImpl.java:116)
at org.hippoecm.repository.HippoRepositoryImpl.login(HippoRepositoryImpl.java:104)
at org.hippoecm.repository.PingServlet.obtainSession(PingServlet.java:245)
at org.hippoecm.repository.PingServlet.doRepositoryChecks(PingServlet.java:224)
at org.hippoecm.repository.PingServlet.doGet(PingServlet.java:183)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:370)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.hippoecm.frontend.ResourceRewriteFilter.doFilter(ResourceRewriteFilter.java:129)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.hippoecm.frontend.plugins.login.ConcurrentLoginFilter.doFilter(ConcurrentLoginFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:396)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1167)
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
... 56 more
Only one request at the time should be handled.