<?xml version="1.0" encoding="UTF-8"?>
<ticket>
  <assigned-user-id type="integer" nil="true"></assigned-user-id>
  <attachments-count type="integer">1</attachments-count>
  <closed type="boolean">false</closed>
  <created-at type="datetime">2008-12-01T00:55:02+00:00</created-at>
  <creator-id type="integer">10460</creator-id>
  <milestone-due-on type="datetime" nil="true"></milestone-due-on>
  <milestone-id type="integer" nil="true"></milestone-id>
  <number type="integer">49</number>
  <permalink>exception_notification-productionrb-configuration-wiped-by-double-load</permalink>
  <priority type="integer">41674</priority>
  <project-id type="integer">8995</project-id>
  <raw-data type="binary" nil="true" encoding="base64"></raw-data>
  <state>new</state>
  <tag>bug exception_notification</tag>
  <title>exception_notification production.rb configuration wiped by double-load</title>
  <updated-at type="datetime">2009-03-24T09:24:01+00:00</updated-at>
  <user-id type="integer">38153</user-id>
  <user-name>Vincent Woo</user-name>
  <creator-name>Will Bryant</creator-name>
  <url>http://rails.lighthouseapp.com/projects/8995/tickets/49</url>
  <original-body>If you set the configuration fields (eg. ExceptionNotifier.exception_recipients, ExceptionNotifier.sender_address) you end up with this error:

@@@ruby
A Net::SMTPSyntaxError occurred in customers#show:

  501 5.1.3 Bad recipient address syntax

  /usr/lib/ruby/1.8/net/smtp.rb:680:in `check_response'
@@@

The cause is that exception_notifier.rb is getting loaded twice.  First, production.rb runs and  exception_notifier.rb is autoloaded when the ExceptionNotifier class is referenced:

@@@
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in `load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:381:in `load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:256:in `require_or_load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:427:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:89:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:93:in `const_missing'
/private/tmp/foo/config/environments/production.rb:26:in `load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:340:in `load_environment'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:333:in `load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:136:in `process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
/private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
@@@

Then, Initializer continues to do its thing and some time later it gets to load_plugins, which loads exception_notifier.rb again:

@@@
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require'
/private/tmp/foo/vendor/plugins/exception_notification/init.rb:2:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:103:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:99:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:44:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:33:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in `each'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:323:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:160:in `process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
/private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
@@@

On this second load the whole class is redefined and so the original attribute writes get lost.

Putting it another way, the 'require' mechanism isn't working properly - the file's getting loaded twice which it shouldn't.</original-body>
  <latest-body>If you set the configuration fields (eg. ExceptionNotifier.exception_recipients, ExceptionNotifier.sender_address) you end up with this error:

@@@ruby
A Net::SMTPSyntaxError occurred in customers#show:

  501 5.1.3 Bad recipient address syntax

  /usr/lib/ruby/1.8/net/smtp.rb:680:in `check_response'
@@@

The cause is that exception_notifier.rb is getting loaded twice.  First, production.rb runs and  exception_notifier.rb is autoloaded when the ExceptionNotifier class is referenced:

@@@
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in `load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:381:in `load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:256:in `require_or_load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:427:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:89:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:93:in `const_missing'
/private/tmp/foo/config/environments/production.rb:26:in `load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:340:in `load_environment'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:333:in `load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:136:in `process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
/private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
@@@

Then, Initializer continues to do its thing and some time later it gets to load_plugins, which loads exception_notifier.rb again:

@@@
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require'
/private/tmp/foo/vendor/plugins/exception_notification/init.rb:2:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:103:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:99:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:44:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:33:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in `each'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:323:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:160:in `process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
/private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
@@@

On this second load the whole class is redefined and so the original attribute writes get lost.

