NoMethodError exception generated when using net/http
I recently stumbled upon what appears to be a bug in lib/net/http.rb. Here is example code that illustrates the problem:
n = Net::HTTP.new('127.0.0.1', 1234) # or any other unused port
The above code generates a NoMethodError exception, with the message "undefined method `closed?' for nil:NilClass". The expected result, and what was generated in prior versions of Ruby 1.8.7., is a thrown Errno::ECONNREFUSED exception.
It appears a recent change (r25851) to lib/net/http.rb changed some exception handling behavior and forgot to check if @socket is set. A proposed patch is attached that adds the additional check.
Updated by nobu (Nobuyoshi Nakada) over 12 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r26553.
John, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.