You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2005/07/21 17:58:23 UTC
svn commit: r220120 -
/geronimo/branches/v1_0_M4-QA/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java
Author: djencks
Date: Thu Jul 21 08:58:21 2005
New Revision: 220120
URL: http://svn.apache.org/viewcvs?rev=220120&view=rev
Log:
GERONIMO-769 Set TCCL when accessing MCF properties
Modified:
geronimo/branches/v1_0_M4-QA/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java
Modified: geronimo/branches/v1_0_M4-QA/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/v1_0_M4-QA/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java?rev=220120&r1=220119&r2=220120&view=diff
==============================================================================
--- geronimo/branches/v1_0_M4-QA/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java (original)
+++ geronimo/branches/v1_0_M4-QA/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java Thu Jul 21 08:58:21 2005
@@ -77,6 +77,7 @@
private final Kernel kernel;
private final String objectName;
private final boolean isProxyable;
+ private final ClassLoader classLoader;
//default constructor for enhancement proxy endpoint
public ManagedConnectionFactoryWrapper() {
@@ -90,6 +91,7 @@
objectName = null;
allImplementedInterfaces = null;
isProxyable = false;
+ classLoader = null;
}
public ManagedConnectionFactoryWrapper(String managedConnectionFactoryClass,
@@ -133,6 +135,7 @@
this.connectionManagerContainer = connectionManagerContainer;
//set up that must be done before start
+ classLoader = cl;
Class clazz = cl.loadClass(managedConnectionFactoryClass);
managedConnectionFactory = (ManagedConnectionFactory) clazz.newInstance();
delegate = new DynamicGBeanDelegate();
@@ -255,11 +258,25 @@
//DynamicGBean implementation
public Object getAttribute(String name) throws Exception {
- return delegate.getAttribute(name);
+ Thread thread = Thread.currentThread();
+ ClassLoader oldTCL = thread.getContextClassLoader();
+ thread.setContextClassLoader(classLoader);
+ try {
+ return delegate.getAttribute(name);
+ } finally {
+ thread.setContextClassLoader(oldTCL);
+ }
}
public void setAttribute(String name, Object value) throws Exception {
- delegate.setAttribute(name, value);
+ Thread thread = Thread.currentThread();
+ ClassLoader oldTCL = thread.getContextClassLoader();
+ thread.setContextClassLoader(classLoader);
+ try {
+ delegate.setAttribute(name, value);
+ } finally {
+ thread.setContextClassLoader(oldTCL);
+ }
}
public Object invoke(String name, Object[] arguments, String[] types) throws Exception {