aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/lib/active_job/arguments.rb
diff options
context:
space:
mode:
authorCristian Bica <cristian.bica@gmail.com>2014-08-17 23:48:44 +0300
committerAbdelkader Boudih <terminale@gmail.com>2014-08-17 23:10:45 +0000
commit3faa61ede58aa29400e4e062a799c61913ae213f (patch)
treee52f444b68d7ffa2103f0e55aa33b78e26987afe /activejob/lib/active_job/arguments.rb
parent9a3426220145cf8862324f204eece64f3a6a4634 (diff)
downloadrails-3faa61ede58aa29400e4e062a799c61913ae213f.tar.gz
rails-3faa61ede58aa29400e4e062a799c61913ae213f.tar.bz2
rails-3faa61ede58aa29400e4e062a799c61913ae213f.zip
[ActiveJob] raise DeserializationError when got an error deserializing
Diffstat (limited to 'activejob/lib/active_job/arguments.rb')
-rw-r--r--activejob/lib/active_job/arguments.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/activejob/lib/active_job/arguments.rb b/activejob/lib/active_job/arguments.rb
index b7572b0e29..369e716912 100644
--- a/activejob/lib/active_job/arguments.rb
+++ b/activejob/lib/active_job/arguments.rb
@@ -1,4 +1,14 @@
module ActiveJob
+ class DeserializationError < StandardError
+ attr_reader :original_exception
+
+ def initialize(e)
+ super ("Error while trying to deserialize arguments: #{e.message}")
+ @original_exception = e
+ set_backtrace e.backtrace
+ end
+ end
+
module Arguments
extend self
TYPE_WHITELIST = [ NilClass, Fixnum, Float, String, TrueClass, FalseClass, Bignum ]
@@ -36,6 +46,8 @@ module ActiveJob
else
GlobalID::Locator.locate(argument) || argument
end
+ rescue => e
+ raise DeserializationError.new(e)
end
def serialize_hash_key(key)