You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by mi...@apache.org on 2010/06/30 14:33:30 UTC

svn commit: r959285 - /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.permissiondescriptions/src/main/java/org/apache/clerezza/permissiondescriptions/PermissionGatherer.java

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