This project is archived and is in readonly mode.

#529 ✓wontfix
Jeff

activesupport 1.4.4 not checking for nil object properly?

Reported by Jeff | July 1st, 2008 @ 08:52 PM | in 2.x

I received the following error when trying to start webrick:

/var/lib/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:376:in `new_constants_in': You have a nil object when you didn't expect it! (NoMethodError)

You might have expected an instance of Array.

The error occurred while evaluating nil.empty? from /var/lib/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:202:in `load_file'

dependencies.rb:376 says the following:

if defined?(watch_frames) && ! watch_frames.empty?

I'm not sure what this code is attempting to do in context, but it seems plausible that the author actually meant something like:

if watch_frames != nil && ! watch_frames.empty?

defined?() when called in the previous way can return a non-empty string which will pass the first test but the variable being tested can still be set to nil, thus the method call on a nil object throws an exception.

Comments and changes to this ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

<h2 style="font-size: 14px">Tickets have moved to Github</h2>

The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>

People watching this ticket

Pages