Just Launched: You can now import projects and releases from Google Code onto SourceForge
We are excited to release new functionality to enable a 1-click import from Google Code onto the Allura platform on SourceForge. You can import tickets, wikis, source, releases, and more with a few simple steps. Read More
Date: Wed Jul 5 15:04:19 2006
New Revision: 5428
If an exception happened in an included or forwarded servlet, the exception handling happened in the context of the including or forwarding servlet. Particularly, the writeExceptionReport() method of the including or forwarding servlet was called, an not the method of the included or forwarded servlet. (This problem has been reported by Oliver Bock on webware-discuss, 2006-06-29.)
--- Webware/trunk/WebKit/Application.py (original)
+++ Webware/trunk/WebKit/Application.py Wed Jul 5 15:04:19 2006
@@ -663,25 +663,27 @@
currentContextName = req._contextName
- # We use a try/finally to make sure everything gets restored properly
- # in the event of an exception in an included servlet.
+ # Run the included servlet.
+ # (2006-07-05 cz: Do not use try/finally here, because exception
+ # handling should happen in the context of the included servlet.)
+ servlet = self._rootURLParser.findServletForTransaction(trans)
+ trans._servlet = servlet
+ # We will interpret an EndResponse in an included page to mean that
+ # the current page may continue processing.
- servlet = self._rootURLParser.findServletForTransaction(trans)
- trans._servlet = servlet
- # We will interpret an EndResponse in an included page to mean that
- # the current page may continue processing.
- except EndResponse:
- self.returnServlet(servlet, trans)
- req._serverSidePath = currentServerSidePath
- req._serverSideContextPath = currentServerSideContextPath
- req._contextName = currentContextName
- trans._servlet = currentServlet
+ except EndResponse:
+ self.returnServlet(servlet, trans)
+ # Restore everything properly
+ req._serverSidePath = currentServerSidePath
+ req._serverSideContextPath = currentServerSideContextPath
+ req._contextName = currentContextName
+ trans._servlet = currentServlet
def resolveInternalRelativePath(self, trans, url, context=None):
"""Return the absolute internal path.