FELIX-4444 : Duplicate unregistrations do not throw IllegalArgumentException
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1573560 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceImpl.java b/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceImpl.java
index 9d59382..7e1e189 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceImpl.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceImpl.java
@@ -19,12 +19,18 @@
import java.util.Dictionary;
import java.util.HashSet;
-import javax.servlet.*;
+import javax.servlet.Filter;
+import javax.servlet.Servlet;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextAttributeListener;
+import javax.servlet.ServletException;
import org.apache.felix.http.api.ExtHttpService;
import org.apache.felix.http.base.internal.context.ExtServletContext;
import org.apache.felix.http.base.internal.context.ServletContextManager;
-import org.apache.felix.http.base.internal.handler.*;
+import org.apache.felix.http.base.internal.handler.FilterHandler;
+import org.apache.felix.http.base.internal.handler.HandlerRegistry;
+import org.apache.felix.http.base.internal.handler.ServletHandler;
import org.apache.felix.http.base.internal.logger.SystemLogger;
import org.osgi.framework.Bundle;
import org.osgi.service.http.HttpContext;
@@ -117,7 +123,12 @@
public void unregister(String alias)
{
- unregisterServlet(this.handlerRegistry.getServletByAlias(alias));
+ final Servlet servlet = this.handlerRegistry.getServletByAlias(alias);
+ if ( servlet == null )
+ {
+ throw new IllegalArgumentException("Nothing registered at " + alias);
+ }
+ unregisterServlet(servlet);
}
public HttpContext createDefaultHttpContext()