Skip to content

ActiveSupport EventedFileUpdateChecker wrong number of arguments in JRuby #3733

@brianbroderick

Description

@brianbroderick

Steps to reproduce

rails _5.0.0.beta3_ new rails_5_test --api

Entire Gemfile:
source 'https://rubygems.org'
ruby "2.2.3", { :engine => "jruby", :engine_version => "9.0.5.0" }
gem 'rails', '>= 5.0.0.beta3', '< 5.1'

Bundle and Console:
bundle install
rails c

Actual behavior

Get this error:

`ArgumentError: wrong number of arguments calling `sub` (0 for 1)
                         normalize_extension at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/activesupport-5.0.0.beta3/lib/active_support/evented_file_update_checker.rb:97
                         block in initialize at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/activesupport-5.0.0.beta3/lib/active_support/evented_file_update_checker.rb:13
                                         map at org/jruby/RubyArray.java:2300
                         block in initialize at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/activesupport-5.0.0.beta3/lib/active_support/evented_file_update_checker.rb:13
                                        each at org/jruby/RubyHash.java:1339
                                  initialize at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/activesupport-5.0.0.beta3/lib/active_support/evented_file_update_checker.rb:12
                             initialize_i18n at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/activesupport-5.0.0.beta3/lib/active_support/i18n_railtie.rb:59
                            block in Railtie at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/activesupport-5.0.0.beta3/lib/active_support/i18n_railtie.rb:15
                                        call at org/jruby/RubyProc.java:318
                                execute_hook at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/activesupport-5.0.0.beta3/lib/active_support/lazy_load_hooks.rb:36
                     block in run_load_hooks at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/activesupport-5.0.0.beta3/lib/active_support/lazy_load_hooks.rb:45
                                        each at org/jruby/RubyArray.java:1560
                              run_load_hooks at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/activesupport-5.0.0.beta3/lib/active_support/lazy_load_hooks.rb:44
                           block in Finisher at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/application/finisher.rb:62
                               instance_exec at org/jruby/RubyBasicObject.java:1670
                                         run at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/initializable.rb:30
                   block in run_initializers at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/initializable.rb:55
                         block in tsort_each at /Users/mymac/.rvm/rubies/jruby-9.0.5.0/lib/ruby/stdlib/tsort.rb:226
  block in each_strongly_connected_component at /Users/mymac/.rvm/rubies/jruby-9.0.5.0/lib/ruby/stdlib/tsort.rb:348
      each_strongly_connected_component_from at /Users/mymac/.rvm/rubies/jruby-9.0.5.0/lib/ruby/stdlib/tsort.rb:429
  block in each_strongly_connected_component at /Users/mymac/.rvm/rubies/jruby-9.0.5.0/lib/ruby/stdlib/tsort.rb:347
                                        each at org/jruby/RubyArray.java:1560
                                        call at org/jruby/RubyMethod.java:127
           each_strongly_connected_component at /Users/mymac/.rvm/rubies/jruby-9.0.5.0/lib/ruby/stdlib/tsort.rb:345
                                  tsort_each at /Users/mymac/.rvm/rubies/jruby-9.0.5.0/lib/ruby/stdlib/tsort.rb:224
                                  tsort_each at /Users/mymac/.rvm/rubies/jruby-9.0.5.0/lib/ruby/stdlib/tsort.rb:203
                            run_initializers at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/initializable.rb:54
                                 initialize! at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/application.rb:350
                                       <top> at /projects/rails_5_test/config/environment.rb:5
                                     require at org/jruby/RubyKernel.java:937
                                      (root) at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/application.rb:1
                        require_environment! at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/application.rb:326
        require_application_and_environment! at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/commands/commands_tasks.rb:157
                                     console at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/commands/commands_tasks.rb:77
                                run_command! at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/commands/commands_tasks.rb:49
                                       <top> at /Users/mymac/.rvm/gems/jruby-9.0.5.0@rails-5-test/gems/railties-5.0.0.beta3/lib/rails/command.rb:20
                                     require at org/jruby/RubyKernel.java:937
                                       <top> at bin/rails:9`

System configuration

Rails version: 5.0.0.beta3

Ruby version: JRuby 9.0.5.0

Additional Info

This bug is also shown here: rails/rails#23975

I'm reporting this bug here because of the comment left by @jensnockert who said:

If you replace the 'offending' code with some string manipulation you get the following stacktrace which is probably closer to revealing the JRuby bug behind this.

LocalJumpError: yield called out of block
/Users/Jens/.rvm/gems/jruby-9.0.5.0/gems/activesupport-5.0.0.beta2/lib/active_support/evented_file_update_checker.rb:130:in `existing_parent'
/Users/Jens/.rvm/gems/jruby-9.0.5.0/gems/activesupport-5.0.0.beta2/lib/active_support/evented_file_update_checker.rb:74:in `block in directories_to_watch'
/Users/Jens/.rvm/gems/jruby-9.0.5.0/gems/activesupport-5.0.0.beta2/lib/active_support/evented_file_update_checker.rb:74:in `directories_to_watch'

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions