You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Bastien Colmard (JIRA)" <ji...@apache.org> on 2015/06/04 14:37:37 UTC
[jira] [Updated] (POOL-298) Wrong jmxNameBase default value
[ https://issues.apache.org/jira/browse/POOL-298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bastien Colmard updated POOL-298:
---------------------------------
Description:
We needed to define our own pool names for Redis, to be able to know which pool was throwing errors, but we experienced some difficulties.
We use {{jedis-2.7.2}}, which uses {{commons-pool2-2.3}} configured with spring beans. After setting a custom {{jmxNamePrefix}}, we didn't notice any difference and proceeded to debug.
To my understanding, BaseGenericObjectPool.jmxRegister uses BaseObjectPoolConfig.jmxNameBase to build its ObjectName, but jmxNameBase defaults to jmxNamePrefix which is "pool" (not a valid domain) and throws a MalformedObjectNameException, falling back to "org.apache.commons.pool2:type=GenericKeyedObjectPool,name=pool".
The current workaround is to force jmxNameBase to null with
{code:xml}<property name="jmxNameBase"><null/></property>{code}
The fix would be
https://github.com/apache/commons-pool/blob/trunk/src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java#L192 (introduced in December 2013 it seems)
{code}
-private String jmxNameBase = DEFAULT_JMX_NAME_PREFIX
+private String jmxNameBase = DEFAULT_JMX_NAME_BASE
{code}
I can submit a Pull Request on Github but it looks like you only use it as a mirror
was:
We needed to define our own pool names for Redis, to be able to know which pool was throwing errors, but we experienced some difficulties.
We use {{jedis-2.7.2}}, which uses {{commons-pool2-2.3}} configured with spring beans. After setting a custom {{jmxNamePrefix}}, we didn't notice any difference and proceeded to debug.
BaseGenericObjectPool.jmxRegister uses BaseObjectPoolConfig.jmxNameBase to build its ObjectName, but jmxNameBase defaults to jmxNamePrefix which is "pool" (not a valid domain) and throws a MalformedObjectNameException, falling back to "org.apache.commons.pool2:type=GenericKeyedObjectPool,name=pool".
The current workaround is to force jmxNameBase to null with
{code:xml}<property name="jmxNameBase"><null/></property>{code}
https://github.com/apache/commons-pool/blob/trunk/src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java#L192 (introduced in December 2013 it seems)
The fix would be
{code}
-private String jmxNameBase = DEFAULT_JMX_NAME_PREFIX
+private String jmxNameBase = DEFAULT_JMX_NAME_BASE
{code}
I can submit a Pull Request on Github but it looks like you only use it as a mirror
> Wrong jmxNameBase default value
> -------------------------------
>
> Key: POOL-298
> URL: https://issues.apache.org/jira/browse/POOL-298
> Project: Commons Pool
> Issue Type: Bug
> Affects Versions: 2.3
> Reporter: Bastien Colmard
> Priority: Minor
>
> We needed to define our own pool names for Redis, to be able to know which pool was throwing errors, but we experienced some difficulties.
> We use {{jedis-2.7.2}}, which uses {{commons-pool2-2.3}} configured with spring beans. After setting a custom {{jmxNamePrefix}}, we didn't notice any difference and proceeded to debug.
> To my understanding, BaseGenericObjectPool.jmxRegister uses BaseObjectPoolConfig.jmxNameBase to build its ObjectName, but jmxNameBase defaults to jmxNamePrefix which is "pool" (not a valid domain) and throws a MalformedObjectNameException, falling back to "org.apache.commons.pool2:type=GenericKeyedObjectPool,name=pool".
> The current workaround is to force jmxNameBase to null with
> {code:xml}<property name="jmxNameBase"><null/></property>{code}
> The fix would be
> https://github.com/apache/commons-pool/blob/trunk/src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java#L192 (introduced in December 2013 it seems)
> {code}
> -private String jmxNameBase = DEFAULT_JMX_NAME_PREFIX
> +private String jmxNameBase = DEFAULT_JMX_NAME_BASE
> {code}
> I can submit a Pull Request on Github but it looks like you only use it as a mirror
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)