aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Sibilev <ksibilev@gmail.com>2006-12-11 21:09:47 +0000
committerKent Sibilev <ksibilev@gmail.com>2006-12-11 21:09:47 +0000
commit2f5ee5a812bee922b198c7efbe3ffff29d072ffd (patch)
tree93fdd8437722e4d90e77cba00cec07ea1ab72827
parent6a485c3100090fbf474336802c851b842b8a96f3 (diff)
downloadrails-2f5ee5a812bee922b198c7efbe3ffff29d072ffd.tar.gz
rails-2f5ee5a812bee922b198c7efbe3ffff29d072ffd.tar.bz2
rails-2f5ee5a812bee922b198c7efbe3ffff29d072ffd.zip
Ensure that DispatcherError is being thrown correctly when a malformed request is received.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5713 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r--actionwebservice/CHANGELOG2
-rw-r--r--actionwebservice/lib/action_web_service/dispatcher/abstract.rb4
-rw-r--r--actionwebservice/lib/action_web_service/protocol/xmlrpc_protocol.rb2
3 files changed, 8 insertions, 0 deletions
diff --git a/actionwebservice/CHANGELOG b/actionwebservice/CHANGELOG
index 2ed40aac48..c243b6a343 100644
--- a/actionwebservice/CHANGELOG
+++ b/actionwebservice/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Ensure that DispatcherError is being thrown when a malformed request is received. [Kent Sibilev]
+
* Added support for decimal types. Closes #6676. [Kent Sibilev]
* Removed deprecated end_form_tag helper. [Kent Sibilev]
diff --git a/actionwebservice/lib/action_web_service/dispatcher/abstract.rb b/actionwebservice/lib/action_web_service/dispatcher/abstract.rb
index 9c981e4ec1..cb94d649e7 100644
--- a/actionwebservice/lib/action_web_service/dispatcher/abstract.rb
+++ b/actionwebservice/lib/action_web_service/dispatcher/abstract.rb
@@ -3,6 +3,10 @@ require 'benchmark'
module ActionWebService # :nodoc:
module Dispatcher # :nodoc:
class DispatcherError < ActionWebService::ActionWebServiceError # :nodoc:
+ def initialize(*args)
+ super
+ set_backtrace(caller)
+ end
end
def self.included(base) # :nodoc:
diff --git a/actionwebservice/lib/action_web_service/protocol/xmlrpc_protocol.rb b/actionwebservice/lib/action_web_service/protocol/xmlrpc_protocol.rb
index 8ec36a29f1..dfa4afc670 100644
--- a/actionwebservice/lib/action_web_service/protocol/xmlrpc_protocol.rb
+++ b/actionwebservice/lib/action_web_service/protocol/xmlrpc_protocol.rb
@@ -45,6 +45,8 @@ module ActionWebService # :nodoc:
def decode_request(raw_request, service_name)
method_name, params = XMLRPC::Marshal.load_call(raw_request)
Request.new(self, method_name, params, service_name)
+ rescue
+ return nil
end
def encode_request(method_name, params, param_types)