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

起票者: Kazuhiro NISHIYAMA
ステータス: Open, 優先度: Normal
担当者: GOTOU Yuuzou

test/net/imapでも同様にErrno::ENOTCONNになります。

 48) 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'

以下パッチです。

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


----------------------------------------
http://redmine.ruby-lang.org