You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2018/06/27 18:17:32 UTC

svn commit: r1834528 - in /uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource: ResourceManager.java impl/ResourceManager_impl.java

Author: schor
Date: Wed Jun 27 18:17:32 2018
New Revision: 1834528

URL: http://svn.apache.org/viewvc?rev=1834528&view=rev
Log:
[UIMA-5797] close uima class loaders when destroy() is called

Modified:
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java   (contents, props changed)
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java   (contents, props changed)

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java?rev=1834528&r1=1834527&r2=1834528&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java Wed Jun 27 18:17:32 2018
@@ -142,9 +142,8 @@ public interface ResourceManager {
    * 
    * @param aName
    *          the name of a resource
+   * @param <N> The generic type for the returned class
    *          
-   * @param <N> the type of the Class
-   * 
    * @return the Class for the resource named <code>aName</code>, <code>null</code> if there is
    *         no resource registered under that name.
    */
@@ -394,7 +393,13 @@ public interface ResourceManager {
    * Frees all resources held by this ResourceManager, and marks the ResourceManager as having been destroyed.
    * A destroyed ResourceManager will throw an exception if an attempt is made to continue using it.
    * 
-   * Resources managed by a ResourceManager include all of the external shared Resources and a CAS Pool.
+   * Resources managed by a ResourceManager include all of the external shared Resources.
+   * If there is an extension class loader in use, it will be closed. 
+   * Any class loaders (including PEAR class loaders) that might use this as a parent will be
+   * affected by this closure.
+   * 
+   * Any streams opened using getResourceAsStream will also be closed.
+   * 
    * The Resources managed by this manager will have their destroy() methods called, as part of the
    * execution of this API.
    * 

Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jun 27 18:17:32 2018
@@ -5,4 +5,4 @@
 /uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java:1436573-1462257
 /uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java:933273-944396
 /uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java:1024030
-/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java:1690273-1769895
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java:1690273-1834526

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java?rev=1834528&r1=1834527&r2=1834528&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java Wed Jun 27 18:17:32 2018
@@ -100,7 +100,7 @@ public class ResourceManager_impl implem
   protected static final String LOG_RESOURCE_BUNDLE = "org.apache.uima.impl.log_messages";
   
   protected static final Class<Resource> EMPTY_RESOURCE_CLASS = Resource.class;
-
+  
   private static final URL[] emptyURLarray = new URL[0]; 
 
   private AtomicBoolean isDestroyed = new AtomicBoolean(false);
@@ -897,6 +897,15 @@ public class ResourceManager_impl implem
       }
     }
     
+    if (uimaCL != null) {
+      try {
+        uimaCL.close();
+      } catch (IOException e) {
+        UIMAFramework.getLogger().logrb(Level.WARNING, ResourceManager_impl.class.getName(),
+            "destroy", LOG_RESOURCE_BUNDLE, "UIMA_Classloader_close_exception", e);
+      }      
+    }
+    
     // no destroy of caspool at this time
     
   }

Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jun 27 18:17:32 2018
@@ -5,4 +5,4 @@
 /uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:1436573-1462257
 /uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:933273-944396
 /uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:1024030
-/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:1690273-1769895
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:1690273-1834526