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