FULL PRODUCT VERSION :
A DESCRIPTION OF THE PROBLEM :
1. Run the MBeanServer in Linux
2. Register an MBean to the server (Let the MBean method takes a custom object as a parameter)
3. Invoke that MBean from a client using RMI connector
For every invocation, the OrderClassLoader reference is getting leaked .
The leak happens when umarshalling happens in the RMI layer
This bug can be reproduced always.
During the unwrapping of the object
The following line is getting executed (From javax.management.remote.rmi.RMIConnectionImpl.java
private static <T> T unwrap(final MarshalledObject mo,
final ClassLoader cl1,
final ClassLoader cl2,
final Class<T> wrappedClass)
return unwrap(mo, new OrderClassLoaders(cl1, cl2), wrappedClass);
When i profiled .. i found the instances that are created here are not getting garbage collected.. even after full GC.
This happens only in linux... when i tried the same in windows then i am not able to see the references in the profiler ... they are getting garbage collected ...
The MBean that i registered with the JMX server is taking some custom object
a method like
public void myMethod(MyObject obj)