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