Putting it another way, the 'require' mechanism isn't working properly - the file's getting loaded twice which it shouldn't.</latest-body>
  <original-body-html>&lt;div&gt;&lt;p&gt;If you set the configuration fields (eg.
ExceptionNotifier.exception_recipients,
ExceptionNotifier.sender_address) you end up with this error:&lt;/p&gt;
&lt;p&gt;@@@ruby A Net::SMTPSyntaxError occurred in customers#show:&lt;/p&gt;
&lt;p&gt;501 5.1.3 Bad recipient address syntax&lt;/p&gt;
&lt;p&gt;/usr/lib/ruby/1.8/net/smtp.rb:680:in
&lt;code&gt;check_response'&lt;/code&gt;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;

The cause is that exception_notifier.rb is getting loaded twice.  First, production.rb runs and  exception_notifier.rb is autoloaded when the ExceptionNotifier class is referenced:

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in
&lt;code&gt;load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in&lt;/code&gt;load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in
&lt;code&gt;new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:381:in&lt;/code&gt;load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:256:in
&lt;code&gt;require_or_load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:427:in&lt;/code&gt;load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in
&lt;code&gt;const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:89:in&lt;/code&gt;const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in
&lt;code&gt;load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in&lt;/code&gt;const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in
&lt;code&gt;load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:93:in&lt;/code&gt;const_missing'
/private/tmp/foo/config/environments/production.rb:26:in
&lt;code&gt;load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:340:in&lt;/code&gt;load_environment'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in
&lt;code&gt;silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:333:in&lt;/code&gt;load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:136:in
&lt;code&gt;process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in&lt;/code&gt;send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in
&lt;code&gt;run' /private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in&lt;/code&gt;gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
&lt;code&gt;require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in&lt;/code&gt;require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in
&lt;code&gt;new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in&lt;/code&gt;require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in
&lt;code&gt;rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in&lt;/code&gt;cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in
&lt;code&gt;call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in&lt;/code&gt;listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in
&lt;code&gt;cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in&lt;/code&gt;call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in
&lt;code&gt;initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in&lt;/code&gt;new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in
&lt;code&gt;run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in&lt;/code&gt;run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in
&lt;code&gt;load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in&lt;/code&gt;load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in
&lt;code&gt;new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in&lt;/code&gt;load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
&lt;code&gt;gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in&lt;/code&gt;require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in
&lt;code&gt;require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in&lt;/code&gt;new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in
&lt;code&gt;require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in&lt;/code&gt;gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
&lt;code&gt;require' script/server:3&lt;/code&gt;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;

Then, Initializer continues to do its thing and some time later it gets to load_plugins, which loads exception_notifier.rb again:

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
&lt;code&gt;gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in&lt;/code&gt;require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in
&lt;code&gt;require'
/private/tmp/foo/vendor/plugins/exception_notification/init.rb:2:in&lt;/code&gt;evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:103:in
&lt;code&gt;evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in&lt;/code&gt;silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:99:in
&lt;code&gt;evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:44:in&lt;/code&gt;load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:33:in
&lt;code&gt;load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in&lt;/code&gt;each'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in
&lt;code&gt;load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:323:in&lt;/code&gt;load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:160:in
&lt;code&gt;process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in&lt;/code&gt;send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in
&lt;code&gt;run' /private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in&lt;/code&gt;gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
&lt;code&gt;require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in&lt;/code&gt;require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in
&lt;code&gt;new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in&lt;/code&gt;require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in
&lt;code&gt;rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in&lt;/code&gt;cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in
&lt;code&gt;call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in&lt;/code&gt;listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in
&lt;code&gt;cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in&lt;/code&gt;call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in
&lt;code&gt;initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in&lt;/code&gt;new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in
&lt;code&gt;run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in&lt;/code&gt;run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in
&lt;code&gt;load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in&lt;/code&gt;load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in
&lt;code&gt;new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in&lt;/code&gt;load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
&lt;code&gt;gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in&lt;/code&gt;require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in
&lt;code&gt;require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in&lt;/code&gt;new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in
&lt;code&gt;require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in&lt;/code&gt;gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
&lt;code&gt;require' script/server:3&lt;/code&gt;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;

