Author: mir
Date: Wed Jun 30 12:33:30 2010
New Revision: 959285

URL: http://svn.apache.org/viewvc?rev=959285&view=rev
Log:
CLEREZZA-250: fixed bugs in PermissionGatherer

Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.permissiondescriptions/src/main/java/org/apache/clerezza/permissiondescriptions/PermissionGatherer.java

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.permissiondescriptions/src/main/java/org/apache/clerezza/permissiondescriptions/PermissionGatherer.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.permissiondescriptions/src/main/java/org/apache/clerezza/permissiondescriptions/PermissionGatherer.java?rev=959285&r1=959284&r2=959285&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.permissiondescriptions/src/main/java/org/apache/clerezza/permissiondescriptions/PermissionGatherer.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.permissiondescriptions/src/main/java/org/apache/clerezza/permissiondescriptions/PermissionGatherer.java
 Wed Jun 30 12:33:30 2010
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author mir
  */
-...@component()
+...@component(immediate=true)
 @Service(PermissionGatherer.class)
 @Reference(name="permissionProvider", policy=ReferencePolicy.DYNAMIC,
        referenceInterface=PermissionDescriptionsProvider.class, 
cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE)
@@ -130,11 +130,12 @@ public class PermissionGatherer implemen
                        Bundle bundle = serviceReference.getBundle();
 
                        Collection<PermissionDescripton> permissionDescriptiors 
=
-                               bundle2PermissionDescriptorsMap.get(bundle);
-
-                       
permissionDescriptiors.removeAll(permissionProvider.getPermissionDescriptors());
-                       if (permissionDescriptiors.isEmpty()) {
-                               bundle2PermissionDescriptorsMap.remove(bundle);
+                                       
bundle2PermissionDescriptorsMap.get(bundle);
+                       if (permissionDescriptiors != null) {
+                               
permissionDescriptiors.removeAll(permissionProvider.getPermissionDescriptors());
+                               if (permissionDescriptiors.isEmpty()) {
+                                       
bundle2PermissionDescriptorsMap.remove(bundle);
+                               }
                        }
                }
 
@@ -146,12 +147,14 @@ public class PermissionGatherer implemen
                if (permissionProvider == null) {
                        return;
                }
+               Bundle bundle = serviceReference.getBundle();
                Collection<PermissionDescripton> permissionDescriptiors =
-                               
bundle2PermissionDescriptorsMap.get(serviceReference.getBundle());
+                               bundle2PermissionDescriptorsMap.get(bundle);
                if (permissionDescriptiors == null) {
                        permissionDescriptiors = new 
HashSet<PermissionDescripton>();
                }
                
permissionDescriptiors.addAll(permissionProvider.getPermissionDescriptors());
+               bundle2PermissionDescriptorsMap.put(bundle, 
permissionDescriptiors);
 
        }
 


Reply via email to