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/07/02 21:48:50 UTC

svn commit: r1834904 - in /uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima: analysis_engine/asb/impl/ collection/impl/ flow/impl/ impl/ resource/impl/

Author: schor
Date: Mon Jul  2 21:48:50 2018
New Revision: 1834904

URL: http://svn.apache.org/viewvc?rev=1834904&view=rev
Log:
[UIMA-5802] consolidate most class loading or setting extension class loader parents, include the Thread context class loader

Modified:
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/   (props changed)
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/   (props changed)
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/   (props changed)
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/   (props changed)
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java   (props changed)
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java   (contents, props changed)

Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Jul  2 21:48:50 2018
@@ -0,0 +1,8 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:933273-944396
+/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:1024030
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl:1690273-1834879

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/asb/impl/FlowControllerContainer.java Mon Jul  2 21:48:50 2018
@@ -41,6 +41,7 @@ import org.apache.uima.flow.FlowControll
 import org.apache.uima.flow.FlowControllerDescription;
 import org.apache.uima.flow.JCasFlow_ImplBase;
 import org.apache.uima.impl.Util;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.internal.util.JmxMBeanAgent;
 import org.apache.uima.resource.ConfigurableResource_ImplBase;
 import org.apache.uima.resource.ResourceConfigurationException;
@@ -213,13 +214,13 @@ public class FlowControllerContainer ext
    * @throws AnalysisEngineProcessException
    *           if the FlowController failed
    */
-  public FlowContainer computeFlow(CAS aCAS) throws AnalysisEngineProcessException {
+  public FlowContainer computeFlow(final CAS aCAS) throws AnalysisEngineProcessException {
     mTimer.startIt();
     CAS view = null;
     UimaContext prevContext = setContextHolder();  // for use by POJOs
     try {
-      view = Util.getStartingView(aCAS, mSofaAware, getUimaContextAdmin().getComponentInfo());
-
+      // throws if _InitialView is mapped to non-existent sofa https://issues.apache.org/jira/browse/UIMA-5097
+      view = Util.getStartingView(aCAS, mSofaAware, getUimaContextAdmin().getComponentInfo());     
       // now get the right interface(e.g. CAS or JCAS)
       Class<? extends AbstractCas> requiredInterface = mFlowController.getRequiredCasInterface();
       AbstractCas casToPass = getCasManager().getCasInterface(view, requiredInterface);    
@@ -235,9 +236,9 @@ public class FlowControllerContainer ext
     } catch (CASException e) {
       throw new AnalysisEngineProcessException(e);
     } finally {
+      aCAS.setCurrentComponentInfo(null); // https://issues.apache.org/jira/browse/UIMA-5097
       if (view != null) {
-        ((CASImpl)view).restoreClassLoaderUnlockCas();
-        view.setCurrentComponentInfo(null);
+        ((CASImpl)view).restoreClassLoaderUnlockCas();      
       }
       mTimer.stopIt();
       getMBean().reportAnalysisTime(mTimer.getDuration());

Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Jul  2 21:48:50 2018
@@ -0,0 +1,8 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/collection/impl:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/main/java/org/apache/uima/collection/impl:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/main/java/org/apache/uima/collection/impl:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/main/java/org/apache/uima/collection/impl:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/collection/impl:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/collection/impl:933273-944396
+/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/collection/impl:1024030
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl:1690273-1834893

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasConsumerDescription_impl.java Mon Jul  2 21:48:50 2018
@@ -26,6 +26,7 @@ import org.apache.uima.Constants;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.collection.CasConsumer;
 import org.apache.uima.collection.CasConsumerDescription;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.impl.ResourceCreationSpecifier_impl;
@@ -86,9 +87,10 @@ public class CasConsumerDescription_impl
               new Object[] { getSourceUrlString() });
     }
     // try to load user class
+    // just UIMA extension ClassLoader if available
     Class<?> implClass;
     try {
-      implClass = aResourceManager.loadUserClass(getImplementationName());
+      implClass = Class_TCCL.forName(getImplementationName(), aResourceManager);
     } catch (ClassNotFoundException e) {
       throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
               new Object[] { getImplementationName(), getSourceUrlString() }, e);

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CasInitializerDescription_impl.java Mon Jul  2 21:48:50 2018
@@ -26,6 +26,7 @@ import org.apache.uima.Constants;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.collection.CasInitializer;
 import org.apache.uima.collection.CasInitializerDescription;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.impl.ResourceCreationSpecifier_impl;
@@ -86,9 +87,10 @@ public class CasInitializerDescription_i
               new Object[] { getSourceUrlString() });
     }
     // try to load user class
