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);