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/11/05 18:26:05 UTC
svn commit: r1845830 - in
/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima:
internal/util/Class_TCCL.java resource/ResourceManager.java
Author: schor
Date: Mon Nov 5 18:26:05 2018
New Revision: 1845830
URL: http://svn.apache.org/viewvc?rev=1845830&view=rev
Log:
[UIMA-5802] merge from v2
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/Class_TCCL.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java (contents, props changed)
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/Class_TCCL.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/Class_TCCL.java?rev=1845830&r1=1845829&r2=1845830&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/Class_TCCL.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/Class_TCCL.java Mon Nov 5 18:26:05 2018
@@ -30,6 +30,14 @@ import org.apache.uima.resource.Resource
* Utilities supporting a unified approach to loading classes,
* incorporating the resource manager's classloader if available,
* and making use of the Thread Context Class Loader (TCCL)
+ *
+ * For backwards compatibility, if a class is not found using the
+ * Thread Context Class Loader,
+ * for classloading: try again using the
+ * class loader for this class since that's what the previous impl did,
+ * and some applications will break otherwise, with class-not-found.
+ * for resourceloading: try again using the Classloader.getSystemClassLoader,
+ * since that's what the previous impl did
*/
public class Class_TCCL {
@@ -45,7 +53,11 @@ public class Class_TCCL {
static public <T> Class<T> forName(String className, ResourceManager rm, boolean resolve)
throws ClassNotFoundException {
- return (Class<T>) Class.forName(className, resolve, get_cl(rm));
+ try {
+ return (Class<T>) Class.forName(className, resolve, get_cl(rm));
+ } catch (ClassNotFoundException x) { //
+ return (Class<T>) Class.forName(className, resolve, Class_TCCL.class.getClassLoader());
+ }
}
static public <T> Class<T> forName(String className, Map<String, Object> additionalParams)
@@ -60,11 +72,13 @@ public class Class_TCCL {
ClassLoader cl = (rm == null) ? null : rm.getExtensionClassLoader();
- if (cl == null)
+ if (cl == null) {
cl = get_parent_cl();Thread.currentThread().getContextClassLoader();
+ }
- if (cl == null)
+ if (cl == null) {
cl = Class_TCCL.class.getClassLoader(); // this class's classloader
+ }
return cl;
}
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=1845830&r1=1845829&r2=1845830&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 Mon Nov 5 18:26:05 2018
@@ -380,8 +380,12 @@ public interface ResourceManager {
public Map<String,XMLizable> getImportCache();
/**
- * Loads a user class using either the UIMA extension class loader (if specified) or
+ * Loads a user class using either the UIMA extension class loader (if specified) or
+ * the ThreadLocal Context Class Loader (if available) or
* the loader the UIMA framework is running in.
+ *
+ * If the class is not found in the ThreadLocal COntext Class Loader, then
+ * the loader the UIMA framework is running in will be searched.
* @param name the class to load
* @param <N> generic class of class
* @return the class
Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 5 18:26:05 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-1834526
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java:1690273-1845800