<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -82,9 +82,10 @@ module Dependencies #:nodoc:
     # infinite loop with mutual dependencies.
     loaded &lt;&lt; expanded
 
-    if load?
-      log &quot;loading #{file_name}&quot;
-      begin
+    begin
+      if load?
+        log &quot;loading #{file_name}&quot;
+
         # Enable warnings iff this file has not been loaded before and
         # warnings_on_first_load is set.
         load_args = [&quot;#{file_name}.rb&quot;]
@@ -95,13 +96,13 @@ module Dependencies #:nodoc:
         else
           enable_warnings { result = load_file(*load_args) }
         end
-      rescue Exception
-        loaded.delete expanded
-        raise
+      else
+        log &quot;requiring #{file_name}&quot;
+        result = require file_name
       end
-    else
-      log &quot;requiring #{file_name}&quot;
-      result = require file_name
+    rescue Exception
+      loaded.delete expanded
+      raise
     end
 
     # Record history *after* loading so first load gets warnings.</diff>
      <filename>activesupport/lib/active_support/dependencies.rb</filename>
    </modified>
    <modified>
      <diff>@@ -673,7 +673,7 @@ class DependenciesTest &lt; Test::Unit::TestCase
         assert !defined?(::RaisesNoMethodError), &quot;::RaisesNoMethodError is defined but it should have failed!&quot;
       end
     end
-  
+
   ensure
     Object.class_eval { remove_const :RaisesNoMethodError if const_defined?(:RaisesNoMethodError) }
   end
@@ -686,11 +686,20 @@ class DependenciesTest &lt; Test::Unit::TestCase
         assert !defined?(::RaisesNoMethodError), &quot;::RaisesNoMethodError is defined but it should have failed!&quot;
       end
     end
-  
+
   ensure
     Object.class_eval { remove_const :RaisesNoMethodError if const_defined?(:RaisesNoMethodError) }
   end
 
+  def test_autoload_doesnt_shadow_error_when_mechanism_not_set_to_load
+    with_loading 'autoloading_fixtures' do
+      Dependencies.mechanism = :require
+      2.times do
+        assert_raise(NameError) {&quot;RaisesNameError&quot;.constantize}
+      end
+    end
+  end
+
   def test_autoload_doesnt_shadow_name_error
     with_loading 'autoloading_fixtures' do
       assert !defined?(::RaisesNameError), &quot;::RaisesNameError is defined but it hasn't been referenced yet!&quot;
@@ -714,7 +723,7 @@ class DependenciesTest &lt; Test::Unit::TestCase
   ensure
     Object.class_eval { remove_const :RaisesNoMethodError if const_defined?(:RaisesNoMethodError) }
   end
-  
+
   def test_remove_constant_handles_double_colon_at_start
     Object.const_set 'DeleteMe', Module.new
     DeleteMe.const_set 'OrMe', Module.new
@@ -724,7 +733,7 @@ class DependenciesTest &lt; Test::Unit::TestCase
     Dependencies.remove_constant &quot;::DeleteMe&quot;
     assert ! defined?(DeleteMe)
   end
-  
+
   def test_load_once_constants_should_not_be_unloaded
     with_loading 'autoloading_fixtures' do
       Dependencies.load_once_paths = Dependencies.load_paths
@@ -737,7 +746,7 @@ class DependenciesTest &lt; Test::Unit::TestCase
     Dependencies.load_once_paths = []
     Object.class_eval { remove_const :A if const_defined?(:A) }
   end
-  
+
   def test_load_once_paths_should_behave_when_recursively_loading
     with_loading 'dependencies', 'autoloading_fixtures' do
       Dependencies.load_once_paths = [Dependencies.load_paths.last]
@@ -753,5 +762,4 @@ class DependenciesTest &lt; Test::Unit::TestCase
   ensure
     Dependencies.load_once_paths = []
   end
-  
 end</diff>
      <filename>activesupport/test/dependencies_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f7015336f66d284cff8ecb89df9f430791ac57ea</id>
    </parent>
  </parents>
  <author>
    <name>Tom Ward</name>
    <email>tom@popdog.net</email>
  </author>
  <url>http://github.com/rails/rails/commit/77e45352e7e947f1df1bfb8fe7d9e4e133224dd9</url>
  <id>77e45352e7e947f1df1bfb8fe7d9e4e133224dd9</id>
  <committed-date>2008-05-31T13:33:38-07:00</committed-date>
  <authored-date>2008-05-31T13:33:38-07:00</authored-date>
  <message>Fixed Dependencies so load errors are not masked behind a 'Expected x.rb to define X' message when mechanism is not set to :load [#87 state:resolved]
Signed-off-by: Joshua Peek &lt;josh@joshpeek.com&gt;</message>
  <tree>c50f97186982012cfee3c566071bcec3b93c62a3</tree>
  <committer>
    <name>Joshua Peek</name>
    <email>josh@joshpeek.com</email>
  </committer>
</commit>
