Add initialized boolean to ServletHolder

Signed-off-by: wouter.bancken@aca-it.be
This commit is contained in:
Wouter Bancken 2015-09-30 13:29:01 +02:00 committed by Jan Bartel
parent fd5c5b5779
commit ce6f55f9df
1 changed files with 17 additions and 14 deletions

View File

@ -75,6 +75,7 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope
private static final Logger LOG = Log.getLogger(ServletHolder.class);
private int _initOrder = -1;
private boolean _initOnStartup=false;
private boolean initialized = false;
private Map<String, String> _roleMap;
private String _forcedPath;
private String _runAsRole;
@ -83,7 +84,6 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope
private ServletRegistration.Dynamic _registration;
private JspContainer _jspContainer;
private transient Servlet _servlet;
private transient Config _config;
private transient long _unavailable;
@ -378,7 +378,7 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope
if (_class!=null && javax.servlet.SingleThreadModel.class.isAssignableFrom(_class))
_servlet = new SingleThreadedWrapper();
}
@ -387,21 +387,24 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope
public void initialize ()
throws Exception
{
super.initialize();
if (_extInstance || _initOnStartup)
{
try
if(!initialized){
super.initialize();
if (_extInstance || _initOnStartup)
{
initServlet();
}
catch(Exception e)
{
if (_servletHandler.isStartWithUnavailable())
LOG.ignore(e);
else
throw e;
try
{
initServlet();
}
catch(Exception e)
{
if (_servletHandler.isStartWithUnavailable())
LOG.ignore(e);
else
throw e;
}
}
}
initialized = true;
}