You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/12/13 14:18:43 UTC
svn commit: r486638 -
/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java
Author: gnodet
Date: Wed Dec 13 05:18:43 2006
New Revision: 486638
URL: http://svn.apache.org/viewvc?view=rev&rev=486638
Log:
SM-410: Classloader not destroyed when component is uninstalled
Modified:
incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java?view=diff&rev=486638&r1=486637&r2=486638
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java Wed Dec 13 05:18:43 2006
@@ -43,6 +43,7 @@
import org.apache.servicemix.jbi.management.OperationInfoHelper;
import org.apache.servicemix.jbi.messaging.DeliveryChannelImpl;
import org.apache.servicemix.jbi.util.XmlPersistenceSupport;
+import org.apache.xbean.classloader.DestroyableClassLoader;
/**
* Defines basic statistics on the Component
@@ -96,6 +97,16 @@
this.service = service;
this.sharedLibraries = sharedLibraries;
}
+
+ public void dispose() {
+ ClassLoader cl = component.getClass().getClassLoader();
+ lifeCycle = null;
+ suManager = null;
+ component = null;
+ if (cl instanceof DestroyableClassLoader) {
+ ((DestroyableClassLoader) cl).destroy();
+ }
+ }
/**
* Register the MBeans for this Component
@@ -333,6 +344,8 @@
getDeliveryChannel().close();
setDeliveryChannel(null);
}
+ lifeCycle = null;
+ suManager = null;
}
super.shutDown();
fireEvent(ComponentEvent.COMPONENT_SHUTDOWN);