+    // just UIMA extension ClassLoader if available
     Class<?> implClass;
     try {
-      implClass = aResourceManager.loadUserClass(getImplementationName());
+      implClass = Class_TCCL.forName(getImplementationName(), aResourceManager);
     } catch (ClassNotFoundException e) {
       throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
               new Object[] { getImplementationName(), getSourceUrlString() }, e);

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/collection/impl/CollectionReaderDescription_impl.java Mon Jul  2 21:48:50 2018
@@ -25,6 +25,7 @@ import org.apache.uima.Constants;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.collection.CollectionReader;
 import org.apache.uima.collection.CollectionReaderDescription;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.impl.ResourceCreationSpecifier_impl;
@@ -79,9 +80,11 @@ public class CollectionReaderDescription
               new Object[] { getSourceUrlString() });
     }
     // try to load user class
+
+    // use UIMA extension ClassLoader if available
     Class<?> implClass;
     try {
-      implClass = aResourceManager.loadUserClass(getImplementationName());
+      implClass = Class_TCCL.forName(getImplementationName(), aResourceManager);
     } catch (ClassNotFoundException e) {
       throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
               new Object[] { getImplementationName(), getSourceUrlString() }, e);

Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Jul  2 21:48:50 2018
@@ -0,0 +1,8 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/flow/impl:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/main/java/org/apache/uima/flow/impl:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/main/java/org/apache/uima/flow/impl:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/main/java/org/apache/uima/flow/impl:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/flow/impl:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/flow/impl:933273-944396
+/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/flow/impl:1024030
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl:1690273-1834896

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/flow/impl/FlowControllerDescription_impl.java Mon Jul  2 21:48:50 2018
@@ -23,6 +23,7 @@ import org.apache.uima.Constants;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.flow.FlowController;
 import org.apache.uima.flow.FlowControllerDescription;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.impl.ResourceCreationSpecifier_impl;
@@ -77,9 +78,10 @@ public class FlowControllerDescription_i
               new Object[] { getSourceUrlString() });
     }
     // try to load user class
+    // use UIMA extension ClassLoader if available
     Class<?> implClass;
     try {
-      implClass = aResourceManager.loadUserClass(getImplementationName());
+      implClass = Class_TCCL.forName(getImplementationName(), aResourceManager);
     } catch (ClassNotFoundException e) {
       throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
               new Object[] { getImplementationName(), getSourceUrlString() }, e);

Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Jul  2 21:48:50 2018
@@ -0,0 +1,8 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/impl:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/main/java/org/apache/uima/impl:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/main/java/org/apache/uima/impl:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/main/java/org/apache/uima/impl:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/impl:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/impl:933273-944396
+/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/impl:1024030
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl:1690273-1834897

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasConsumerFactory_impl.java Mon Jul  2 21:48:50 2018
@@ -27,11 +27,11 @@ import org.apache.uima.analysis_engine.i
 import org.apache.uima.collection.CasConsumer;
 import org.apache.uima.collection.CasConsumerDescription;
 import org.apache.uima.collection.base_cpm.CasDataConsumer;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.resource.Resource;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.ResourceSpecifier;
