luehe 2004/10/28 09:42:37
Modified: catalina/src/share/org/apache/catalina/core
StandardWrapper.java
Log:
Prevent NPE when servlet class is not an instance of HttpServlet.
Return hardcoded set of methods in this case.
Revision Changes Path
1.55 +13 -3
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java
Index: StandardWrapper.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- StandardWrapper.java 27 Oct 2004 22:58:17 -0000 1.54
+++ StandardWrapper.java 28 Oct 2004 16:42:37 -0000 1.55
@@ -73,6 +73,10 @@
private static org.apache.commons.logging.Log log=
org.apache.commons.logging.LogFactory.getLog( StandardWrapper.class );
+
+ private static final String[] DEFAULT_SERVLET_METHODS = new String[] {
+ "GET", "HEAD", "POST" };
+
// ----------------------------------------------------------- Constructors
@@ -563,12 +567,18 @@
* servlet
*/
public String[] getServletMethods() throws ServletException {
-
+
+ Class servletClazz = loadServlet().getClass();
+ if (!javax.servlet.http.HttpServlet.class.isAssignableFrom(
+ servletClazz)) {
+ return DEFAULT_SERVLET_METHODS;
+ }
+
HashSet allow = new HashSet();
allow.add("TRACE");
allow.add("OPTIONS");
- Method[] methods = getAllDeclaredMethods(loadServlet().getClass());
+ Method[] methods = getAllDeclaredMethods(servletClazz);
for (int i=0; methods != null && i<methods.length; i++) {
Method m = methods[i];
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]