diff options
-rw-r--r-- | lib/net/http/response.rb | 4 | ||||
-rw-r--r-- | test/net/http/test_httpresponse.rb | 16 |
2 files changed, 19 insertions, 1 deletions
diff --git a/lib/net/http/response.rb b/lib/net/http/response.rb index e2964c41a1..1351d7b2d2 100644 --- a/lib/net/http/response.rb +++ b/lib/net/http/response.rb @@ -117,7 +117,9 @@ class Net::HTTPResponse end def error! #:nodoc: - raise error_type().new(@code + ' ' + @message.dump, self) + message = @code + message += ' ' + @message.dump if @message + raise error_type().new(message, self) end def error_type #:nodoc: diff --git a/test/net/http/test_httpresponse.rb b/test/net/http/test_httpresponse.rb index a494b7fb85..a67add7c88 100644 --- a/test/net/http/test_httpresponse.rb +++ b/test/net/http/test_httpresponse.rb @@ -385,6 +385,22 @@ EOS assert_equal(nil, res.message) end + def test_raises_exception_with_missing_reason + io = dummy_io(<<EOS) +HTTP/1.1 404 +Content-Length: 5 +Connection: close + +hello +EOS + + res = Net::HTTPResponse.read_new(io) + assert_equal(nil, res.message) + assert_raise Net::HTTPServerException do + res.error! + end + end + private def dummy_io(str) |