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 2013/12/23 14:17:31 UTC
svn commit: r1553110 - in
/felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl:
CoordinationImpl.java CoordinatorImpl.java
Author: cziegeler
Date: Mon Dec 23 13:17:31 2013
New Revision: 1553110
URL: http://svn.apache.org/r1553110
Log:
FELIX-2647 : Implement Coordinator Service - start permission checking
Modified:
felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java
felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java
Modified: felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java?rev=1553110&r1=1553109&r2=1553110&view=diff
==============================================================================
--- felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java (original)
+++ felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java Mon Dec 23 13:17:31 2013
@@ -69,7 +69,7 @@ public class CoordinationImpl implements
private final ArrayList<Participant> participants;
- private final HashMap<Class<?>, Object> variables;
+ private final Map<Class<?>, Object> variables;
private TimerTask timeoutTask;
@@ -214,6 +214,8 @@ public class CoordinationImpl implements
this.waitLock.notifyAll();
}
+ this.associatedThread = null;
+
if ( this.failReason != null )
{
throw new CoordinationException("Nested coordination failed", this,
Modified: felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java?rev=1553110&r1=1553109&r2=1553110&view=diff
==============================================================================
--- felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java (original)
+++ felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java Mon Dec 23 13:17:31 2013
@@ -18,12 +18,14 @@
*/
package org.apache.felix.coordinator.impl;
+import java.security.Permission;
import java.util.Collection;
import java.util.TimerTask;
import org.osgi.framework.Bundle;
import org.osgi.service.coordinator.Coordination;
import org.osgi.service.coordinator.CoordinationException;
+import org.osgi.service.coordinator.CoordinationPermission;
import org.osgi.service.coordinator.Coordinator;
import org.osgi.service.coordinator.Participant;
@@ -123,12 +125,22 @@ public class CoordinatorImpl implements
}
}
+ private void checkPermission(final String coordinationName, final String actions )
+ {
+ final SecurityManager securityManager = System.getSecurityManager();
+ if (securityManager != null)
+ {
+ final Permission permission = new CoordinationPermission(coordinationName, this.owner, actions);
+ securityManager.checkPermission(permission);
+ }
+ }
+
/**
* @see org.osgi.service.coordinator.Coordinator#create(java.lang.String, long)
*/
public Coordination create(final String name, final long timeout)
{
- // TODO: check permission
+ this.checkPermission(name, CoordinationPermission.INITIATE);
// check arguments
checkName(name);