diff options
author | Cristian Bica <cristian.bica@gmail.com> | 2014-08-17 23:48:44 +0300 |
---|---|---|
committer | Abdelkader Boudih <terminale@gmail.com> | 2014-08-17 23:10:45 +0000 |
commit | 3faa61ede58aa29400e4e062a799c61913ae213f (patch) | |
tree | e52f444b68d7ffa2103f0e55aa33b78e26987afe /activejob/lib/active_job/arguments.rb | |
parent | 9a3426220145cf8862324f204eece64f3a6a4634 (diff) | |
download | rails-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.rb | 12 |
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) |