You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by va...@apache.org on 2011/01/05 18:00:42 UTC

svn commit: r1055526 - /ode/branches/ode-1.3.5.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java

Author: vanto
Date: Wed Jan  5 17:00:42 2011
New Revision: 1055526

URL: http://svn.apache.org/viewvc?rev=1055526&view=rev
Log:
fixes a classloading issue with JMX on SMX 4 (Kudos to Kurt Westerfeld).

Modified:
    ode/branches/ode-1.3.5.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java

Modified: ode/branches/ode-1.3.5.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java
URL: http://svn.apache.org/viewvc/ode/branches/ode-1.3.5.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java?rev=1055526&r1=1055525&r2=1055526&view=diff
==============================================================================
--- ode/branches/ode-1.3.5.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java (original)
+++ ode/branches/ode-1.3.5.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java Wed Jan  5 17:00:42 2011
@@ -114,7 +114,9 @@ public class ProcessAndInstanceManagemen
 
 	public Object invoke(String actionName, Object[] params, String[] signature)
 			throws MBeanException, ReflectionException {
-		try {
+		ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        try {
+            Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
 			Method m = _pm.getClass().getMethod(actionName, findTypes(_pm.getClass().getClassLoader(), signature));
 			if (m == null) {
 				throw new ReflectionException(new NoSuchMethodException(actionName));
@@ -122,7 +124,9 @@ public class ProcessAndInstanceManagemen
 			return m.invoke(_pm, params);
 		} catch (Exception e) {
 			throw new ReflectionException(e);
-		}
+		} finally {
+            Thread.currentThread().setContextClassLoader(cl);
+        }
 	}
 
 	private Class[] findTypes(ClassLoader loader, String[] signature) throws ReflectionException {