diff --git a/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb b/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb index 8bcab24fe5..4fc11f752b 100644 --- a/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb +++ b/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb @@ -50,6 +50,8 @@ def perform private def log_arguments? job_data["job_class"].constantize.log_arguments? + rescue NameError + false end end end diff --git a/activejob/test/cases/delayed_job_adapter_test.rb b/activejob/test/cases/delayed_job_adapter_test.rb index 9de55f15b3..2c7477fadf 100644 --- a/activejob/test/cases/delayed_job_adapter_test.rb +++ b/activejob/test/cases/delayed_job_adapter_test.rb @@ -30,4 +30,17 @@ class DelayedJobAdapterTest < ActiveSupport::TestCase assert_equal "HelloJob [#{job_id}] from DelayedJob(default) with arguments: #{arguments}", job_wrapper.display_name end + + test "shows name for invalid job class" do + job_id = SecureRandom.uuid + + job_wrapper = ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper.new( + "job_class" => "NotExistingJob", + "queue_name" => "default", + "job_id" => job_id, + "arguments" => { "some" => { "job" => "arguments" } } + ) + + assert_equal "NotExistingJob [#{job_id}] from DelayedJob(default)", job_wrapper.display_name + end end