Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Bartel2013-05-15 22:25:46 +0000
committerJan Bartel2013-05-15 22:25:46 +0000
commit3f4a05fde3a3ef756809d0528e78031f46554fc9 (patch)
tree2fcffc93d3965b1e5047f51b072ad61604d80c30 /jetty-servlet
parent488c1755e0a46b3605a9490d10a2874a754078a2 (diff)
downloadorg.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')
-rw-r--r--jetty-servlet/src/main/java/org/eclipse/jetty/servlet/Holder.java4
-rw-r--r--jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHandler.java2
-rw-r--r--jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java23
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;
}

Back to the top