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