You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2022/01/04 14:24:40 UTC
[felix-dev] branch http/jakarta updated: Fix unregistering servlets
This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch http/jakarta
in repository https://gitbox.apache.org/repos/asf/felix-dev.git
The following commit(s) were added to refs/heads/http/jakarta by this push:
new f9c2347 Fix unregistering servlets
f9c2347 is described below
commit f9c23477cf17dceccd88c3d661ad088d1d007397
Author: Carsten Ziegeler <cz...@adobe.com>
AuthorDate: Tue Jan 4 15:24:31 2022 +0100
Fix unregistering servlets
---
.../base/internal/service/SharedHttpServiceImpl.java | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/service/SharedHttpServiceImpl.java b/http/base/src/main/java/org/apache/felix/http/base/internal/service/SharedHttpServiceImpl.java
index 6dccef0..a63d404 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/service/SharedHttpServiceImpl.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/service/SharedHttpServiceImpl.java
@@ -97,19 +97,28 @@ public final class SharedHttpServiceImpl
throw new IllegalArgumentException("Nothing registered at " + alias);
}
- final javax.servlet.Servlet s;
+ final javax.servlet.Servlet s = getServlet(handler);
if ( handler.getServlet() instanceof HttpResourceServlet ) {
final HttpResourceServlet resource = (HttpResourceServlet)handler.getServlet();
- s = resource.getWrapper();
resource.setWrapper(null);
- } else {
- s = ((ServletWrapper)handler.getServlet()).getServlet();
}
this.handlerRegistry.getRegistry(handler.getContextServiceId()).unregisterServlet(handler.getServletInfo(), true);
return s;
}
}
+ private javax.servlet.Servlet getServlet(final ServletHandler handler) {
+ final javax.servlet.Servlet s;
+ if ( handler.getServlet() instanceof HttpResourceServlet ) {
+ final HttpResourceServlet resource = (HttpResourceServlet)handler.getServlet();
+ s = resource.getWrapper();
+ resource.setWrapper(null);
+ } else {
+ s = ((ServletWrapper)handler.getServlet()).getServlet();
+ }
+ return s;
+ }
+
/**
* Unregister a servlet
* @param servlet The servlet
@@ -124,7 +133,8 @@ public final class SharedHttpServiceImpl
while (i.hasNext())
{
final Map.Entry<String, ServletHandler> entry = i.next();
- if (entry.getValue().getServlet() == servlet)
+ final javax.servlet.Servlet s = getServlet(entry.getValue());
+ if (s == servlet)
{
this.handlerRegistry.getRegistry(entry.getValue().getContextServiceId()).unregisterServlet(entry.getValue().getServletInfo(), false);