jfarcand 2003/03/11 11:39:06 Modified: catalina/src/share/org/apache/catalina Context.java catalina/src/share/org/apache/catalina/core ApplicationContextFacade.java StandardContext.java Log: Better handle exceptions by propagating the cause. When running with the SecurityManager, a Filter was having access to ApplicationContext instead of ApplicationContextFacade. Revision Changes Path 1.5 +17 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Context.java Index: Context.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Context.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Context.java 23 Aug 2002 14:54:48 -0000 1.4 +++ Context.java 11 Mar 2003 19:39:06 -0000 1.5 @@ -215,6 +215,19 @@ public boolean getCrossContext(); + + /** + * Return the alternate Deployment Descriptor name. + */ + public String getAltDDName(); + + + /** + * Set an alternate Deployment Descriptor name. + */ + public void setAltDDName(String altDDName) ; + + /** * Set the "allow crossing servlet contexts" flag. * 1.3 +31 -14 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationContextFacade.java Index: ApplicationContextFacade.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationContextFacade.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ApplicationContextFacade.java 4 Mar 2003 01:57:05 -0000 1.2 +++ ApplicationContextFacade.java 11 Mar 2003 19:39:06 -0000 1.3 @@ -104,8 +104,7 @@ public final class ApplicationContextFacade implements ServletContext { - - + // ---------------------------------------------------------- Attributes /** * Cache Class object used for reflection. @@ -228,7 +227,7 @@ public Servlet getServlet(String name) throws ServletException { - return (Servlet)doPrivileged("getServlet", null); + return (Servlet)doPrivileged("getServlet", new Object[]{name}); } @@ -243,7 +242,7 @@ public void log(String msg) { - context.log(msg); + doPrivileged("log", new Object[]{msg} ); } @@ -327,11 +326,20 @@ } return executeMethod(method,appContext,params); - } catch (Exception ex){ + } catch (Throwable ex){ + Throwable exception; + if (ex instanceof InvocationTargetException){ + exception = ((InvocationTargetException)ex).getTargetException(); + } else if (ex instanceof PrivilegedActionException){ + exception = ((PrivilegedActionException)ex).getException(); + } else { + exception = ex; + } + if (log.isErrorEnabled()){ - log.error("doPrivileged", ex); + log.error("doPrivileged", exception); } - return null; + throw new RuntimeException(ex.getMessage()); } } @@ -350,11 +358,20 @@ Method method = context.getClass() .getMethod(methodName, (Class[])clazz); return executeMethod(method,context,params); - } catch (Exception ex){ + } catch (Throwable ex){ + Throwable exception; + if (ex instanceof InvocationTargetException){ + exception = ((InvocationTargetException)ex).getTargetException(); + } else if (ex instanceof PrivilegedActionException){ + exception = ((PrivilegedActionException)ex).getException(); + } else { + exception = ex; + } + if (log.isErrorEnabled()){ - log.error("doPrivileged", ex); + log.error("doPrivileged", exception); } - return null; + throw new RuntimeException(ex.getMessage()); } } 1.24 +14 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java Index: StandardContext.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- StandardContext.java 5 Mar 2003 19:09:26 -0000 1.23 +++ StandardContext.java 11 Mar 2003 19:39:06 -0000 1.24 @@ -790,6 +790,15 @@ } + + /** + * Return the alternate Deployment Descriptor name. + */ + public String getAltDDName(){ + return altDDName; + } + + /** * Set an alternate Deployment Descriptor name. */ @@ -1138,7 +1147,7 @@ if (altDDName != null) context.setAttribute(Globals.ALT_DD_ATTR,altDDName); } - return (context); + return (context.getFacade()); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]