Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Bartel2013-03-14 04:28:41 +0000
committerJan Bartel2013-03-14 04:28:41 +0000
commitcd47727ce491d6bb1984ac1f6934080abc608c90 (patch)
treef056102e2d62b0b8006eca1961c320f9bae33cde
parentc5ace89ffd32a0c87f3512722eccbf27b05387dd (diff)
downloadorg.eclipse.jetty.project-cd47727ce491d6bb1984ac1f6934080abc608c90.tar.gz
org.eclipse.jetty.project-cd47727ce491d6bb1984ac1f6934080abc608c90.tar.xz
org.eclipse.jetty.project-cd47727ce491d6bb1984ac1f6934080abc608c90.zip
402982 Premature initialization of Servlets
-rw-r--r--jetty-servlet/src/main/java/org/eclipse/jetty/servlet/FilterHolder.java13
-rw-r--r--jetty-servlet/src/main/java/org/eclipse/jetty/servlet/Holder.java13
-rw-r--r--jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHandler.java1
-rw-r--r--jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java17
-rw-r--r--jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AbstractDoSFilterTest.java2
5 files changed, 43 insertions, 3 deletions
diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/FilterHolder.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/FilterHolder.java
index 3f41d53271..e69910480a 100644
--- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/FilterHolder.java
+++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/FilterHolder.java
@@ -97,7 +97,19 @@ public class FilterHolder extends Holder<Filter>
super.stop();
throw new IllegalStateException(msg);
}
+ }
+
+
+
+
+
+ /* ------------------------------------------------------------ */
+ @Override
+ public void initialize() throws Exception
+ {
+ super.initialize();
+
if (_filter==null)
{
try
@@ -123,6 +135,7 @@ public class FilterHolder extends Holder<Filter>
_filter.init(_config);
}
+
/* ------------------------------------------------------------ */
@Override
public void doStop()
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 f67b635bf1..0b7a1fb8f0 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
@@ -82,6 +82,19 @@ public class Holder<T> extends AbstractLifeCycle implements Dumpable
{
return _extInstance;
}
+
+
+ /* ------------------------------------------------------------ */
+ /**
+ * Do any setup necessary after starting
+ * @throws Exception
+ */
+ public void initialize()
+ throws Exception
+ {
+ if (!isStarted())
+ throw new IllegalStateException("Not started: "+this);
+ }
/* ------------------------------------------------------------ */
@SuppressWarnings("unchecked")
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 a413cab28b..9baefac40a 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
@@ -741,6 +741,7 @@ public class ServletHandler extends ScopedHandler
try
{
h.start();
+ h.initialize();
}
catch (Exception e)
{
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 8ff369ef0e..6de3b7e48b 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
@@ -280,7 +280,7 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope
_enabled = enabled;
}
-
+
/* ------------------------------------------------------------ */
public void doStart()
throws Exception
@@ -319,7 +319,17 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope
if (_class!=null && javax.servlet.SingleThreadModel.class.isAssignableFrom(_class))
_servlet = new SingleThreadedWrapper();
-
+
+ }
+
+
+ /* ------------------------------------------------------------ */
+ @Override
+ public void initialize ()
+ throws Exception
+ {
+ super.initialize();
+
if (_extInstance || _initOnStartup)
{
try
@@ -335,7 +345,8 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope
}
}
}
-
+
+
/* ------------------------------------------------------------ */
public void doStop()
throws Exception
diff --git a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AbstractDoSFilterTest.java b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AbstractDoSFilterTest.java
index 044c6660ae..b81a1e44de 100644
--- a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AbstractDoSFilterTest.java
+++ b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AbstractDoSFilterTest.java
@@ -98,7 +98,9 @@ public abstract class AbstractDoSFilterTest
public void startFilters() throws Exception
{
_dosFilter.start();
+ _dosFilter.initialize();
_timeoutFilter.start();
+ _timeoutFilter.initialize();
}
@After

Back to the top