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/20 01:34:40 UTC
svn commit: r219811 -
/geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java
Author: djencks
Date: Tue Jul 19 16:34:39 2005
New Revision: 219811
URL: http://svn.apache.org/viewcvs?rev=219811&view=rev
Log:
GERONIMO-769 Need correct TCCL for get/set attributes
Modified:
geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java
Modified: geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java?rev=219811&r1=219810&r2=219811&view=diff
==============================================================================
--- geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java (original)
+++ geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java Tue Jul 19 16:34:39 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 {