You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2016/12/22 15:47:50 UTC

svn commit: r1775681 - in /uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container: dgen/classload/ jd/classload/ jd/user/error/classload/

Author: degenaro
Date: Thu Dec 22 15:47:50 2016
New Revision: 1775681

URL: http://svn.apache.org/viewvc?rev=1775681&view=rev
Log:
UIMA-5227 employ thread-context class loader for new instances when JobDriver is running on user's classpath

Modified:
    uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dgen/classload/ProxyDeployableGeneration.java
    uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.java
    uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/user/error/classload/ProxyUserErrorStringify.java

Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dgen/classload/ProxyDeployableGeneration.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dgen/classload/ProxyDeployableGeneration.java?rev=1775681&r1=1775680&r2=1775681&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dgen/classload/ProxyDeployableGeneration.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dgen/classload/ProxyDeployableGeneration.java Thu Dec 22 15:47:50 2016
@@ -111,7 +111,8 @@ public class ProxyDeployableGeneration {
 			show("ccOverrides", ccOverrides);
 			Class<?> clazz = urlClassLoader.loadClass("org.apache.uima.ducc.user.dgen.iface.DeployableGeneration");
 			Constructor<?> constructor = clazz.getConstructor();
-			Object instance = constructor.newInstance();
+			Object[] c_args = new Object[] { };
+			Object instance = ContextSwitch.construct(urlClassLoader, constructor, c_args);
 			Class<?>[] parameterTypes = { 
 					String.class,	// directory
 					String.class,	// id
@@ -182,7 +183,8 @@ public class ProxyDeployableGeneration {
 			show("referenceByName", referenceByName);
 			Class<?> clazz = urlClassLoader.loadClass("org.apache.uima.ducc.user.dgen.iface.DeployableGeneration");
 			Constructor<?> constructor = clazz.getConstructor();
-			Object instance = constructor.newInstance();
+			Object[] c_args = new Object[] { };
+			Object instance = ContextSwitch.construct(urlClassLoader, constructor, c_args);
 			Class<?>[] parameterTypes = { 
 					String.class,	// directory
 					String.class,	// id

Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.java?rev=1775681&r1=1775680&r2=1775681&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.java Thu Dec 22 15:47:50 2016
@@ -18,6 +18,7 @@
 */
 package org.apache.uima.ducc.container.jd.classload;
 
+import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 import java.lang.reflect.Type;
 import java.net.URLClassLoader;
@@ -144,16 +145,18 @@ public class ProxyJobDriverErrorHandler
 		String initializationData = getErrorHandlerInitArgs();
 		//
 		classLoader = createClassLoader(userClasspath);
-		Class<?> classAnchor = classLoader.loadClass(className);
-		objectInstance = classAnchor.newInstance();
+		Class<?> clazz = classLoader.loadClass(className);
+		Constructor<?> constructor = clazz.getConstructor();
+		Object[] c_args = new Object[] { };
+		objectInstance = ContextSwitch.construct(classLoader, constructor, c_args);
 		//
 		String methodNameInitialize = "initialize";
-		Method methodInstanceInitialize = classAnchor.getMethod(methodNameInitialize, String.class);
+		Method methodInstanceInitialize = clazz.getMethod(methodNameInitialize, String.class);
 		Object[] plist = new Object[1];
 		plist[0] = initializationData;
 		ContextSwitch.call(classLoader, methodInstanceInitialize, objectInstance, plist);
 		//
-		Method[] classMethods = classAnchor.getMethods();
+		Method[] classMethods = clazz.getMethods();
 		for(Method method : classMethods) {
 			if(method.getName().equals("handle")) {
 				Type[] types = method.getParameterTypes();

Modified: uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/user/error/classload/ProxyUserErrorStringify.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/user/error/classload/ProxyUserErrorStringify.java?rev=1775681&r1=1775680&r2=1775681&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/user/error/classload/ProxyUserErrorStringify.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/user/error/classload/ProxyUserErrorStringify.java Thu Dec 22 15:47:50 2016
@@ -59,7 +59,8 @@ public class ProxyUserErrorStringify {
 		try {
 			Class<?> clazz = urlClassLoader.loadClass("org.apache.uima.ducc.user.error.iface.Stringify");
 			Constructor<?> constructor = clazz.getConstructor();
-			Object instance = constructor.newInstance();
+			Object[] c_args = new Object[] { };
+			Object instance = ContextSwitch.construct(urlClassLoader, constructor, c_args);
 			Class<?>[] parameterTypes = { 
 				Object.class,	// userException
 				};