On this second load the whole class is redefined and so the original attribute writes get lost.

Putting it another way, the 'require' mechanism isn't working properly - the file's getting loaded twice which it shouldn't.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</original-body-html>
  <versions type="array">
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>If you set the configuration fields (eg. ExceptionNotifier.exception_recipients, ExceptionNotifier.sender_address) you end up with this error:

@@@ ruby
A Net::SMTPSyntaxError occurred in customers#show:

  501 5.1.3 Bad recipient address syntax

  /usr/lib/ruby/1.8/net/smtp.rb:680:in `check_response'
@@@

The cause is that exception_notifier.rb is getting loaded twice.  First, production.rb runs and  exception_notifier.rb is autoloaded when the ExceptionNotifier class is referenced:

@@@
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in `load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:381:in `load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:256:in `require_or_load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:427:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:89:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:93:in `const_missing'
/private/tmp/foo/config/environments/production.rb:26:in `load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:340:in `load_environment'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:333:in `load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:136:in `process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
/private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
@@@

Then, Initializer continues to do its thing and some time later it gets to load_plugins, which loads exception_notifier.rb again:

@@@
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require'
/private/tmp/foo/vendor/plugins/exception_notification/init.rb:2:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:103:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:99:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:44:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:33:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in `each'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:323:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:160:in `process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
/private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
@@@

On this second load the whole class is redefined and so the original attribute writes get lost.

Putting it another way, the 'require' mechanism isn't working properly - the file's getting loaded twice which it shouldn't.</body>
      <body-html>&lt;div&gt;&lt;p&gt;If you set the configuration fields (eg.
ExceptionNotifier.exception_recipients,
ExceptionNotifier.sender_address) you end up with this error:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;
A Net::SMTPSyntaxError occurred in customers#show:

  501 5.1.3 Bad recipient address syntax

  /usr/lib/ruby/1.8/net/smtp.rb:680:in `check_response'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The cause is that exception_notifier.rb is getting loaded twice.
First, production.rb runs and exception_notifier.rb is autoloaded
when the ExceptionNotifier class is referenced:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:382:in `load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:381:in `load_file'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:256:in `require_or_load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:427:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:89:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:439:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:93:in `const_missing'
/private/tmp/foo/config/environments/production.rb:26:in `load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:340:in `load_environment'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:333:in `load_environment'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:136:in `process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
/private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, Initializer continues to do its thing and some time later
it gets to load_plugins, which loads exception_notifier.rb
again:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require'
/private/tmp/foo/vendor/plugins/exception_notification/init.rb:2:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:103:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:99:in `evaluate_init_rb'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:44:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:33:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in `each'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:323:in `load_plugins'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:160:in `process'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
/private/tmp/foo/config/environment.rb:13
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:149:in `listener'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `call'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:50:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load_without_new_constant_marking'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in `load'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require'
/Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On this second load the whole class is redefined and so the
original attribute writes get lost.&lt;/p&gt;
&lt;p&gt;Putting it another way, the 'require' mechanism isn't working
properly - the file's getting loaded twice which it shouldn't.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-12-01T00:55:03+00:00</created-at>
      <creator-id type="integer">10460</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">49</number>
      <permalink>exception_notification-productionrb-configuration-wiped-by-double-load</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">8995</project-id>
      <state>new</state>
      <tag>bug exception_notification</tag>
      <title>exception_notification production.rb configuration wiped by double-load</title>
      <updated-at type="datetime">2008-12-01T00:56:48+00:00</updated-at>
      <user-id type="integer">10460</user-id>
      <user-name>Will Bryant</user-name>
      <creator-name>Will Bryant</creator-name>
      <url>http://rails.lighthouseapp.com/projects/8995/tickets/49</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>I usually put my Exception Notification config in an initializer, `/config/initializers/exception_notifier.rb` or somesuch. Does that fix the problem? Notifications only fire for non-local requests anyway, so it doesn't make much difference that it loads in development/test mode.</body>
      <body-html>&lt;div&gt;&lt;p&gt;I usually put my Exception Notification config in an
