Author: gnodet
Date: Wed Dec 13 06:31:44 2006
New Revision: 486673

URL: http://svn.apache.org/viewvc?view=rev&rev=486673
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/AutoDeploymentService.java

Modified: 
incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AutoDeploymentService.java
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AutoDeploymentService.java?view=diff&rev=486673&r1=486672&r2=486673
==============================================================================
--- 
incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AutoDeploymentService.java
 (original)
+++ 
incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AutoDeploymentService.java
 Wed Dec 13 06:31:44 2006
@@ -260,8 +260,18 @@
                        String libraryName = 
root.getSharedLibrary().getIdentification().getName();
                        entry.type = "library";
                        entry.name = libraryName; 
-                    installationService.doInstallSharedLibrary(tmpDir, 
root.getSharedLibrary());
-                    checkPendingComponents();
+                    try {
+                        if 
(container.getRegistry().getSharedLibrary(libraryName) != null) {
+                            
container.getRegistry().unregisterSharedLibrary(libraryName);
+                            
environmentContext.removeSharedLibraryDirectory(libraryName);
+                        }
+                        installationService.doInstallSharedLibrary(tmpDir, 
root.getSharedLibrary());
+                        checkPendingComponents();
+                    } catch (Exception e) {
+                        String errStr = "Failed to update SharedLibrary: " + 
libraryName;
+                        log.error(errStr, e);
+                        throw new DeploymentException(errStr, e);
+                    }
                 } else if (root.getServiceAssembly() != null) {
                     ServiceAssembly sa = root.getServiceAssembly();
                     String name = sa.getIdentification().getName();


Reply via email to