You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Ajay Patel <aj...@gmail.com> on 2017/05/12 05:27:09 UTC

Exception while using JMXProxy in Tomcat 8.5.9

I am using Tomcat 8.5.9, i am calling below url to get jmx statistics from
Tomcat.

http://10.10.24.10:60080/manager/jmxproxy?qry=*%3Atype%3DDataSource%2C*

It gives me output on browser, but at the same time it also shows traces in
catalina.out log

11-May-2017 14:51:58.935 SEVERE [http-nio-60080-exec-7]
org.apache.catalina.mbeans.MBeanDumper.dumpBeans Error getting
attribute Catalina:type=DataSource,host=localhost,context=/,class=javax.sql.DataSource,name="jdbc/mydb",connectionpool=connections,connection=2
Schema
 javax.management.RuntimeErrorException: java.lang.StackOverflowError
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultMBeanServerInterceptor.java:841)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrowMaybeMBeanException(DefaultMBeanServerInterceptor.java:852)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:651)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678)
        at org.apache.catalina.mbeans.MBeanDumper.dumpBeans(MBeanDumper.java:84)
        at org.apache.catalina.manager.JMXProxyServlet.listBeans(JMXProxyServlet.java:185)
        at org.apache.catalina.manager.JMXProxyServlet.doGet(JMXProxyServlet.java:121)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:591)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1437)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)Caused by:
java.lang.StackOverflowError
        at java.lang.String.valueOf(String.java:2849)
        at java.util.Arrays.toString(Arrays.java:3565)
        at org.apache.tomcat.dbcp.pool2.impl.BaseGenericObjectPool$StatsStore.toString(BaseGenericObjectPool.java:1118)
        at java.lang.String.valueOf(String.java:2849)
        at java.lang.StringBuilder.append(StringBuilder.java:128)
        at org.apache.tomcat.dbcp.pool2.impl.BaseGenericObjectPool.toStringAppendFields(BaseGenericObjectPool.java:1288)
        at org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool.toStringAppendFields(GenericKeyedObjectPool.java:1589)
        at org.apache.tomcat.dbcp.pool2.BaseObject.toString(BaseObject.java:31)
        at org.apache.tomcat.dbcp.dbcp2.PoolingConnection.toString(PoolingConnection.java:424)
        at java.lang.String.valueOf(String.java:2849)
        at java.lang.StringBuilder.append(StringBuilder.java:128)
        at org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool.toStringAppendFields(GenericKeyedObjectPool.java:1597)
        at org.apache.tomcat.dbcp.pool2.BaseObject.toString(BaseObject.java:31)
        at org.apache.tomcat.dbcp.dbcp2.PoolingConnection.toString(PoolingConnection.java:424)
        .
        .
        .
        .
        at java.lang.String.valueOf(String.java:2849)
        at java.lang.StringBuilder.append(StringBuilder.java:128)
        at org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool.toStringAppendFields(GenericKeyedObjectPool.java:1597)
        at org.apache.tomcat.dbcp.pool2.BaseObject.toString(BaseObject.java:31)
        at org.apache.tomcat.dbcp.dbcp2.PoolingConnection.toString(PoolingConnection.java:424)

​


I am using Tomcat 8.5.9, i am calling below url to get jmx statistics from
Tomcat.

http://10.10.24.10:60080/manager/jmxproxy?qry=*%3Atype%3DDataSource%2C*

It gives me output on browser, but at the same time it also shows traces in
catalina.out log

11-May-2017 14:51:58.935 SEVERE [http-nio-60080-exec-7]
org.apache.catalina.mbeans.MBeanDumper.dumpBeans Error getting
attribute Catalina:type=DataSource,host=localhost,context=/,class=javax.sql.DataSource,name="jdbc/mydb",connectionpool=connections,connection=2
Schema
 javax.management.RuntimeErrorException: java.lang.StackOverflowError
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultMBeanServerInterceptor.java:841)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrowMaybeMBeanException(DefaultMBeanServerInterceptor.java:852)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:651)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678)
        at org.apache.catalina.mbeans.MBeanDumper.dumpBeans(MBeanDumper.java:84)
        at org.apache.catalina.manager.JMXProxyServlet.listBeans(JMXProxyServlet.java:185)
        at org.apache.catalina.manager.JMXProxyServlet.doGet(JMXProxyServlet.java:121)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:591)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1437)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)Caused by:
java.lang.StackOverflowError
        at java.lang.String.valueOf(String.java:2849)
        at java.util.Arrays.toString(Arrays.java:3565)
        at org.apache.tomcat.dbcp.pool2.impl.BaseGenericObjectPool$StatsStore.toString(BaseGenericObjectPool.java:1118)
        at java.lang.String.valueOf(String.java:2849)
        at java.lang.StringBuilder.append(StringBuilder.java:128)
        at org.apache.tomcat.dbcp.pool2.impl.BaseGenericObjectPool.toStringAppendFields(BaseGenericObjectPool.java:1288)
        at org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool.toStringAppendFields(GenericKeyedObjectPool.java:1589)
        at org.apache.tomcat.dbcp.pool2.BaseObject.toString(BaseObject.java:31)
        at org.apache.tomcat.dbcp.dbcp2.PoolingConnection.toString(PoolingConnection.java:424)
        at java.lang.String.valueOf(String.java:2849)
        at java.lang.StringBuilder.append(StringBuilder.java:128)
        at org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool.toStringAppendFields(GenericKeyedObjectPool.java:1597)
        at org.apache.tomcat.dbcp.pool2.BaseObject.toString(BaseObject.java:31)
        at org.apache.tomcat.dbcp.dbcp2.PoolingConnection.toString(PoolingConnection.java:424)
        .
        .
        .
        .
        at java.lang.String.valueOf(String.java:2849)
        at java.lang.StringBuilder.append(StringBuilder.java:128)
        at org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool.toStringAppendFields(GenericKeyedObjectPool.java:1597)
        at org.apache.tomcat.dbcp.pool2.BaseObject.toString(BaseObject.java:31)
        at org.apache.tomcat.dbcp.dbcp2.PoolingConnection.toString(PoolingConnection.java:424)

Same traces while fetching for for diff. Attribute as below,

    11-May-2017 14:51:59.209 SEVERE [http-nio-60080-exec-7]
org.apache.catalina.mbeans.MBeanDumper.dumpBeans Error getting
attribute Catalina:type=DataSource,host=localhost,context=/,class=javax.sql.DataSource,name="jdbc/mydb",connectionpool=connections,connection=2
AutoCommit
11-May-2017 14:51:59.477 SEVERE [http-nio-60080-exec-7]
org.apache.catalina.mbeans.MBeanDumper.dumpBeans Error getting
attribute Catalina:type=DataSource,host=localhost,context=/,class=javax.sql.DataSource,name="jdbc/mydb",connectionpool=connections,connection=2
Catalog
11-May-2017 14:51:59.757 SEVERE [http-nio-60080-exec-7]
org.apache.catalina.mbeans.MBeanDumper.dumpBeans Error getting
attribute Catalina:type=DataSource,host=localhost,context=/,class=javax.sql.DataSource,name="jdbc/mydb",connectionpool=connections,connection=2
Holdability

11-May-2017 14:52:00.023 SEVERE [http-nio-60080-exec-7]
org.apache.catalina.mbeans.MBeanDumper.dumpBeans Error getting
attribute Catalina:type=DataSource,host=localhost,context=/,class=javax.sql.DataSource,name="jdbc/mydb",connectionpool=connections,connection=2
TransactionIsolation
11-May-2017 14:52:00.285 SEVERE [http-nio-60080-exec-7]
org.apache.catalina.mbeans.MBeanDumper.dumpBeans Error getting
attribute Catalina:type=DataSource,host=localhost,context=/,class=javax.sql.DataSource,name="jdbc/mydb",connectionpool=connections,connection=2
ReadOnly

Also in browser output of type=DataSource i got below output,

Name: Catalina:type=DataSource,host=localhost,context=/,class=javax.sql.DataSource,name="jdbc/mydba",connectionpool=connections,connection=1,statementpool=statements
modelerType: org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPoolDestroyedByEvictorCount:
0DestroyedByBorrowValidationCount: 0MeanActiveTimeMillis:
1MeanIdleTimeMillis: 6052MeanBorrowWaitTimeMillis:
0MaxBorrowWaitTimeMillis: 1CreationStackTrace: java.lang.Exception\n
    at org.apache.tomcat.dbcp.pool2.impl.BaseGenericObjectPool.<init>(BaseGeneric
 ObjectPool.java:139)\n
    at org.apache.tomcat.dbcp.pool2.impl.GenericKeyedObjectPool.<init>(GenericKey
 edObjectPool.java:100)\n
    at org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.makeObject(Poolable
 ConnectionFactory.java:293)\n
    at org.apache.tomcat.dbcp.pool2.impl.GenericObjectPool.create(GenericObjectPo
 ol.java:888)\n
    at org.apache.tomcat.dbcp.pool2.impl.GenericObjectPool.borrowObject(GenericOb
 jectPool.java:430)\n
    at org.apache.tomcat.dbcp.pool2.impl.GenericObjectPool.borrowObject(GenericOb
 jectPool.java:359)\n
    at org.apache.tomcat.dbcp.dbcp2.PoolingDataSource.getConnection(PoolingDataSo
 urce.java:134)\n
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource
 .java:1543)\n
    at com.mycompany.core.datasource.JNDIDSManager.initJ
 NDIDataSource(JNDIDSManager.java:47)\n

At this line JNDIDSManager.java:47 i have code which will get connection
from datasource.

What "CreationStackTrace" attribute means and when it occurs?
​
-- 


*Ajay Patel*