mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #5448 from JonRowe/patch_file_update_on_master
Commas in directory names causes hang in ActiveSupport::FileUpdateChecker
This commit is contained in:
commit
ee8e567d50
2 changed files with 20 additions and 1 deletions
|
@ -106,11 +106,15 @@ module ActiveSupport
|
||||||
|
|
||||||
globs = []
|
globs = []
|
||||||
hash.each do |key, value|
|
hash.each do |key, value|
|
||||||
globs << "#{key}/**/*#{compile_ext(value)}"
|
globs << "#{escape(key)}/**/*#{compile_ext(value)}"
|
||||||
end
|
end
|
||||||
"{#{globs.join(",")}}"
|
"{#{globs.join(",")}}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def escape(key)
|
||||||
|
key.gsub(',','\,')
|
||||||
|
end
|
||||||
|
|
||||||
def compile_ext(array) #:nodoc:
|
def compile_ext(array) #:nodoc:
|
||||||
array = Array(array)
|
array = Array(array)
|
||||||
return if array.empty?
|
return if array.empty?
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
require 'abstract_unit'
|
require 'abstract_unit'
|
||||||
require 'fileutils'
|
require 'fileutils'
|
||||||
|
require 'thread'
|
||||||
|
|
||||||
MTIME_FIXTURES_PATH = File.expand_path("../fixtures", __FILE__)
|
MTIME_FIXTURES_PATH = File.expand_path("../fixtures", __FILE__)
|
||||||
|
|
||||||
|
@ -79,4 +80,18 @@ class FileUpdateCheckerWithEnumerableTest < ActiveSupport::TestCase
|
||||||
assert !checker.execute_if_updated
|
assert !checker.execute_if_updated
|
||||||
assert_equal 0, i
|
assert_equal 0, i
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_should_not_block_if_a_strange_filename_used
|
||||||
|
FileUtils.mkdir_p("tmp_watcher/valid,yetstrange,path,")
|
||||||
|
FileUtils.touch(FILES.map { |file_name| "tmp_watcher/valid,yetstrange,path,/#{file_name}" } )
|
||||||
|
|
||||||
|
test = Thread.new do
|
||||||
|
checker = ActiveSupport::FileUpdateChecker.new([],"tmp_watcher/valid,yetstrange,path," => :txt){ i += 1 }
|
||||||
|
Thread.exit
|
||||||
|
end
|
||||||
|
test.priority = -1
|
||||||
|
test.join(5)
|
||||||
|
|
||||||
|
assert !test.alive?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue