Hello! I have just upgraded from JBoss/Jetty 3.0.4 to JBoss/Tomcat 3.2.3, and have noticed some rather odd behavior.
I have 3 servlets: SuperClazz <|--- SubClazz <|--- SubSubClazz SuperClazz subclasses HttpServlet but is not meant to be called directly, but SubClazz and SubSubClazz are both standalone servlets and I call them directly depending on what I need. SubClazz does general things, and SubSubClazz does more specific things. SubClazz delegates to SuperClazz and SubSubClazz delegates to SubClazz as needed. This was working in JBoss 3.0.4 and Jetty. However, in Tomcat 4.1.29 just now I observed that calling SubClazz directly resulted in SubSubClazz getting the call, then execution tracing straight to SuperClazz, _then_ SubClazz. SubSubClazz was the last thing executing before it failed. (That failure is the thing; SubSubClazz doesn't have what it takes to handle my request, and I don't want it called.) Here is an example of my problem. By calling the URL: http://localhost/myApp/servlet/SubClazz?a=1 I get this output from the running server: 10:23:24,020 INFO [STDOUT] [SubSubClazz.doGet] GOT HERE 1 10:23:24,020 INFO [STDOUT] [SubSubClazz.doPost] GOT HERE 1 10:23:24,020 INFO [STDOUT] [SuperClazz.doPost] GOT HERE 1 10:23:24,021 INFO [STDOUT] [SuperClazz.doPost] GOT HERE 2 10:23:24,021 INFO [STDOUT] [SuperClazz.doPost] GOT HERE 3 10:23:24,021 INFO [STDOUT] [SuperClazz.doPost] GOT HERE 4 10:23:24,021 INFO [STDOUT] [SuperClazz.doPost] GOT HERE 5 10:23:24,021 INFO [STDOUT] [SuperClazz.doPost] GOT HERE 6 10:23:24,021 INFO [STDOUT] [SubClazz.doPost] GOT HERE 1 10:23:24,021 INFO [STDOUT] [SubClazz.doPost] GOT HERE 2 10:23:24,021 INFO [STDOUT] [SuperClazz.doAThing] GOT HERE 1 10:23:24,023 ERROR [Engine] StandardWrapperValve[SubSubClazz]: Servlet.service() for servlet SubSubClazz threw exception java.lang.IllegalStateException: Cannot forward after response has been committed at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:368) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356) ...bad stuff happening since correct calling order is not happening... Can anybody explain why: SubClazz is being skipped and SubSubClazz is getting the request in the first place? SubClazz is not getting the super() call, but instead it is going straight to SuperClazz? SubClazz is getting the call after SuperClazz, especially after having been skipped originally? Thanks very much in advance for any light that can be shed on this behavior. Bill Wadley --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
