aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_controller/cgi_process.rb39
1 files changed, 16 insertions, 23 deletions
diff --git a/actionpack/lib/action_controller/cgi_process.rb b/actionpack/lib/action_controller/cgi_process.rb
index bb34751f64..a8ac127ac7 100644
--- a/actionpack/lib/action_controller/cgi_process.rb
+++ b/actionpack/lib/action_controller/cgi_process.rb
@@ -95,29 +95,22 @@ module ActionController #:nodoc:
@session["__valid_session"]
return @session
rescue ArgumentError => e
- # TODO: Uncomment this on 0.13.1
- # if e.message =~ %r{undefined class/module (\w+)}
- # begin
- # Module.const_missing($1)
- # rescue LoadError, NameError => e
- # raise(
- # ActionController::SessionRestoreError,
- # "Session contained objects where the class definition wasn't available. " +
- # "Remember to require classes for all objects kept in the session. " +
- # "(Original exception: #{e.message} [#{e.class}])"
- # )
- # end
- #
- # retry
- # else
- # raise
- # end
- raise(
- ActionController::SessionRestoreError,
- "Session contained objects where the class definition wasn't available. " +
- "Remember to require classes for all objects kept in the session. " +
- "(Original exception: #{e.message} [#{e.class}])"
- )
+ if e.message =~ %r{undefined class/module (\w+)}
+ begin
+ Module.const_missing($1)
+ rescue LoadError, NameError => e
+ raise(
+ ActionController::SessionRestoreError,
+ "Session contained objects where the class definition wasn't available. " +
+ "Remember to require classes for all objects kept in the session. " +
+ "(Original exception: #{e.message} [#{e.class}])"
+ )
+ end
+
+ retry
+ else
+ raise
+ end
end
end