Skip to content

Commit 3d9daa8

Browse files
Edvard Majakaridefunkt
authored andcommitted
do not ignore decode errors
1 parent 9377687 commit 3d9daa8

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

lib/resque/helpers.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module Resque
22
# Methods used by various classes in Resque.
33
module Helpers
4+
class DecodeException < StandardError; end
5+
46
# Direct access to the Redis instance.
57
def redis
68
Resque.redis
@@ -23,12 +25,14 @@ def decode(object)
2325
if defined? Yajl
2426
begin
2527
Yajl::Parser.parse(object, :check_utf8 => false)
26-
rescue Yajl::ParseError
28+
rescue Yajl::ParseError => e
29+
raise DecodeException, e
2730
end
2831
else
2932
begin
3033
JSON.parse(object)
31-
rescue JSON::ParserError
34+
rescue JSON::ParserError => e
35+
raise DecodeException, e
3236
end
3337
end
3438
end

test/resque_test.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,8 @@
233233
end
234234

235235
test "decode bad json" do
236-
assert_nil Resque.decode("{\"error\":\"Module not found \\u002\"}")
236+
assert_raises Resque::Helpers::DecodeException do
237+
Resque.decode("{\"error\":\"Module not found \\u002\"}")
238+
end
237239
end
238240
end

0 commit comments

Comments
 (0)