[Bug #465] `Errno::ENOTCONN: Socket is not connected' in test/net/imap

Bug #465: `Errno::ENOTCONN: Socket is not connected’ in test/net/imap
http://redmine.ruby-lang.org/issues/show/465

e$B5/I<<Te(B: Kazuhiro NISHIYAMA
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal
e$BC4Ev<Te(B: GOTOU Yuuzou

test/net/imape$B$G$bF1MM$Ke(BErrno::ENOTCONNe$B$K$J$j$^$9!#e(B

  1. Error:
    test_unexpected_eof(IMAPTest):
    Errno::ENOTCONN: Socket is not connected
    /Users/chkbuild/chkbuild/tmp/build/ruby-trunk/20080821T033314/ruby/lib/net/imap.rb:295:in
    shutdown' /Users/chkbuild/chkbuild/tmp/build/ruby-trunk/20080821T033314/ruby/lib/net/imap.rb:295:in rescue in disconnect’
    /Users/chkbuild/chkbuild/tmp/build/ruby-trunk/20080821T033314/ruby/lib/net/imap.rb:290:in
    disconnect' /Users/chkbuild/chkbuild/tmp/build/ruby-trunk/20080821T033314/ruby/test/net/imap/test_imap.rb:108:in test_unexpected_eof’

e$B0J2<%Q%C%A$G$9!#e(B

Index: lib/net/imap.rb

— lib/net/imap.rb (revision 18748)
+++ lib/net/imap.rb (working copy)
@@ -288,11 +288,15 @@
# Disconnects from the server.
def disconnect
begin

  •    # try to call SSL::SSLSocket#io.
    
  •    @sock.io.shutdown
    
  •  rescue NoMethodError
    
  •    # @sock is not an SSL::SSLSocket.
    
  •    @sock.shutdown
    
  •    begin
    
  •      # try to call SSL::SSLSocket#io.
    
  •      @sock.io.shutdown
    
  •    rescue NoMethodError
    
  •      # @sock is not an SSL::SSLSocket.
    
  •      @sock.shutdown
    
  •    end
    
  •  rescue Errno::ENOTCONN
    
  •    # ignore `Errno::ENOTCONN: Socket is not connected' on some 
    

platforms.
end
@receiver_thread.join
@sock.close

e$B%A%1%C%He(B #465 e$B$,99?7$5$l$^$7$?!#e(B (by Kazuhiro NISHIYAMA)

e$B%9%F!<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B

r18777

http://redmine.ruby-lang.org/issues/show/465