Author: cziegeler
Date: Mon Oct 15 16:54:57 2018
New Revision: 1843926

URL: http://svn.apache.org/viewvc?rev=1843926&view=rev
Log:
FELIX-5950 : NPE in MultiplePrototypeRefPair.unsetServiceObject

Modified:
    
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java
    
felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java

Modified: 
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java?rev=1843926&r1=1843925&r2=1843926&view=diff
==============================================================================
--- 
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java
 (original)
+++ 
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java
 Mon Oct 15 16:54:57 2018
@@ -20,6 +20,7 @@
 
 package org.apache.felix.scr.impl.manager;
 
+import java.util.Iterator;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -63,7 +64,17 @@ public class MultiplePrototypeRefPair<S,
     @Override
     public T unsetServiceObject(ComponentContextImpl<S> key)
     {
-        return instances.get(key);
+       if ( key == null )
+       {
+               final Iterator<T> iter = instances.values().iterator();
+               while ( iter.hasNext() ) 
+               {
+                       this.serviceObjects.ungetService(iter.next());
+               }
+               instances.clear();
+               return null ;
+       }
+        return instances.remove(key);
     }
 
     @Override

Modified: 
felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java?rev=1843926&r1=1843925&r2=1843926&view=diff
==============================================================================
--- 
felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java
 (original)
+++ 
felix/trunk/scr/src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java
 Mon Oct 15 16:54:57 2018
@@ -117,7 +117,7 @@ public abstract class ComponentTestBase
     protected static String paxRunnerVmOption = null;
 
     //To investigate any problems at all set to "debug"
-    protected static String DS_LOGLEVEL = "debug";
+    protected static String DS_LOGLEVEL = "error";
 
     protected static String bsnVersionUniqueness = "single";
 


Reply via email to