initializer,
&lt;code&gt;/config/initializers/exception_notifier.rb&lt;/code&gt; or
somesuch. Does that fix the problem? Notifications only fire for
non-local requests anyway, so it doesn't make much difference that
it loads in development/test mode.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-12-01T07:25:39+00:00</created-at>
      <creator-id type="integer">10460</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">49</number>
      <permalink>exception_notification-productionrb-configuration-wiped-by-double-load</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">8995</project-id>
      <state>new</state>
      <tag>bug exception_notification</tag>
      <title>exception_notification production.rb configuration wiped by double-load</title>
      <updated-at type="datetime">2008-12-01T07:25:41+00:00</updated-at>
      <user-id type="integer">17373</user-id>
      <user-name>Chris Kampmeier</user-name>
      <creator-name>Will Bryant</creator-name>
      <url>http://rails.lighthouseapp.com/projects/8995/tickets/49</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Yes, it does - but that forces us to reinvent the wheel a bit since we want different configuration in different environments.

That's what we've had to do in the meantime and it works ok, but I feel that the require mechanism should be fixed.</body>
      <body-html>&lt;div&gt;&lt;p&gt;Yes, it does - but that forces us to reinvent the wheel a bit
since we want different configuration in different
environments.&lt;/p&gt;
&lt;p&gt;That's what we've had to do in the meantime and it works ok, but
I feel that the require mechanism should be fixed.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-12-01T10:15:38+00:00</created-at>
      <creator-id type="integer">10460</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">49</number>
      <permalink>exception_notification-productionrb-configuration-wiped-by-double-load</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">8995</project-id>
      <state>new</state>
      <tag>bug exception_notification</tag>
      <title>exception_notification production.rb configuration wiped by double-load</title>
      <updated-at type="datetime">2008-12-01T10:15:38+00:00</updated-at>
      <user-id type="integer">10460</user-id>
      <user-name>Will Bryant</user-name>
      <creator-name>Will Bryant</creator-name>
      <url>http://rails.lighthouseapp.com/projects/8995/tickets/49</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Thanks for reporting this - I've been bitten as well.</body>
      <body-html>&lt;div&gt;&lt;p&gt;Thanks for reporting this - I've been bitten as well.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-12-22T12:18:28+00:00</created-at>
      <creator-id type="integer">10460</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">49</number>
      <permalink>exception_notification-productionrb-configuration-wiped-by-double-load</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">8995</project-id>
      <state>new</state>
      <tag>bug exception_notification</tag>
      <title>exception_notification production.rb configuration wiped by double-load</title>
      <updated-at type="datetime">2008-12-22T12:18:29+00:00</updated-at>
      <user-id type="integer">3629</user-id>
      <user-name>Thibaut Barr&#232;re</user-name>
      <creator-name>Will Bryant</creator-name>
      <url>http://rails.lighthouseapp.com/projects/8995/tickets/49</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Same here. I moved the plugin config to an initializer file as suggested by Chris and that has worked.

I just happened to notice another solution though. If the config is dependent on the env, then in production.rb etc. try wrapping the plugin config in an after_initialize block:

@@@
config.after_initialize do
  ExceptionNotifier.exception_recipients = %w(someone@example.com)
  ExceptionNotifier.sender_address = %(&quot;Application Error&quot; &lt;someone@example.com&gt;)
  ExceptionNotifier.email_prefix = &quot;[ERROR] &quot;
end
@@@

If that works out for you, then the README should probably be updated.</body>
      <body-html>&lt;div&gt;&lt;p&gt;Same here. I moved the plugin config to an initializer file as
