aboutsummaryrefslogtreecommitdiffstats
path: root/activejob
diff options
context:
space:
mode:
authorYuki Nishijima <mail@yukinishijima.net>2015-11-03 06:54:34 -0800
committerYuki Nishijima <mail@yukinishijima.net>2015-11-03 06:54:34 -0800
commit266455cf25aba942b8717ceb0269d66f719b5696 (patch)
tree702f6aab6d160c722fa85f628c06213be12f7763 /activejob
parentd5890bdf660f670271a8f60bd091bd11db4c23b3 (diff)
downloadrails-266455cf25aba942b8717ceb0269d66f719b5696.tar.gz
rails-266455cf25aba942b8717ceb0269d66f719b5696.tar.bz2
rails-266455cf25aba942b8717ceb0269d66f719b5696.zip
Deprecate exception#original_exception in favor of exception#cause
Diffstat (limited to 'activejob')
-rw-r--r--activejob/lib/active_job/arguments.rb25
-rw-r--r--activejob/test/jobs/rescue_job.rb2
2 files changed, 17 insertions, 10 deletions
diff --git a/activejob/lib/active_job/arguments.rb b/activejob/lib/active_job/arguments.rb
index 8e462bfe5d..e56bc79328 100644
--- a/activejob/lib/active_job/arguments.rb
+++ b/activejob/lib/active_job/arguments.rb
@@ -3,16 +3,23 @@ require 'active_support/core_ext/hash'
module ActiveJob
# Raised when an exception is raised during job arguments deserialization.
#
- # Wraps the original exception raised as +original_exception+.
+ # Wraps the original exception raised as +cause+.
class DeserializationError < StandardError
+ def initialize(e = nil) #:nodoc:
+ if e
+ ActiveSupport::Deprecation.warn("Passing #original_exception is deprecated and has no effect. " \
+ "Exceptions will automatically capture the original exception.", caller)
+ end
+
+ super("Error while trying to deserialize arguments: #{$!.message}")
+ set_backtrace $!.backtrace
+ end
+
# The original exception that was raised during deserialization of job
# arguments.
- attr_reader :original_exception
-
- def initialize(e) #:nodoc:
- super("Error while trying to deserialize arguments: #{e.message}")
- @original_exception = e
- set_backtrace e.backtrace
+ def original_exception
+ ActiveSupport::Deprecation.warn("#original_exception is deprecated. Use #cause instead.", caller)
+ cause
end
end
@@ -41,8 +48,8 @@ module ActiveJob
# All other types are deserialized using GlobalID.
def deserialize(arguments)
arguments.map { |argument| deserialize_argument(argument) }
- rescue => e
- raise DeserializationError.new(e)
+ rescue
+ raise DeserializationError
end
private
diff --git a/activejob/test/jobs/rescue_job.rb b/activejob/test/jobs/rescue_job.rb
index f1b9c9349e..4f6376c850 100644
--- a/activejob/test/jobs/rescue_job.rb
+++ b/activejob/test/jobs/rescue_job.rb
@@ -11,7 +11,7 @@ class RescueJob < ActiveJob::Base
rescue_from(ActiveJob::DeserializationError) do |e|
JobBuffer.add('rescued from DeserializationError')
- JobBuffer.add("DeserializationError original exception was #{e.original_exception.class.name}")
+ JobBuffer.add("DeserializationError original exception was #{e.cause.class.name}")
end
def perform(person = "david")