From 37270359ac5a4e09eb3caff58963327bfb699460 Mon Sep 17 00:00:00 2001 From: Leon Breedt Date: Tue, 29 Mar 2005 09:04:31 +0000 Subject: remove wrongheaded uses of "rescue nil" if it will mask a useful exception. also include the whole backtrace in the 500 error response body if exception reporting is turned on (the default). git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1035 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionwebservice/lib/action_web_service/dispatcher/abstract.rb | 5 +---- .../dispatcher/action_controller_dispatcher.rb | 4 +++- .../action_web_service/vendor/ws/encoding/xmlrpc_encoding.rb | 10 ++-------- 3 files changed, 6 insertions(+), 13 deletions(-) (limited to 'actionwebservice/lib/action_web_service') diff --git a/actionwebservice/lib/action_web_service/dispatcher/abstract.rb b/actionwebservice/lib/action_web_service/dispatcher/abstract.rb index 4c184fb140..69c3b9de3b 100644 --- a/actionwebservice/lib/action_web_service/dispatcher/abstract.rb +++ b/actionwebservice/lib/action_web_service/dispatcher/abstract.rb @@ -76,10 +76,7 @@ module ActionWebService # :nodoc: invocation.api = self.class.web_service_api invocation.service = self when :delegated, :layered - invocation.service = web_service_object(invocation.service_name) rescue nil - unless invocation.service - raise(DispatcherError, "service #{invocation.service_name} not available") - end + invocation.service = web_service_object(invocation.service_name) invocation.api = invocation.service.class.web_service_api end request.api = invocation.api diff --git a/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb b/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb index 8a2b1d1c7d..3c9a6e2c78 100644 --- a/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb +++ b/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb @@ -89,10 +89,12 @@ module ActionWebService # :nodoc: else if self.class.web_service_exception_reporting message = exception.message + backtrace = "\nBacktrace:\n#{exception.backtrace.join("\n")}" else message = "Exception raised" + backtrace = "" end - render_text("Internal protocol error: #{message}", "500 #{message}") + render_text("Internal protocol error: #{message}#{backtrace}", "500 #{message}") end end diff --git a/actionwebservice/lib/action_web_service/vendor/ws/encoding/xmlrpc_encoding.rb b/actionwebservice/lib/action_web_service/vendor/ws/encoding/xmlrpc_encoding.rb index b38ae81abf..122f62434f 100644 --- a/actionwebservice/lib/action_web_service/vendor/ws/encoding/xmlrpc_encoding.rb +++ b/actionwebservice/lib/action_web_service/vendor/ws/encoding/xmlrpc_encoding.rb @@ -11,10 +11,7 @@ module WS end def decode_rpc_call(obj) - method_name, params = XMLRPC::Marshal.load_call(obj) rescue nil - unless method_name && params - raise(XmlRpcError, "Malformed XML-RPC request") - end + method_name, params = XMLRPC::Marshal.load_call(obj) i = 0 params = params.map do |value| param = XmlRpcDecodedParam.new("param#{i}", value) @@ -33,10 +30,7 @@ module WS end def decode_rpc_response(obj) - return_value = XMLRPC::Marshal.load_response(obj) rescue nil - if return_value.nil? - raise(XmlRpcError, "Malformed XML-RPC response") - end + return_value = XMLRPC::Marshal.load_response(obj) [nil, XmlRpcDecodedParam.new('return', return_value)] end end -- cgit v1.2.3