-import org.apache.uima.resource.impl.ResourceManager_impl;
 import org.apache.uima.uimacpp.UimacppAnalysisComponent;
 
 /**
@@ -66,16 +66,15 @@ public class CasConsumerFactory_impl imp
         }
 
         // load class using UIMA Extension ClassLoader if there is one
-        ClassLoader cl = null;
         Class<?> implClass = null;
-        ResourceManager resourceManager = null;
-        if (aAdditionalParams != null) {
-          resourceManager = (ResourceManager) aAdditionalParams
-                  .get(Resource.PARAM_RESOURCE_MANAGER);
+        try {
+          implClass = Class_TCCL.forName(className, aAdditionalParams);
+        } catch (ClassNotFoundException e) {
+          throw new ResourceInitializationException(
+                  ResourceInitializationException.CLASS_NOT_FOUND, new Object[] { className,
+                      aSpecifier.getSourceUrlString() }, e);
         }
         
-        implClass = ResourceManager_impl.loadUserClassOrThrow(className, resourceManager, aSpecifier);
-
         // check to see if this is a subclass of Cas[Data]Consumer and of aResourceClass
         if (!CasConsumer.class.isAssignableFrom(implClass)
                 && !CasDataConsumer.class.isAssignableFrom(implClass)) {

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CasInitializerFactory_impl.java Mon Jul  2 21:48:50 2018
@@ -25,11 +25,11 @@ import org.apache.uima.ResourceFactory;
 import org.apache.uima.collection.CasInitializer;
 import org.apache.uima.collection.CasInitializerDescription;
 import org.apache.uima.collection.base_cpm.CasDataInitializer;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.resource.Resource;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.ResourceSpecifier;
-import org.apache.uima.resource.impl.ResourceManager_impl;
 
 /**
  * Specialized Resource Factory for producing CasInitializers.
@@ -50,13 +50,9 @@ public class CasInitializerFactory_impl
       String className = desc.getImplementationName();
 
       // load class using UIMA Extension ClassLoader if there is one
-      ClassLoader cl = null;
-      ResourceManager resourceManager = null;
-      if (aAdditionalParams != null) {
-        resourceManager = (ResourceManager) aAdditionalParams.get(Resource.PARAM_RESOURCE_MANAGER);
-      }
       try {
-        Class<?> implClass = ResourceManager_impl.loadUserClassOrThrow(className,  resourceManager,  aSpecifier);
+        Class<?> implClass = Class_TCCL.forName(className, aAdditionalParams);
+
         // check to see if this is a subclass of BaseCollectionReader and of aResourceClass
         if (!CasInitializer.class.isAssignableFrom(implClass)
                 && !CasDataInitializer.class.isAssignableFrom(implClass)) {
@@ -85,6 +81,9 @@ public class CasInitializerFactory_impl
         }
       
       // if an exception occurs, log it but do not throw it... yet
+      } catch (ClassNotFoundException e) {
+        throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
+            new Object[] { className, aSpecifier.getSourceUrlString() }, e);
       } catch (IllegalAccessException e) {
         throw new ResourceInitializationException(
                 ResourceInitializationException.COULD_NOT_INSTANTIATE, new Object[] { className,

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CollectionReaderFactory_impl.java Mon Jul  2 21:48:50 2018
@@ -26,11 +26,11 @@ import org.apache.uima.ResourceFactory;
 import org.apache.uima.collection.CollectionReaderDescription;
 import org.apache.uima.collection.CollectionReader_ImplBase;
 import org.apache.uima.collection.base_cpm.BaseCollectionReader;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.resource.Resource;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.ResourceSpecifier;
-import org.apache.uima.resource.impl.ResourceManager_impl;
 import org.apache.uima.resource.metadata.ProcessingResourceMetaData;
 
 /**
@@ -70,14 +70,8 @@ public class CollectionReaderFactory_imp
       }
 
       // load class using UIMA Extension ClassLoader if there is one
-     
-      ResourceManager resourceManager = null;
-      if (aAdditionalParams != null) {
-        resourceManager = (ResourceManager) aAdditionalParams.get(Resource.PARAM_RESOURCE_MANAGER);
-      }
-      
       try {
-        Class<?> implClass = ResourceManager_impl.loadUserClassOrThrow(className, resourceManager, aSpecifier);
+        Class<?> implClass = Class_TCCL.forName(className, aAdditionalParams);
 
         // check to see if this is a subclass of BaseCollectionReader and of aResourceClass
         if (!BaseCollectionReader.class.isAssignableFrom(implClass)) {
@@ -107,6 +101,11 @@ public class CollectionReaderFactory_imp
                   ResourceInitializationException.ERROR_INITIALIZING_FROM_DESCRIPTOR, new Object[] {
                       className, aSpecifier.getSourceUrlString() });
         }
+      }
+      // if an exception occurs, log it but do not throw it... yet
+      catch (ClassNotFoundException e) {
+        throw new ResourceInitializationException(ResourceInitializationException.CLASS_NOT_FOUND,
+                new Object[] { className, aSpecifier.getSourceUrlString() }, e);
       } catch (IllegalAccessException e) {
         throw new ResourceInitializationException(
                 ResourceInitializationException.COULD_NOT_INSTANTIATE, new Object[] { className,

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java?rev=1834904&r1=1834903&r2=1834904&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/CustomResourceFactory_impl.java Mon Jul  2 21:48:50 2018
@@ -22,6 +22,7 @@ package org.apache.uima.impl;
 import java.util.Map;
 
 import org.apache.uima.ResourceFactory;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.resource.CustomResourceSpecifier;
 import org.apache.uima.resource.Resource;
 import org.apache.uima.resource.ResourceInitializationException;
@@ -43,22 +44,10 @@ public class CustomResourceFactory_impl
       String className = ((CustomResourceSpecifier)aSpecifier).getResourceClassName();
       //check additional params map for ResourceManager, and use the UIMA extension ClassLoader
       //if one exists
-      ClassLoader loader = null;
-      ResourceManager resMgr = null;
-      if (aAdditionalParams != null) {
-        resMgr = (ResourceManager)aAdditionalParams.get(Resource.PARAM_RESOURCE_MANAGER);
-      }
-      if (resMgr != null) {
-        loader = resMgr.getExtensionClassLoader();
-      }
-      if (loader == null) {
-        loader = this.getClass().getClassLoader();
-      }
-      
       //load the Resourceclass
       Class<?> resourceClass;
       try {
-        resourceClass = Class.forName(className, true, loader);
+        resourceClass = Class_TCCL.forName(className, aAdditionalParams);
       } catch (ClassNotFoundException e) {
         throw new ResourceInitializationException(
                 ResourceInitializationException.CLASS_NOT_FOUND, new Object[] { className,

Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
            ('svn:mergeinfo' removed)

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=1834904&r1=1834903&r2=1834904&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 Mon Jul  2 21:48:50 2018
@@ -35,6 +35,7 @@ import java.util.concurrent.atomic.Atomi
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.UIMA_IllegalStateException;
 import org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase;
+import org.apache.uima.internal.util.Class_TCCL;
 import org.apache.uima.internal.util.UIMAClassLoader;
 import org.apache.uima.resource.CasManager;
 import org.apache.uima.resource.DataResource;
@@ -305,7 +306,7 @@ public class ResourceManager_impl implem
   public synchronized void setExtensionClassPath(String classpath, boolean resolveResource)
           throws MalformedURLException {
     // create UIMA extension ClassLoader with the given classpath
-    uimaCL = new UIMAClassLoader(classpath, this.getClass().getClassLoader());
+    uimaCL = new UIMAClassLoader(classpath, Class_TCCL.get_parent_cl());
 
     if (resolveResource) {
       // set UIMA extension ClassLoader also to resolve resources
@@ -849,25 +850,17 @@ public class ResourceManager_impl implem
   
   @Override
   public <N> Class<N> loadUserClass(String name) throws ClassNotFoundException {
-    ClassLoader cl = getExtensionClassLoader();
-    if (cl == null) {
-      cl = this.getClass().getClassLoader();
-    }
-    return (Class<N>) Class.forName(name, true, cl);
+    return Class_TCCL.forName(name, this, true);
   }
   
   public static Class<?> loadUserClass(String name, ResourceManager rm) throws ClassNotFoundException {
-    return (rm == null) 
-             ? Class.forName(name, true, ResourceManager_impl.class.getClassLoader())
-             : rm.loadUserClass(name);
+    return Class_TCCL.forName(name, rm, true);
   }
   
   public static Class<?> loadUserClassOrThrow(String name, ResourceManager rm, ResourceSpecifier aSpecifier) 
       throws ResourceInitializationException {
     try {
-      return (rm == null) 
-               ? Class.forName(name, true, ResourceManager_impl.class.getClassLoader())
-               : rm.loadUserClass(name);
+      return Class_TCCL.forName(name, rm, true);
     } catch (ClassNotFoundException e) {
       throw new ResourceInitializationException(
           ResourceInitializationException.CLASS_NOT_FOUND, new Object[] { name,

Propchange: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jul  2 21:48:50 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-1834526
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java:1690273-1834899