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 2015/07/21 18:08:33 UTC
svn commit: r1692158 - in
/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal:
runtime/ResourceInfo.java whiteboard/WhiteboardManager.java
whiteboard/tracker/WhiteboardServiceTracker.java
Author: cziegeler
Date: Tue Jul 21 16:08:32 2015
New Revision: 1692158
URL: http://svn.apache.org/r1692158
Log:
Fix resource unregistration problem2
Modified:
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ResourceInfo.java
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/WhiteboardServiceTracker.java
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ResourceInfo.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ResourceInfo.java?rev=1692158&r1=1692157&r2=1692158&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ResourceInfo.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ResourceInfo.java Tue Jul 21 16:08:32 2015
@@ -37,11 +37,14 @@ public final class ResourceInfo extends
*/
private final String prefix;
+ private final ServletInfo servletInfo;
+
public ResourceInfo(final ServiceReference<Object> ref)
{
super(ref);
this.patterns = getStringArrayProperty(ref, HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PATTERN);
this.prefix = getStringProperty(ref, HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PREFIX);
+ this.servletInfo = new ServletInfo(this);
}
@Override
@@ -71,4 +74,9 @@ public final class ResourceInfo extends
{
return patterns;
}
+
+ public ServletInfo getServletInfo()
+ {
+ return this.servletInfo;
+ }
}
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java?rev=1692158&r1=1692157&r2=1692158&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java Tue Jul 21 16:08:32 2015
@@ -692,7 +692,7 @@ public final class WhiteboardManager
}
else if ( info instanceof ResourceInfo )
{
- final ServletInfo servletInfo = new ServletInfo((ResourceInfo)info);
+ final ServletInfo servletInfo = ((ResourceInfo)info).getServletInfo();
final ExtServletContext servletContext = handler.getServletContext(info.getServiceReference().getBundle());
if ( servletContext == null )
{
@@ -766,7 +766,7 @@ public final class WhiteboardManager
}
else if ( info instanceof ResourceInfo )
{
- handler.getRegistry().unregisterServlet(new ServletInfo((ResourceInfo)info), true);
+ handler.getRegistry().unregisterServlet(((ResourceInfo)info).getServletInfo(), true);
handler.ungetServletContext(info.getServiceReference().getBundle());
}
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/WhiteboardServiceTracker.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/WhiteboardServiceTracker.java?rev=1692158&r1=1692157&r2=1692158&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/WhiteboardServiceTracker.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/WhiteboardServiceTracker.java Tue Jul 21 16:08:32 2015
@@ -109,7 +109,7 @@ public abstract class WhiteboardServiceT
private void removed(final ServiceReference<T> ref)
{
- final WhiteboardServiceInfo<T> info = this.allInfos.get(ref.getProperty(Constants.SERVICE_ID));
+ final WhiteboardServiceInfo<T> info = this.allInfos.remove(ref.getProperty(Constants.SERVICE_ID));
if ( info != null )
{
this.contextManager.removeWhiteboardService(info);