1.1 --- a/WebStack/Adapters/JavaServlet.py Fri Jun 20 22:27:50 2008 +0200
1.2 +++ b/WebStack/Adapters/JavaServlet.py Sat Jan 29 23:34:57 2005 +0000
1.3 @@ -11,15 +11,17 @@
1.4
1.5 "A servlet helper class dispatching requests to WebStack resources."
1.6
1.7 - def __init__(self, resource, authenticator=None):
1.8 + def __init__(self, resource, authenticator=None, handle_errors=1):
1.9
1.10 """
1.11 Initialise the root application-specific 'resource' and optional
1.12 - 'authenticator'.
1.13 + 'authenticator'. The optional 'handle_errors' parameter (if true)
1.14 + causes handlers to deal with uncaught exceptions cleanly.
1.15 """
1.16
1.17 self.webstack_resource = resource
1.18 self.webstack_authenticator = authenticator
1.19 + self.handle_errors = handle_errors
1.20
1.21 def service(self, request, response):
1.22
1.23 @@ -33,6 +35,11 @@
1.24 self.webstack_resource.respond(trans)
1.25 except EndOfResponse:
1.26 pass
1.27 + except:
1.28 + if self.handle_errors:
1.29 + trans.set_response_code(500) # Internal error
1.30 + else:
1.31 + raise
1.32 else:
1.33 trans.set_response_code(401) # Unauthorized
1.34 #trans.set_header_value("WWW-Authenticate", '%s realm="%s"' % (