suggested by Chris and that has worked.&lt;/p&gt;
&lt;p&gt;I just happened to notice another solution though. If the config
is dependent on the env, then in production.rb etc. try wrapping
the plugin config in an after_initialize block:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
config.after_initialize do
  ExceptionNotifier.exception_recipients = %w(someone@example.com)
  ExceptionNotifier.sender_address = %(&amp;quot;Application Error&amp;quot; &amp;lt;someone@example.com&amp;gt;)
  ExceptionNotifier.email_prefix = &amp;quot;[ERROR] &amp;quot;
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If that works out for you, then the README should probably be
updated.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2009-02-04T07:07:32+00:00</created-at>
      <creator-id type="integer">10460</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">49</number>
      <permalink>exception_notification-productionrb-configuration-wiped-by-double-load</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">8995</project-id>
      <state>new</state>
      <tag>bug exception_notification</tag>
      <title>exception_notification production.rb configuration wiped by double-load</title>
      <updated-at type="datetime">2009-02-04T07:07:33+00:00</updated-at>
      <user-id type="integer">38153</user-id>
      <user-name>Vincent Woo</user-name>
      <creator-name>Will Bryant</creator-name>
      <url>http://rails.lighthouseapp.com/projects/8995/tickets/49</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Forgot to add links to related documentation.

http://toolmantim.com/articles/environments_and_the_rails_initialisation_process

http://api.rubyonrails.org/classes/Rails/Configuration.html#M002489</body>
      <body-html>&lt;div&gt;&lt;p&gt;Forgot to add links to related documentation.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://toolmantim.com/articles/environments_and_the_rails_initialisation_process&quot;&gt;
http://toolmantim.com/articles/e...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://api.rubyonrails.org/classes/Rails/Configuration.html#M002489&quot;&gt;
http://api.rubyonrails.org/class...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2009-02-04T07:09:25+00:00</created-at>
      <creator-id type="integer">10460</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">49</number>
      <permalink>exception_notification-productionrb-configuration-wiped-by-double-load</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">8995</project-id>
      <state>new</state>
      <tag>bug exception_notification</tag>
      <title>exception_notification production.rb configuration wiped by double-load</title>
      <updated-at type="datetime">2009-02-04T07:09:27+00:00</updated-at>
      <user-id type="integer">38153</user-id>
      <user-name>Vincent Woo</user-name>
      <creator-name>Will Bryant</creator-name>
      <url>http://rails.lighthouseapp.com/projects/8995/tickets/49</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>The problem still exists with Rails 2.3.2

Also verified that the use of config.after_initialize works around the problem so I attached a tiny doc patch.</body>
      <body-html>&lt;div&gt;&lt;p&gt;The problem still exists with Rails 2.3.2&lt;/p&gt;
&lt;p&gt;Also verified that the use of config.after_initialize works
around the problem so I attached a tiny doc patch.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2009-03-24T09:23:57+00:00</created-at>
      <creator-id type="integer">10460</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">49</number>
      <permalink>exception_notification-productionrb-configuration-wiped-by-double-load</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">8995</project-id>
      <state>new</state>
      <tag>bug exception_notification</tag>
      <title>exception_notification production.rb configuration wiped by double-load</title>
      <updated-at type="datetime">2009-03-24T09:24:01+00:00</updated-at>
      <user-id type="integer">38153</user-id>
      <user-name>Vincent Woo</user-name>
      <creator-name>Will Bryant</creator-name>
      <url>http://rails.lighthouseapp.com/projects/8995/tickets/49</url>
    </version>
  </versions>
  <attachments type="array">
    <attachment type="Attachment">
      <code>561d8c45ee9c3c0b1e1d119b9bc1a3c784a62cc2</code>
      <content-type>text/plain</content-type>
      <created-at type="datetime">2009-03-24T09:23:57+00:00</created-at>
      <filename>after_initialize_doc.diff</filename>
      <height type="integer" nil="true"></height>
      <id type="integer">103268</id>
      <size type="integer">1171</size>
      <uploader-id type="integer">38153</uploader-id>
      <width type="integer" nil="true"></width>
      <url>http://rails.lighthouseapp.com/attachments/103268/after_initialize_doc.diff</url>
    </attachment>
  </attachments>
</ticket>
