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 {
  
  
  

Reply via email to