diff options
author | Jan Bartel | 2013-05-15 22:25:46 +0000 |
---|---|---|
committer | Jan Bartel | 2013-05-15 22:25:46 +0000 |
commit | 3f4a05fde3a3ef756809d0528e78031f46554fc9 (patch) | |
tree | 2fcffc93d3965b1e5047f51b072ad61604d80c30 /jetty-servlet | |
parent | 488c1755e0a46b3605a9490d10a2874a754078a2 (diff) | |
download | org.eclipse.jetty.project-3f4a05fde3a3ef756809d0528e78031f46554fc9.tar.gz org.eclipse.jetty.project-3f4a05fde3a3ef756809d0528e78031f46554fc9.tar.xz org.eclipse.jetty.project-3f4a05fde3a3ef756809d0528e78031f46554fc9.zip |
407931 Add toggle for failing on servlet availability
Diffstat (limited to 'jetty-servlet')
3 files changed, 22 insertions, 7 deletions
diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/Holder.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/Holder.java index ea3552213d..f9dd20cd06 100644 --- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/Holder.java +++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/Holder.java @@ -87,7 +87,7 @@ public class Holder<T> extends AbstractLifeCycle implements Dumpable { //if no class already loaded and no classname, make servlet permanently unavailable if (_class==null && (_className==null || _className.equals(""))) - throw new UnavailableException("No class for Servlet or Filter for "+_name, -1); + throw new UnavailableException("No class for Servlet or Filter for "+_name); //try to load class if (_class==null) @@ -101,7 +101,7 @@ public class Holder<T> extends AbstractLifeCycle implements Dumpable catch (Exception e) { LOG.warn(e); - throw new UnavailableException(e.getMessage(), -1); + throw new UnavailableException(e.getMessage()); } } } diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHandler.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHandler.java index 3b901e2f9a..31e19d5b0c 100644 --- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHandler.java +++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHandler.java @@ -102,7 +102,7 @@ public class ServletHandler extends ScopedHandler private int _matchAfterIndex = -1; //index of 1st programmatic FilterMapping with isMatchAfter=true private boolean _filterChainsCached=true; private int _maxFilterChainsCacheSize=512; - private boolean _startWithUnavailable=true; + private boolean _startWithUnavailable=false; private IdentityService _identityService; private ServletHolder[] _servlets=new ServletHolder[0]; diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java index 8527222bf8..7b51fe120f 100644 --- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java +++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java @@ -292,6 +292,8 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope _unavailable=0; if (!_enabled) return; + + //check servlet has a class (ie is not a preliminary registration). If preliminary, fail startup. try { @@ -300,9 +302,17 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope catch (UnavailableException ue) { makeUnavailable(ue); - throw ue; + if (_servletHandler.isStartWithUnavailable()) + { + LOG.ignore(ue); + return; + } + else + throw ue; } - + + + //servlet is not an instance of javax.servlet.Servlet try { checkServletType(); @@ -310,8 +320,13 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope catch (UnavailableException ue) { makeUnavailable(ue); - if (!_servletHandler.isStartWithUnavailable()) - throw ue; //servlet is not an instance of javax.servlet.Servlet + if (_servletHandler.isStartWithUnavailable()) + { + LOG.ignore(ue); + return; + } + else + throw ue; } |