You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Aki Yoshida <el...@googlemail.com> on 2011/03/11 19:43:13 UTC

RE: Odd behavior in CXF's JMX IntrumentationManagerImpl

Hi,
I brought this problem some weeks ago, but I didn't hear anything.

Today, I made a junit test case to demonstrate this problem and also a
patch to fix this problem. This problem only affects the standalone
setup (i.e., not using the framework's server).

In short, the init method of
org.apache.cxf.management.jmx.InstrumentationManagerImpl class has the
problem when it is running in the standalone mode. This problem causes
each instance of this InstrumentationManagerImpl to instantiate a new
MBeanServer because the lookup into MBeanServerFactory.findMBeanServer
is done by using the wrong argument.

The current code does the lookup using the following line::

    MBeanServerFactory.findMBean|Sever(mbeanServerName),

where mbeanServerName is set to "org.apache.cxf", which is the default
domain name for the server. However, this find method expects the
agendId, which is not the domain name but the ID attribute of the
server.

As each call to the above method finds no server, a new server is
created for each call and placed in the MBeanServerFactory's internal
map. This can lead to memory leak and it is also causing the JMX
console to show only one bus instance in this case.

I changed this class so that the lookup is correctly done for the
given domain so that all the bus instances are visible in the server.

I can create a JIRA ticket and attach the patch and the unit test
class. I did this attaching thing in JIRA several times but I have a
quesiton when I have a new file and not just changed files. Should I
add the new file in svn (ie. using svn add) first and then attach the
svn diff file to the ticket? Or should I attach the file itself to the
ticket?

Thanks.

Regards, Aki

Regards, aki

Re: Odd behavior in CXF's JMX IntrumentationManagerImpl

Posted by Aki Yoshida <el...@googlemail.com>.
Okay,
I created CXF-3396 and attached the svn diff file.
Regards, Aki


2011/3/11 Daniel Kulp <dk...@apache.org>:
> On Friday 11 March 2011 1:43:13 PM Aki Yoshida wrote:
>> Hi,
>> I brought this problem some weeks ago, but I didn't hear anything.
>>
>> Today, I made a junit test case to demonstrate this problem and also a
>> patch to fix this problem. This problem only affects the standalone
>> setup (i.e., not using the framework's server).
>
> OK.  That answers my biggest concern..   :-)   If it only affects the
> standalone case, that's great.
>
>
> As Benson said, do an svn add and then the svn diff.   That should create a
> usable patch.
>
> Dan
>
>
>
>> In short, the init method of
>> org.apache.cxf.management.jmx.InstrumentationManagerImpl class has the
>> problem when it is running in the standalone mode. This problem causes
>> each instance of this InstrumentationManagerImpl to instantiate a new
>> MBeanServer because the lookup into MBeanServerFactory.findMBeanServer
>> is done by using the wrong argument.
>>
>> The current code does the lookup using the following line::
>>
>>     MBeanServerFactory.findMBean|Sever(mbeanServerName),
>>
>> where mbeanServerName is set to "org.apache.cxf", which is the default
>> domain name for the server. However, this find method expects the
>> agendId, which is not the domain name but the ID attribute of the
>> server.
>>
>> As each call to the above method finds no server, a new server is
>> created for each call and placed in the MBeanServerFactory's internal
>> map. This can lead to memory leak and it is also causing the JMX
>> console to show only one bus instance in this case.
>>
>> I changed this class so that the lookup is correctly done for the
>> given domain so that all the bus instances are visible in the server.
>>
>> I can create a JIRA ticket and attach the patch and the unit test
>> class. I did this attaching thing in JIRA several times but I have a
>> quesiton when I have a new file and not just changed files. Should I
>> add the new file in svn (ie. using svn add) first and then attach the
>> svn diff file to the ticket? Or should I attach the file itself to the
>> ticket?
>>
>> Thanks.
>>
>> Regards, Aki
>>
>> Regards, aki
>
> --
> Daniel Kulp
> dkulp@apache.org
> http://dankulp.com/blog
> Talend - http://www.talend.com
>

Re: Odd behavior in CXF's JMX IntrumentationManagerImpl

Posted by Daniel Kulp <dk...@apache.org>.
On Friday 11 March 2011 1:43:13 PM Aki Yoshida wrote:
> Hi,
> I brought this problem some weeks ago, but I didn't hear anything.
> 
> Today, I made a junit test case to demonstrate this problem and also a
> patch to fix this problem. This problem only affects the standalone
> setup (i.e., not using the framework's server).

OK.  That answers my biggest concern..   :-)   If it only affects the 
standalone case, that's great.


As Benson said, do an svn add and then the svn diff.   That should create a 
usable patch.

Dan



> In short, the init method of
> org.apache.cxf.management.jmx.InstrumentationManagerImpl class has the
> problem when it is running in the standalone mode. This problem causes
> each instance of this InstrumentationManagerImpl to instantiate a new
> MBeanServer because the lookup into MBeanServerFactory.findMBeanServer
> is done by using the wrong argument.
> 
> The current code does the lookup using the following line::
> 
>     MBeanServerFactory.findMBean|Sever(mbeanServerName),
> 
> where mbeanServerName is set to "org.apache.cxf", which is the default
> domain name for the server. However, this find method expects the
> agendId, which is not the domain name but the ID attribute of the
> server.
> 
> As each call to the above method finds no server, a new server is
> created for each call and placed in the MBeanServerFactory's internal
> map. This can lead to memory leak and it is also causing the JMX
> console to show only one bus instance in this case.
> 
> I changed this class so that the lookup is correctly done for the
> given domain so that all the bus instances are visible in the server.
> 
> I can create a JIRA ticket and attach the patch and the unit test
> class. I did this attaching thing in JIRA several times but I have a
> quesiton when I have a new file and not just changed files. Should I
> add the new file in svn (ie. using svn add) first and then attach the
> svn diff file to the ticket? Or should I attach the file itself to the
> ticket?
> 
> Thanks.
> 
> Regards, Aki
> 
> Regards, aki

-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog
Talend - http://www.talend.com

Re: Odd behavior in CXF's JMX IntrumentationManagerImpl

Posted by Benson Margulies <bi...@gmail.com>.
If you do svn add and then svn diff, the patch will include the new file.

On Fri, Mar 11, 2011 at 1:43 PM, Aki Yoshida <el...@googlemail.com> wrote:
> Hi,
> I brought this problem some weeks ago, but I didn't hear anything.
>
> Today, I made a junit test case to demonstrate this problem and also a
> patch to fix this problem. This problem only affects the standalone
> setup (i.e., not using the framework's server).
>
> In short, the init method of
> org.apache.cxf.management.jmx.InstrumentationManagerImpl class has the
> problem when it is running in the standalone mode. This problem causes
> each instance of this InstrumentationManagerImpl to instantiate a new
> MBeanServer because the lookup into MBeanServerFactory.findMBeanServer
> is done by using the wrong argument.
>
> The current code does the lookup using the following line::
>
>    MBeanServerFactory.findMBean|Sever(mbeanServerName),
>
> where mbeanServerName is set to "org.apache.cxf", which is the default
> domain name for the server. However, this find method expects the
> agendId, which is not the domain name but the ID attribute of the
> server.
>
> As each call to the above method finds no server, a new server is
> created for each call and placed in the MBeanServerFactory's internal
> map. This can lead to memory leak and it is also causing the JMX
> console to show only one bus instance in this case.
>
> I changed this class so that the lookup is correctly done for the
> given domain so that all the bus instances are visible in the server.
>
> I can create a JIRA ticket and attach the patch and the unit test
> class. I did this attaching thing in JIRA several times but I have a
> quesiton when I have a new file and not just changed files. Should I
> add the new file in svn (ie. using svn add) first and then attach the
> svn diff file to the ticket? Or should I attach the file itself to the
> ticket?
>
> Thanks.
>
> Regards, Aki
>
> Regards, aki
>