Project

General

Profile

Actions

Bug #11015

closed

IO.copy_stream does not advance Tempfile destination

Added by headius (Charles Nutter) over 9 years ago. Updated over 9 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
[ruby-core:<unknown>]

Description

The following script, reported to JRuby in https://github.com/jruby/jruby/issues/2762, shows that MRI does not advance the position of a Tempfile when using copy_stream:

require "stringio"
require "tempfile"
file = Tempfile.new('foo')
IO.copy_stream(StringIO.new('foo'), file)
file.eof? #=> false (it's on the beginning)

Other types of streams leave the destination where it is after the copy, so I believe this is a bug.


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #11199: IO.copy_stream degrade that can't call pathname to pathnameClosedActions
Actions #1

Updated by nobu (Nobuyoshi Nakada) over 9 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Applied in changeset r50118.


io.c: use read/write methods if possible

  • io.c (copy_stream_body): use the arguments without conversion if
    having read, readpartial, and write methods, than conversion by
    to_path method. [ruby-core:68676] [Bug #11015]
Actions #2

Updated by nobu (Nobuyoshi Nakada) over 9 years ago

  • Description updated (diff)
Actions #3

Updated by headius (Charles Nutter) over 9 years ago

Closing the loop on one detail...

This didn't affect JRuby because JRuby's Tempfile actually subclasses IO, rather than wrapping and delegating.

Actions #4

Updated by nobu (Nobuyoshi Nakada) about 9 years ago

  • Related to Bug #11199: IO.copy_stream degrade that can't call pathname to pathname added
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0