diff --git a/src/org/jruby/RubyFile.java b/src/org/jruby/RubyFile.java index 87c5bef1cf2..a8ce579685e 100644 --- a/src/org/jruby/RubyFile.java +++ b/src/org/jruby/RubyFile.java @@ -338,12 +338,8 @@ public IRubyObject initialize19(ThreadContext context, IRubyObject[] args, Block System.arraycopy(args, 0, newArgs, 0, newArgs.length); args = newArgs; } - - if(hasOffset.isTrue()) { - return openFile19(context, args, true); - } else { - return openFile19(context, args, false); - } + + return openFile19(context, args, hasOffset.isTrue()); } @JRubyMethod(required = 1) diff --git a/src/org/jruby/util/io/ChannelDescriptor.java b/src/org/jruby/util/io/ChannelDescriptor.java index 57356a411c4..6ccd4529cac 100644 --- a/src/org/jruby/util/io/ChannelDescriptor.java +++ b/src/org/jruby/util/io/ChannelDescriptor.java @@ -881,7 +881,7 @@ public static ChannelDescriptor open(String cwd, String path, ModeFlags flags, i * we need manual seeking. */ boolean isInAppendMode; - if (flags.isWritable() && !flags.isReadable()) { + if (flags.isWritable() && !flags.isReadable() && !hasOffset) { FileOutputStream fos = new FileOutputStream(theFile, flags.isAppendable()); fileChannel = fos.getChannel(); fileDescriptor = fos.getFD();