dain 2005/03/31 02:47:32
Modified: modules/core/src/java/org/openejb/corba/util
OpenORBStubClassLoader.java
Log:
Do not print stub generation exceptions that originate from sun's naming code
Revision Changes Path
1.7 +22 -7
openejb/modules/core/src/java/org/openejb/corba/util/OpenORBStubClassLoader.java
Index: OpenORBStubClassLoader.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/corba/util/OpenORBStubClassLoader.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- OpenORBStubClassLoader.java 20 Mar 2005 23:13:32 -0000 1.6
+++ OpenORBStubClassLoader.java 31 Mar 2005 07:47:32 -0000 1.7
@@ -120,7 +120,6 @@
URL url = (URL) nameToClassMap.get(name);
if (url == null) {
try {
-
File file = new File(cacheDir, "STUB_" + (jarId++) +
".jar");
if (log.isDebugEnabled()) log.debug("Generating
stubs in " + file.toString());
@@ -134,11 +133,9 @@
url = file.toURL();
nameToClassMap.put(name, url);
} catch (IOException e) {
- log.error("Unable to generate stub", e);
- throw new ClassNotFoundException("Unable to generate
stub", e);
+ logAndThrow(e);
} catch (CompilerException e) {
- log.error("Unable to generate stub", e);
- throw new ClassNotFoundException("Unable to generate
stub", e);
+ logAndThrow(e);
}
}
loader = new URLClassLoader(new URL[]{url}, classLoader);
@@ -156,6 +153,24 @@
}
if (log.isDebugEnabled()) log.debug("Could not load class: " + name);
throw new ClassNotFoundException("Could not load class: " + name);
+ }
+
+ private static void logAndThrow(Exception e) throws
ClassNotFoundException {
+ boolean shouldLog = true;
+ StackTraceElement[] stackTrace = e.getStackTrace();
+ for (int i = 0; i < stackTrace.length; i++) {
+ StackTraceElement stackTraceElement = stackTrace[i];
+ if
(stackTraceElement.getClassName().equals("org.omg.CosNaming.NamingContextExtPOA")
&&
+ stackTraceElement.getMethodName().equals("_invoke")) {
+ shouldLog = false;
+ break;
+ }
+ }
+ if (shouldLog) {
+ log.error("Unable to generate stub", e);
+ }
+
+ throw new ClassNotFoundException("Unable to generate stub", e);
}
public synchronized void doStart() throws Exception {