From 8ce65a6083c8f73377a861cd96ad45001f05b75a Mon Sep 17 00:00:00 2001 From: Mike Virata-Stone Date: Wed, 14 Nov 2018 15:05:23 -0800 Subject: [PATCH] Don't let getSession cause an infinite loop if it throws IllegalStateException --- src/main/ruby/jruby/rack/session_store.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/ruby/jruby/rack/session_store.rb b/src/main/ruby/jruby/rack/session_store.rb index 77f6ab57..860d6bc8 100644 --- a/src/main/ruby/jruby/rack/session_store.rb +++ b/src/main/ruby/jruby/rack/session_store.rb @@ -91,7 +91,12 @@ def get_servlet_session(env, create = false) unless servlet_request = env['java.servlet_request'] raise "JavaServletStore expects a servlet request at env['java.servlet_request']" end - servlet_session = servlet_request.getSession(create) + servlet_session = + begin + servlet_request.getSession(create) + rescue java.lang.IllegalStateException => e + raise "Failed to obtain session due to IllegalStateException: #{e.message}" + end env[ENV_SERVLET_SESSION_KEY] = servlet_session end rescue java.lang.IllegalStateException # cached session invalidated