You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by bo...@apache.org on 2014/11/21 17:50:59 UTC
svn commit: r1640956 -
/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/SecureAction.java
Author: bob
Date: Fri Nov 21 16:50:58 2014
New Revision: 1640956
URL: http://svn.apache.org/r1640956
Log:
FELIX-4582 Add secure action for woven class listeners.
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/util/SecureAction.java
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/util/SecureAction.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/SecureAction.java?rev=1640956&r1=1640955&r2=1640956&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/util/SecureAction.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/util/SecureAction.java Fri Nov 21 16:50:58 2014
@@ -1448,6 +1448,30 @@ public class SecureAction
rh.end();
}
}
+
+ public void invokeWovenClassListener(
+ org.osgi.framework.hooks.weaving.WovenClassListener wcl,
+ org.osgi.framework.hooks.weaving.WovenClass wc)
+ throws Exception
+ {
+ if (System.getSecurityManager() != null)
+ {
+ Actions actions = (Actions) m_actions.get();
+ actions.set(Actions.INVOKE_WOVEN_CLASS_LISTENER, wcl, wc);
+ try
+ {
+ AccessController.doPrivileged(actions, m_acc);
+ }
+ catch (PrivilegedActionException e)
+ {
+ throw e.getException();
+ }
+ }
+ else
+ {
+ wcl.modified(wc);
+ }
+ }
private static class Actions implements PrivilegedExceptionAction
{
@@ -1507,6 +1531,7 @@ public class SecureAction
public static final int INVOKE_BUNDLE_COLLISION_HOOK = 53;
public static final int OPEN_JARFILE_ACTION = 54;
public static final int DELETE_FILEONEXIT_ACTION = 55;
+ public static final int INVOKE_WOVEN_CLASS_LISTENER = 56;
private int m_action = -1;
private Object m_arg1 = null;