[ 
https://issues.apache.org/jira/browse/LOG4J2-676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14040200#comment-14040200
 ] 

Matt Sicker commented on LOG4J2-676:
------------------------------------

This could be related to LOG4J2-591.

> Failed to write log event to CouchDB due to error: Connection pool shut down
> ----------------------------------------------------------------------------
>
>                 Key: LOG4J2-676
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-676
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.0-rc1
>         Environment: Apache CouchDB 1.2.0
> org.lightcouch.lightcouch-1.3.0
> log4j-core-2.0-RC1
> --------------------------------------------------------------------------------
> java version "1.7.0_09"
> Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
> Java HotSpot(TM) Server VM (build 23.5-b02, mixed mode)
> --------------------------------------------------------------------------------
> GlassFish 4.0-89
>            Reporter: P_W999
>              Labels: appender, couchdb, nosql
>
> I'm trying to setup a NoSQL logger using Apache CouchDB. After logging a 
> single message, the logger fails with the following exception:
> {color: blue}
>   2014-06-22 10:22:18,590 ERROR An exception occurred processing Appender 
> databaseAppender 
> org.apache.logging.log4j.core.appender.AppenderLoggingException: Failed to 
> write log event to CouchDB due to error: Connection pool shut down
>       at 
> org.apache.logging.log4j.core.appender.db.nosql.couchdb.CouchDBConnection.insertObject(CouchDBConnection.java:57)
>       at 
> org.apache.logging.log4j.core.appender.db.nosql.NoSQLDatabaseManager.writeInternal(NoSQLDatabaseManager.java:148)
>       at 
> org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:159)
>       at 
> org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:103)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:425)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:406)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367)
>       at org.apache.logging.log4j.core.Logger.log(Logger.java:112)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:577)
>       at 
> be.pw999.kbomap.controller.KboMapController.getJson(KboMapController.java:65)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:601)
>       at 
> org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
>       at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:125)
>       at 
> org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:195)
>       at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:91)
>       at 
> org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:346)
>       at 
> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:341)
>       at 
> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101)
>       at 
> org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:224)
>       at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
>       at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
>       at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
>       at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
>       at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
>       at 
> org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
>       at 
> org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:198)
>       at 
> org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:946)
>       at 
> org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:323)
>       at 
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372)
>       at 
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335)
>       at 
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218)
>       at 
> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>       at 
> org.apache.logging.log4j.core.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:66)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
>       at 
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
>       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
>       at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
>       at 
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
>       at 
> org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
>       at 
> org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
>       at 
> org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
>       at 
> org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
>       at 
> org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
>       at 
> org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
>       at 
> org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
>       at 
> org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
>       at 
> org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
>       at 
> org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
>       at 
> org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
>       at 
> org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
>       at 
> org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
>       at 
> org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
>       at 
> org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
>       at 
> org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
>       at java.lang.Thread.run(Thread.java:722)
> Caused by: java.lang.IllegalStateException: Connection pool shut down
>       at org.apache.http.util.Asserts.check(Asserts.java:34)
>       at 
> org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:169)
>       at 
> org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:217)
>       at 
> org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:158)
>       at 
> org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
>       at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
>       at 
> org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
>       at 
> org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186)
>       at 
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
>       at 
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
>       at 
> org.lightcouch.CouchDbClientBase.executeRequest(CouchDbClientBase.java:409)
>       at org.lightcouch.CouchDbClientBase.put(CouchDbClientBase.java:517)
>       at org.lightcouch.CouchDbClientBase.save(CouchDbClientBase.java:273)
>       at 
> org.apache.logging.log4j.core.appender.db.nosql.couchdb.CouchDBConnection.insertObject(CouchDBConnection.java:51)
>       ... 66 more]]
> {color}
> The log4j2.xml file is:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration status="info">
>   <Appenders>
>     <NoSql name="databaseAppender">
>       <CouchDb databaseName="kbomaplog" protocol="http" server="127.0.0.1" 
> port="5984"
>                username="loguser" password="meh" />
>     </NoSql>
>   </Appenders>
>   <Loggers>
>     <Root level="info">
>       <AppenderRef ref="databaseAppender"/>
>     </Root>
>   </Loggers>
> </Configuration>
> {code}
> And the piece of code I'm using to test is:
> {code}
>       private Logger logger = LogManager.getLogger(KboMapController.class);
>       
>       /**
>        * Does nothing special. Returns a simple JSON object with a count of 
> the code table for testing purposes.
>        * 
>        * @param id unused
>        * @param test unused
>        * @return a JSON representation of the filled in {@link Enterprise} 
> object.
>        */
>       @GET
>       @Produces(MediaType.APPLICATION_JSON)
>       @Path("{id}/{test}")
>       public Enterprise getJson(@PathParam("id") String id, 
> @PathParam("test") String test) {
>               try {
>                       logger.error("whoaaaaaah");
>                       return new Enterprise("SUCCESS", "COUNT=" + 
> dao.count());
>               } catch (SQLException e) {
>                       return new Enterprise("ERROR", e.getMessage());
>               }
>       }
> {code}
> The same issue occurs when the logger is {{static final}}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to