You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ke...@apache.org on 2007/07/18 10:52:07 UTC
svn commit: r557201 -
/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java
Author: kelvingoodson
Date: Wed Jul 18 01:52:06 2007
New Revision: 557201
URL: http://svn.apache.org/viewvc?view=rev&rev=557201
Log:
TUSCANY-1110 ensure correct class loader is used for loading impl class
Modified:
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java
Modified: incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java?view=diff&rev=557201&r1=557200&r2=557201
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java (original)
+++ incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java Wed Jul 18 01:52:06 2007
@@ -20,6 +20,8 @@
package org.apache.tuscany.sdo.helper;
import java.lang.reflect.Method;
+import java.security.AccessController;
+import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
@@ -106,6 +108,24 @@
}
}
+ public Class loadClass(final ClassLoader classLoader, final String className) {
+ Class returnClass = null;
+ try {
+ returnClass = (Class)AccessController.doPrivileged(
+ new PrivilegedExceptionAction() {
+ public Object run() throws Exception {
+ return classLoader.loadClass(className);
+ }
+ }
+ );
+ }
+ catch (Exception e) {
+ return null;
+ }
+
+ return returnClass;
+ }
+
public Type getType(Class interfaceClass) {
Type type = SDOUtil.getJavaSDOType(interfaceClass);
if (type != null) {
@@ -124,12 +144,11 @@
else {
sdoTypeImplClassName = sdoTypeImplClassName.substring(0, index) + ".impl" + sdoTypeImplClassName.substring(index) + "Impl";
}
- try {
- sdoTypeImplClass = Class.forName(sdoTypeImplClassName);
- }
- catch (Exception e) {
+ sdoTypeImplClass = loadClass(interfaceClass.getClassLoader(), sdoTypeImplClassName);
+ if (sdoTypeImplClass == null) {
return null;
}
+
getStaticTypeMethod = getGetStaticTypeMethod(sdoTypeImplClass);
if (getStaticTypeMethod == null) {
return null;
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org