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 2016/08/18 13:06:26 UTC

svn commit: r1756775 - /uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/MsgLocalizationClassLoader.java

Author: schor
Date: Thu Aug 18 13:06:25 2016
New Revision: 1756775

URL: http://svn.apache.org/viewvc?rev=1756775&view=rev
Log:
[UIMA-3692] add thread context class loader at end of search for bundle class in MsgLocalizationClassLoader.

Modified:
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/MsgLocalizationClassLoader.java

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/MsgLocalizationClassLoader.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/MsgLocalizationClassLoader.java?rev=1756775&r1=1756774&r2=1756775&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/MsgLocalizationClassLoader.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/internal/util/MsgLocalizationClassLoader.java Thu Aug 18 13:06:25 2016
@@ -30,6 +30,7 @@ import java.util.Map;
  *   the class loader that loaded the 2nd previous caller
  *   the class loader that loaded the 3rd previous caller
  *   etc.
+ *   and finally, the thread local context loader, if it exists UIMA-3692
  * Note: the caller of this method is presumed to be framework code
  *   that was, in turn, called to perform some logging or whatever,
  *   so we skip the 1st previous caller.
@@ -105,9 +106,11 @@ public class MsgLocalizationClassLoader
           // leave c == null
         }      
       }
-      throw new ClassNotFoundException(name);
+      // UIMA-3692  try the thread context class loader
+      // if not found, will return class not found exception
+      return Thread.currentThread().getContextClassLoader().loadClass(name);
     }
-
+    
     @Override
     public URL getResource(String name) {
       Map<ClassLoader,ClassLoader> alreadySearched = new IdentityHashMap<ClassLoader, ClassLoader>(7);