From 29a204192dfefd34d40cb921778ed95432f3b345 Mon Sep 17 00:00:00 2001 From: Uwe Kubosch Date: Fri, 27 Apr 2012 12:54:48 +0200 Subject: [PATCH] * JRUBY-6624 Strip jar: prefix when searching for files in a JAR --- src/org/jruby/RubyFileTest.java | 3 +++ test/test_file.rb | 5 +++++ 2 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/org/jruby/RubyFileTest.java b/src/org/jruby/RubyFileTest.java index 2b11b91..f8ad2fd 100644 --- a/src/org/jruby/RubyFileTest.java +++ b/src/org/jruby/RubyFileTest.java @@ -567,6 +567,9 @@ public class RubyFileTest { RubyString pathStr = get_path(runtime.getCurrentContext(), path); String pathJStr = pathStr.getUnicodeValue(); + if (pathJStr.startsWith("jar:")) { + pathJStr = pathJStr.substring(4); + } if (pathJStr.startsWith("file:")) { String file = pathJStr.substring(5); int bang = file.indexOf('!'); diff --git a/test/test_file.rb b/test/test_file.rb index 760510f..7379172 100644 --- a/test/test_file.rb +++ b/test/test_file.rb @@ -563,6 +563,11 @@ class TestFile < Test::Unit::TestCase assert(!FileTest.exists?("file:/!")) end + def test_file_exists_uri_prefixes + assert(File.exists?("file:test/dir with spaces/test_jar.jar!/abc/foo.rb")) + assert(File.exists?("jar:file:test/dir with spaces/test_jar.jar!/abc/foo.rb")) + end + # JRUBY-2524 def test_file_stat_uri_prefixes assert_raise(Errno::ENOENT) do -- 1.7.4.4