tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Konstantin Kolinko <knst.koli...@gmail.com>
Subject Re: svn commit: r1240105 - in /tomcat/trunk/java/org/apache/catalina: Container.java core/ContainerBase.java core/StandardHost.java deploy/NamingResources.java mbeans/MBeanUtils.java realm/RealmBase.java startup/FailedContext.java valves/ValveBase.ja
Date Fri, 03 Feb 2012 12:44:43 GMT
2012/2/3 Mark Thomas <markt@apache.org>:
> On 03/02/2012 12:19, Konstantin Kolinko wrote:
>> 2012/2/3  <markt@apache.org>:
>>> +    @Override
>>> +    public String getMBeanKeyProperties() {
>>> +        Container c = this;
>>> +        StringBuilder keyProperties = new StringBuilder();
>>> +        int containerCount = 0;
>>> +
>>> +        // Work up container hierarchy, add a component to the name for
>>> +        // each container
>>> +        while (!(c instanceof Engine)) {
>>> +            if (c instanceof Wrapper) {
>>> +                keyProperties.append(",servlet=");
>>> +                keyProperties.append(c.getName());
>>
>> I think that the names should be wrapped by ObjectName.quote().
>> Here and in similar method implemented in another class below.
>> I do not think that there is a restriction that forbids ,;:= in a servlet name.
>
> That is going to change the name Servlets are registered under. That
> sort of change has caused problems for folks in the past. I recall
> someone (rjung?) fixed a similar issue in the connectors but I can't
> remember where or how off-hand.

Connectors use address in their names.

The problem was that if address is IP6 IP that has ':'s then it cannot
be used unquoted. That is why ObjectName.quote() was needed there.

-> MBeanUtils#createObjectName(String domain,
              Connector connector)

A recent bug with connector names was with a change that removed
quotes to use better connector names in log messages and as thread
names. Quotes are needed in JMX names only, but not in human-readable
names such as Container.getName(). So there was some work to separate
the two usages. (That is what I remember. I might be a bit biased
though).

Javadoc for Container.getName() says that that name is for humans. It
says nothing about it being suitable for JMX.

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message