Project

General

Profile

Actions

Bug #10504

closed

Gracefully handle CSV IO file descriptor problems

Bug #10504: Gracefully handle CSV IO file descriptor problems

Added by jackdanger (Jack Danger) almost 11 years ago. Updated about 8 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 2.2.0dev (2014-11-13 trunk 48392) [x86_64-darwin13]
[ruby-core:66240]

Description

This patch allows CSV.open to more gracefully handle user error. Because the IO object is passed to the user-provided block it's entirely possible the IO object can be closed before the block finishes. This would raise an error in the ensure clause of CSV.open.

Index: lib/csv.rb =================================================================== --- lib/csv.rb	(revision 48392) +++ lib/csv.rb	(working copy) @@ -1272,7 +1272,7 @@ begin yield csv ensure - csv.close + csv.closed? || csv.close  end else csv Index: test/csv/test_interface.rb =================================================================== --- test/csv/test_interface.rb	(revision 48392) +++ test/csv/test_interface.rb	(working copy) @@ -136,6 +136,14 @@ end end + def test_open_handles_prematurely_closed_file_descriptor_gracefully + assert_nothing_raised(Exception) do + CSV.open(@path) do |csv| + csv.close + end + end + end +  ### Test Write Interface ### def test_generate 

Files

csv_handle_file_descriptor_gracefully.diff (783 Bytes) csv_handle_file_descriptor_gracefully.diff jackdanger (Jack Danger), 11/13/2014 12:13 AM

Updated by nobu (Nobuyoshi Nakada) almost 11 years ago Actions #1 [ruby-core:66256]

  • Description updated (diff)
  • Status changed from Open to Assigned
  • Assignee set to JEG2 (James Gray)

Updated by hsbt (Hiroshi SHIBATA) over 8 years ago Actions #2 [ruby-core:81093]

  • Assignee changed from JEG2 (James Gray) to hsbt (Hiroshi SHIBATA)

Updated by hsbt (Hiroshi SHIBATA) about 8 years ago Actions #3

  • Status changed from Assigned to Closed

Applied in changeset trunk|r59642.


Gracefully handle CSV IO when file descriptor closed.

[Bug #10504][ruby-core:66240]

Actions

Also available in: PDF Atom