Author: peter_firmstone Date: Sat Mar 17 12:29:52 2012 New Revision: 1301929
URL: http://svn.apache.org/viewvc?rev=1301929&view=rev Log: Cleaning, deleting and reorganising Added: river/jtsk/trunk/dep-libs/ river/jtsk/trunk/dep-libs/animal-sniffer/ river/jtsk/trunk/dep-libs/animal-sniffer/README - copied unchanged from r1290965, river/jtsk/trunk/animal-sniffer/README river/jtsk/trunk/dep-libs/animal-sniffer/animal-sniffer-1.6.jar - copied unchanged from r1290965, river/jtsk/trunk/animal-sniffer/animal-sniffer-1.6.jar river/jtsk/trunk/dep-libs/animal-sniffer/animal-sniffer-ant-tasks-1.6.jar - copied unchanged from r1290965, river/jtsk/trunk/animal-sniffer/animal-sniffer-ant-tasks-1.6.jar river/jtsk/trunk/dep-libs/animal-sniffer/animal-sniffer.LICENSE - copied unchanged from r1290965, river/jtsk/trunk/animal-sniffer/animal-sniffer.LICENSE river/jtsk/trunk/dep-libs/animal-sniffer/java14-1.0.signature - copied unchanged from r1290965, river/jtsk/trunk/animal-sniffer/java14-1.0.signature river/jtsk/trunk/dep-libs/animal-sniffer/java14-sun-1.0.signature - copied unchanged from r1290965, river/jtsk/trunk/animal-sniffer/java14-sun-1.0.signature river/jtsk/trunk/dep-libs/animal-sniffer/java15-1.0.signature - copied unchanged from r1290965, river/jtsk/trunk/animal-sniffer/java15-1.0.signature river/jtsk/trunk/dep-libs/animal-sniffer/java15-ibm-1.0.signature - copied unchanged from r1290965, river/jtsk/trunk/animal-sniffer/java15-ibm-1.0.signature river/jtsk/trunk/dep-libs/animal-sniffer/java15-sun-1.0.signature - copied unchanged from r1290965, river/jtsk/trunk/animal-sniffer/java15-sun-1.0.signature river/jtsk/trunk/dep-libs/asm/ river/jtsk/trunk/dep-libs/asm/README - copied unchanged from r1290965, river/jtsk/trunk/asm/README river/jtsk/trunk/dep-libs/asm/asm-3.2.jar - copied unchanged from r1290965, river/jtsk/trunk/asm/asm-3.2.jar river/jtsk/trunk/dep-libs/asm/asm-commons-3.2.jar - copied unchanged from r1290965, river/jtsk/trunk/asm/asm-commons-3.2.jar river/jtsk/trunk/dep-libs/asm/asm-tree-3.2.jar - copied unchanged from r1290965, river/jtsk/trunk/asm/asm-tree-3.2.jar river/jtsk/trunk/dep-libs/asm/asm.LICENSE - copied unchanged from r1290965, river/jtsk/trunk/asm/asm.LICENSE river/jtsk/trunk/dep-libs/bouncy-castle/ river/jtsk/trunk/dep-libs/bouncy-castle/bcmail-jdk16-146.jar - copied unchanged from r1290965, river/jtsk/trunk/bouncy-castle/bcmail-jdk16-146.jar river/jtsk/trunk/dep-libs/bouncy-castle/bcpg-jdk16-146.jar - copied unchanged from r1290965, river/jtsk/trunk/bouncy-castle/bcpg-jdk16-146.jar river/jtsk/trunk/dep-libs/bouncy-castle/bcprov-jdk16-146.jar - copied unchanged from r1290965, river/jtsk/trunk/bouncy-castle/bcprov-jdk16-146.jar river/jtsk/trunk/dep-libs/bouncy-castle/bctest-jdk16-146.jar - copied unchanged from r1290965, river/jtsk/trunk/bouncy-castle/bctest-jdk16-146.jar river/jtsk/trunk/dep-libs/bouncy-castle/bctsp-jdk16-146.jar - copied unchanged from r1290965, river/jtsk/trunk/bouncy-castle/bctsp-jdk16-146.jar river/jtsk/trunk/dep-libs/high-scale-lib/ river/jtsk/trunk/dep-libs/high-scale-lib/high-scale-lib.jar - copied unchanged from r1290965, river/jtsk/trunk/high-scale-lib/high-scale-lib.jar river/jtsk/trunk/dep-libs/rc-libs/ river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-javadoc.jar (with props) river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-sources.jar (with props) river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-test-sources.jar (with props) river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0.jar (with props) river/jtsk/trunk/dep-libs/velocity/ river/jtsk/trunk/dep-libs/velocity/LICENSE - copied unchanged from r1290965, river/jtsk/trunk/velocity/LICENSE river/jtsk/trunk/dep-libs/velocity/NOTICE - copied unchanged from r1290965, river/jtsk/trunk/velocity/NOTICE river/jtsk/trunk/dep-libs/velocity/README - copied unchanged from r1290965, river/jtsk/trunk/velocity/README river/jtsk/trunk/dep-libs/velocity/velocity-1.7.jar - copied unchanged from r1290965, river/jtsk/trunk/velocity/velocity-1.7.jar river/jtsk/trunk/src/org/apache/river/api/security/CombinerSecurityManager.java - copied, changed from r1290965, river/jtsk/trunk/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java river/jtsk/trunk/test/src/org/apache/river/api/security/CombinerSecurityManagerTest.java - copied, changed from r1290965, river/jtsk/trunk/test/src/org/apache/river/api/security/DelegateCombinerSecurityManagerTest.java Removed: river/jtsk/trunk/src/org/apache/river/api/delegates/DelegateInputStream.java river/jtsk/trunk/src/org/apache/river/api/delegates/DelegateOutputStream.java river/jtsk/trunk/src/org/apache/river/api/delegates/DelegatePermission.java river/jtsk/trunk/src/org/apache/river/api/delegates/DelegateSocket.java river/jtsk/trunk/src/org/apache/river/api/delegates/DelegateSocketChannel.java river/jtsk/trunk/src/org/apache/river/api/delegates/DelegateSocketFactory.java river/jtsk/trunk/src/org/apache/river/api/delegates/FileInputStream.java river/jtsk/trunk/src/org/apache/river/api/delegates/FileOutputStream.java river/jtsk/trunk/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java river/jtsk/trunk/test/src/org/apache/river/api/security/DelegateCombinerSecurityManagerTest.java Modified: river/jtsk/trunk/common.xml river/jtsk/trunk/hudson.xml river/jtsk/trunk/qa/src/com/sun/jini/qa/harness/MasterTest.java river/jtsk/trunk/src/com/sun/jini/start/AggregatePolicyProvider.java river/jtsk/trunk/src/com/sun/jini/start/LoaderSplitPolicyProvider.java river/jtsk/trunk/src/net/jini/security/policy/DynamicPolicyProvider.java river/jtsk/trunk/src/org/apache/river/api/security/PermissionComparator.java river/jtsk/trunk/src/org/apache/river/impl/security/dos/IsolatedExecutor.java Modified: river/jtsk/trunk/common.xml URL: http://svn.apache.org/viewvc/river/jtsk/trunk/common.xml?rev=1301929&r1=1301928&r2=1301929&view=diff ============================================================================== --- river/jtsk/trunk/common.xml (original) +++ river/jtsk/trunk/common.xml Sat Mar 17 12:29:52 2012 @@ -125,24 +125,29 @@ <pathelement path="${river.classes.dir}"/> </path> - <fileset id="asm.jars" dir="${root}/asm"> + <fileset id="asm.jars" dir="${root}/dep-libs/asm"> <include name="asm-3.2.jar" /> <include name="asm-commons-3.2.jar" /> </fileset> - <fileset id="velocity.jars" dir="${root}/velocity"> + <fileset id="velocity.jars" dir="${root}/dep-libs/velocity"> <include name="velocity-1.7.jar" /> </fileset> - <fileset id="high-scale-lib.jars" dir="${root}/high-scale-lib"> + <fileset id="high-scale-lib.jars" dir="${root}/dep-libs/high-scale-lib"> <include name="high-scale-lib.jar" /> </fileset> + <fileset id="reference-collections.jar" dir="${root}/dep-libs/rc-libs"> + <include name="reference-collections-1.0.0.jar" /> + </fileset> + <path id="compile.classpath" > <fileset refid="asm.jars" /> <fileset refid="velocity.jars" /> <fileset refid="high-scale-lib.jars" /> + <fileset refid="reference-collections.jar" /> </path> Added: river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-javadoc.jar URL: http://svn.apache.org/viewvc/river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-javadoc.jar?rev=1301929&view=auto ============================================================================== Binary file - no diff available. Propchange: river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-javadoc.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-sources.jar URL: http://svn.apache.org/viewvc/river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-sources.jar?rev=1301929&view=auto ============================================================================== Binary file - no diff available. Propchange: river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-sources.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-test-sources.jar URL: http://svn.apache.org/viewvc/river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-test-sources.jar?rev=1301929&view=auto ============================================================================== Binary file - no diff available. Propchange: river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0-test-sources.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0.jar URL: http://svn.apache.org/viewvc/river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0.jar?rev=1301929&view=auto ============================================================================== Binary file - no diff available. Propchange: river/jtsk/trunk/dep-libs/rc-libs/reference-collections-1.0.0.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Modified: river/jtsk/trunk/hudson.xml URL: http://svn.apache.org/viewvc/river/jtsk/trunk/hudson.xml?rev=1301929&r1=1301928&r2=1301929&view=diff ============================================================================== --- river/jtsk/trunk/hudson.xml (original) +++ river/jtsk/trunk/hudson.xml Sat Mar 17 12:29:52 2012 @@ -31,7 +31,7 @@ <typedef uri="antlib:org.codehaus.mojo.animal_sniffer"> <classpath> - <fileset dir="animal-sniffer"> + <fileset dir="dep-libs/animal-sniffer"> <include name="**/*.jar"/> </fileset> <fileset dir="asm"> @@ -51,7 +51,7 @@ <attribute name="signature" /> <sequential> <as:check-signature signature="@{signature}" > - <path path="asm/asm-tree-3.2.jar" /> + <path path="dep-libs/asm/asm-tree-3.2.jar" /> <path path="lib" /> <path path="lib-dl" /> <ignore className="org.apache.velocity.app.VelocityEngine"/> @@ -62,23 +62,23 @@ </macrodef> <target name="verify-14" > - <verify-signature signature="animal-sniffer/java14-1.0.signature" /> + <verify-signature signature="dep-libs/animal-sniffer/java14-1.0.signature" /> </target> <target name="verify-14-sun" > - <verify-signature signature="animal-sniffer/java14-sun-1.0.signature" /> + <verify-signature signature="dep-libs/animal-sniffer/java14-sun-1.0.signature" /> </target> <target name="verify-15" > - <verify-signature signature="animal-sniffer/java15-1.0.signature" /> + <verify-signature signature="dep-libs/animal-sniffer/java15-1.0.signature" /> </target> <target name="verify-15-sun" > - <verify-signature signature="animal-sniffer/java15-sun-1.0.signature" /> + <verify-signature signature="dep-libs/animal-sniffer/java15-sun-1.0.signature" /> </target> <target name="verify-15-ibm" > - <verify-signature signature="animal-sniffer/java15-ibm-1.0.signature" /> + <verify-signature signature="dep-libs/animal-sniffer/java15-ibm-1.0.signature" /> </target> <target name="qa-runtime" description="build QA runtime" > Modified: river/jtsk/trunk/qa/src/com/sun/jini/qa/harness/MasterTest.java URL: http://svn.apache.org/viewvc/river/jtsk/trunk/qa/src/com/sun/jini/qa/harness/MasterTest.java?rev=1301929&r1=1301928&r2=1301929&view=diff ============================================================================== --- river/jtsk/trunk/qa/src/com/sun/jini/qa/harness/MasterTest.java (original) +++ river/jtsk/trunk/qa/src/com/sun/jini/qa/harness/MasterTest.java Sat Mar 17 12:29:52 2012 @@ -36,7 +36,7 @@ import javax.security.auth.Subject; import net.jini.config.Configuration; import net.jini.config.ConfigurationException; -import org.apache.river.api.security.DelegateCombinerSecurityManager; +import org.apache.river.api.security.CombinerSecurityManager; /** * A wrapper which drives the execution of a test on the master host. @@ -86,7 +86,7 @@ class MasterTest { if (System.getSecurityManager() == null) { // System.setSecurityManager(new java.rmi.RMISecurityManager()); // System.setSecurityManager(new ProfilingSecurityManager()); - System.setSecurityManager(new DelegateCombinerSecurityManager()); + System.setSecurityManager(new CombinerSecurityManager()); } if (args.length < 1) { exit(false, Test.ENV, "Arguments missing"); Modified: river/jtsk/trunk/src/com/sun/jini/start/AggregatePolicyProvider.java URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/com/sun/jini/start/AggregatePolicyProvider.java?rev=1301929&r1=1301928&r2=1301929&view=diff ============================================================================== --- river/jtsk/trunk/src/com/sun/jini/start/AggregatePolicyProvider.java (original) +++ river/jtsk/trunk/src/com/sun/jini/start/AggregatePolicyProvider.java Sat Mar 17 12:29:52 2012 @@ -45,9 +45,9 @@ import net.jini.security.policy.DynamicP import net.jini.security.policy.PolicyInitializationException; import net.jini.security.policy.SecurityContextSource; import org.apache.river.api.security.PermissionGrant; -import org.apache.river.impl.util.RC; -import org.apache.river.impl.util.Ref; -import org.apache.river.impl.util.Referrer; +import au.net.zeus.collection.RC; +import au.net.zeus.collection.Ref; +import au.net.zeus.collection.Referrer; /** * Security policy provider which supports associating security sub-policies @@ -87,7 +87,7 @@ public class AggregatePolicyProvider private static final ConcurrentMap<Class,Boolean> trustGetCCL = RC.concurrentMap( new ConcurrentHashMap<Referrer<Class>,Referrer<Boolean>>(), - Ref.WEAK_IDENTITY, Ref.STRONG); + Ref.WEAK_IDENTITY, Ref.STRONG, 1000L, 0L); private static final ProtectionDomain myDomain = AccessController.doPrivileged( new PrivilegedAction<ProtectionDomain>() { @@ -103,7 +103,7 @@ public class AggregatePolicyProvider private final ConcurrentMap<ClassLoader,Policy> subPolicyChildClassLoaderCache = // put protected by policyRead RC.concurrentMap( // clear protected by policyWrite new ConcurrentHashMap<Referrer<ClassLoader>,Referrer<Policy>>(), - Ref.WEAK_IDENTITY, Ref.STRONG); + Ref.WEAK_IDENTITY, Ref.STRONG, 1000L, 0L); // private final ReadWriteLock policyUpdate = new ReentrantReadWriteLock(); // private final Lock policyRead = policyUpdate.readLock(); // private final Lock policyWrite = policyUpdate.writeLock(); Modified: river/jtsk/trunk/src/com/sun/jini/start/LoaderSplitPolicyProvider.java URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/com/sun/jini/start/LoaderSplitPolicyProvider.java?rev=1301929&r1=1301928&r2=1301929&view=diff ============================================================================== --- river/jtsk/trunk/src/com/sun/jini/start/LoaderSplitPolicyProvider.java (original) +++ river/jtsk/trunk/src/com/sun/jini/start/LoaderSplitPolicyProvider.java Sat Mar 17 12:29:52 2012 @@ -35,9 +35,9 @@ import java.util.concurrent.ConcurrentHa import java.util.concurrent.ConcurrentMap; import org.apache.river.api.security.ConcurrentPolicy; import org.apache.river.api.security.PermissionGrant; -import org.apache.river.impl.util.RC; -import org.apache.river.impl.util.Ref; -import org.apache.river.impl.util.Referrer; +import au.net.zeus.collection.RC; +import au.net.zeus.collection.Ref; +import au.net.zeus.collection.Referrer; /** * Security policy provider which handles permission queries and grants by @@ -100,7 +100,7 @@ public class LoaderSplitPolicyProvider this.defaultPolicy = defaultPolicy; delegateMap = RC.concurrentMap( new ConcurrentHashMap<Referrer<ClassLoader>,Referrer<Policy>>() - ,Ref.WEAK_IDENTITY , Ref.STRONG); + ,Ref.WEAK_IDENTITY , Ref.STRONG, 1000L, 0L); ensureDependenciesResolved(); } Modified: river/jtsk/trunk/src/net/jini/security/policy/DynamicPolicyProvider.java URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/net/jini/security/policy/DynamicPolicyProvider.java?rev=1301929&r1=1301928&r2=1301929&view=diff ============================================================================== --- river/jtsk/trunk/src/net/jini/security/policy/DynamicPolicyProvider.java (original) +++ river/jtsk/trunk/src/net/jini/security/policy/DynamicPolicyProvider.java Sat Mar 17 12:29:52 2012 @@ -57,7 +57,6 @@ import org.apache.river.api.security.Per import org.apache.river.api.security.RemotePolicy; import org.apache.river.api.security.PolicyPermission; import org.apache.river.api.security.RevocablePolicy; -import org.apache.river.impl.util.CollectionsConcurrent; /** * Security policy provider that supports dynamic granting of permissions at Copied: river/jtsk/trunk/src/org/apache/river/api/security/CombinerSecurityManager.java (from r1290965, river/jtsk/trunk/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java) URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/org/apache/river/api/security/CombinerSecurityManager.java?p2=river/jtsk/trunk/src/org/apache/river/api/security/CombinerSecurityManager.java&p1=river/jtsk/trunk/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java&r1=1290965&r2=1301929&rev=1301929&view=diff ============================================================================== --- river/jtsk/trunk/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java (original) +++ river/jtsk/trunk/src/org/apache/river/api/security/CombinerSecurityManager.java Sat Mar 17 12:29:52 2012 @@ -47,14 +47,13 @@ import java.util.logging.Level; import java.util.logging.Logger; import net.jini.security.Security; import net.jini.security.SecurityContext; -import org.apache.river.api.delegates.DelegatePermission; -import org.apache.river.impl.util.RC; -import org.apache.river.impl.util.Ref; -import org.apache.river.impl.util.Referrer; +import au.net.zeus.collection.RC; +import au.net.zeus.collection.Ref; +import au.net.zeus.collection.Referrer; import org.cliffc.high_scale_lib.NonBlockingHashMap; /** - * DelegateCombinerSecurityManager, is intended to be a highly scalable + * CombinerSecurityManager, is intended to be a highly scalable * SecurityManager implementation that softly caches the results of security checks * for each context, which may be an instance of SecurityContext or * AccessControlContext. @@ -75,9 +74,9 @@ import org.cliffc.high_scale_lib.NonBloc * * @author Peter Firmstone */ -public class DelegateCombinerSecurityManager +public class CombinerSecurityManager extends SecurityManager implements CachingSecurityManager { - private static final Logger logger = Logger.getLogger(DelegateCombinerSecurityManager.class.getName()); + private static final Logger logger = Logger.getLogger(CombinerSecurityManager.class.getName()); private final DomainCombiner dc; // Cache of optimised Delegate AccessControlContext's private final ConcurrentMap<AccessControlContext, AccessControlContext> contextCache; @@ -92,7 +91,7 @@ extends SecurityManager implements Cachi private final ThreadLocal<SecurityContext> threadContext; private final ThreadLocal<Boolean> inTrustedCodeRecursiveCall; - public DelegateCombinerSecurityManager(){ + public CombinerSecurityManager(){ super(); // Get context before this becomes a SecurityManager. // super() checked the permission to create a SecurityManager. @@ -106,11 +105,11 @@ extends SecurityManager implements Cachi Referrer<AccessControlContext>> internal = new NonBlockingHashMap<Referrer<AccessControlContext>, Referrer<AccessControlContext>>(); - contextCache = RC.concurrentMap(internal, Ref.SOFT, Ref.STRONG); + contextCache = RC.concurrentMap(internal, Ref.TIME, Ref.STRONG, 60000L, 0L); ConcurrentMap<Referrer<Object>, Referrer<NavigableSet<Permission>>> refmap = new NonBlockingHashMap<Referrer<Object>, Referrer<NavigableSet<Permission>>>(); - checked = RC.concurrentMap(refmap, Ref.SOFT, Ref.STRONG); + checked = RC.concurrentMap(refmap, Ref.TIME, Ref.STRONG, 20000L, 0L); g = new SecurityPermission("getPolicy"); Permission createAccPerm = new SecurityPermission("createAccessControlContext"); action = new Action(); @@ -235,7 +234,7 @@ extends SecurityManager implements Cachi */ NavigableSet<Referrer<Permission>> internal = new ConcurrentSkipListSet<Referrer<Permission>>(permCompare); - checkedPerms = RC.navigableSet(internal, Ref.SOFT); + checkedPerms = RC.navigableSet(internal, Ref.TIME, 5000L); inTrustedCodeRecursiveCall.set(Boolean.TRUE); try { NavigableSet<Permission> existed = checked.putIfAbsent(context, checkedPerms); @@ -345,13 +344,13 @@ extends SecurityManager implements Cachi * may perform a PrivilegedAction when it's * getPermissions(ProtectionDomain pd) is later called for * ProtectionDomain's not in policy cache. - * However, DelegateCombinerSecurityManager and + * However, CombinerSecurityManager and * net.jini.security.Security cannot cache their shared * ProtectionDomain, relying on the underlying policy instead. * * When a standard java permission check * is made, the AccessController picks up the domain of - * DelegateCombinerSecurityManager and net.jini.security.Security, + * CombinerSecurityManager and net.jini.security.Security, * as well as that of the policy provider. Since the policy * provider will cache it's own ProtectionDomain, but not that * of the SecurityManager and Security, a infinite circular call @@ -359,7 +358,7 @@ extends SecurityManager implements Cachi * * This will be caused by PolicyFile, attempting to determine * which permissions apply to the ProtectionDomain of - * DelegateCombinerSecurityManager and Security, then asking + * CombinerSecurityManager and Security, then asking * the SecurityManager if it has a FilePermission. * * The policy provider org.apache.river.security.ConcurrentPolicyFile @@ -545,10 +544,11 @@ extends SecurityManager implements Cachi private static boolean checkPermission(ProtectionDomain pd, Permission p){ boolean result = pd.implies(p); - if (!result && p instanceof DelegatePermission ){ - Permission candidate = ((DelegatePermission)p).getPermission(); - result = pd.implies(candidate); - } + //TODO: Enable support for Delegates +// if (!result && p instanceof DelegatePermission ){ +// Permission candidate = ((DelegatePermission)p).getPermission(); +// result = pd.implies(candidate); +// } return result; } Modified: river/jtsk/trunk/src/org/apache/river/api/security/PermissionComparator.java URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/org/apache/river/api/security/PermissionComparator.java?rev=1301929&r1=1301928&r2=1301929&view=diff ============================================================================== --- river/jtsk/trunk/src/org/apache/river/api/security/PermissionComparator.java (original) +++ river/jtsk/trunk/src/org/apache/river/api/security/PermissionComparator.java Sat Mar 17 12:29:52 2012 @@ -55,12 +55,8 @@ public class PermissionComparator implem private static final char wildcard = "*".charAt(0); public int compare(Permission o1, Permission o2) { - if (o1 == o2) return 0; - - if ( o1 == null ){ - if (o2 == null) return 0; - return -1; // o1 is less - } + if ( o1 == o2 ) return 0; + if ( o1 == null ) return -1; // o1 is less if ( o2 == null ) return 1; // o1 is greater int hash1, hash2, comparison; Modified: river/jtsk/trunk/src/org/apache/river/impl/security/dos/IsolatedExecutor.java URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/org/apache/river/impl/security/dos/IsolatedExecutor.java?rev=1301929&r1=1301928&r2=1301929&view=diff ============================================================================== --- river/jtsk/trunk/src/org/apache/river/impl/security/dos/IsolatedExecutor.java (original) +++ river/jtsk/trunk/src/org/apache/river/impl/security/dos/IsolatedExecutor.java Sat Mar 17 12:29:52 2012 @@ -37,9 +37,10 @@ import java.util.concurrent.TimeoutExcep import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; -import org.apache.river.impl.util.Ref; -import org.apache.river.impl.util.RC; -import org.apache.river.impl.util.Referrer; +import au.net.zeus.collection.Ref; +import au.net.zeus.collection.RC; +import au.net.zeus.collection.Referrer; +import java.util.Collections; /** * Performs Callable tasks in an isolated thread, which is terminated @@ -80,7 +81,8 @@ public class IsolatedExecutor<T> impleme state = State.RUNNING; policy = new AbortPolicy(); factory = new Factory(); - failedTasks = RC.list(new ArrayList<Referrer<Runnable>>(),Ref.SOFT); + // Soft reference ok in list. + failedTasks = RC.list(Collections.synchronizedList(new ArrayList<Referrer<Runnable>>()),Ref.SOFT, 1000L); nullExec = new NullExecutor(); // Can't create one lazily if memory low. isolateExecutor = new Executor(0, 1, 60L, TimeUnit.SECONDS, Copied: river/jtsk/trunk/test/src/org/apache/river/api/security/CombinerSecurityManagerTest.java (from r1290965, river/jtsk/trunk/test/src/org/apache/river/api/security/DelegateCombinerSecurityManagerTest.java) URL: http://svn.apache.org/viewvc/river/jtsk/trunk/test/src/org/apache/river/api/security/CombinerSecurityManagerTest.java?p2=river/jtsk/trunk/test/src/org/apache/river/api/security/CombinerSecurityManagerTest.java&p1=river/jtsk/trunk/test/src/org/apache/river/api/security/DelegateCombinerSecurityManagerTest.java&r1=1290965&r2=1301929&rev=1301929&view=diff ============================================================================== --- river/jtsk/trunk/test/src/org/apache/river/api/security/DelegateCombinerSecurityManagerTest.java (original) +++ river/jtsk/trunk/test/src/org/apache/river/api/security/CombinerSecurityManagerTest.java Sat Mar 17 12:29:52 2012 @@ -25,7 +25,6 @@ import java.security.cert.Certificate; import java.security.CodeSource; import java.security.AllPermission; import java.util.PropertyPermission; -import org.apache.river.api.delegates.DelegatePermission; import java.security.AccessControlContext; import java.net.SocketPermission; import java.security.ProtectionDomain; @@ -37,139 +36,139 @@ import org.junit.Test; import static org.junit.Assert.*; /** - * + * Re-enable when delegates are supported. * @author peter */ -public class DelegateCombinerSecurityManagerTest { +public class CombinerSecurityManagerTest { - public DelegateCombinerSecurityManagerTest() { + public CombinerSecurityManagerTest() { } - private ProtectionDomain[] context; - private AccessControlContext acc; - Permission p1, p2, p3, p4, p5, p6, p7, p8; - SecurityManager sm; - - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - try { - sm = new DelegateCombinerSecurityManager(); - CodeSource cs0, cs10, cs11, cs12; - p1 = new SocketPermission("*", "connect,accept"); - p2 = DelegatePermission.get(p1); - p3 = new RuntimePermission("readFileDescriptor"); - p4 = DelegatePermission.get(p3); - p5 = new PropertyPermission("java.home", "read,write"); - p6 = new PropertyPermission("java.home", "read"); - p7 = DelegatePermission.get(p6); - p8 = new AllPermission(); - cs0 = new CodeSource(null, (Certificate[]) null); - cs10 = new CodeSource(new URL("file:/foo.bar"), (Certificate[]) null); - cs11 = new CodeSource(new URL("file:/foo.too"), (Certificate[]) null); - cs12 = new CodeSource(new URL("file:/too.foo"), (Certificate[]) null); - Permissions pc1, pc2, pc3, pc4; - pc1 = new Permissions(); - pc1.add(p1); - pc1.add(p3); - pc1.add(p5); - pc2 = new Permissions(); - pc2.add(p2); - pc2.add(p4); - pc2.add(p7); - pc3 = new Permissions(); - pc3.add(p2); - pc3.add(p4); - pc3.add(p7); - pc4 = new Permissions(); - pc4.add(p8); - ProtectionDomain pd1, pd2, pd3, pd4; - pd1 = new ProtectionDomain(cs0, pc4); - pd2 = new ProtectionDomain(cs10,pc3); - pd3 = new ProtectionDomain(cs11,pc2); - pd4 = new ProtectionDomain(cs12,pc1); - context = new ProtectionDomain[]{pd1, pd2, pd3, pd4}; - acc = new AccessControlContext(context); - } catch (MalformedURLException ex) { - ex.printStackTrace(System.out); - } - } - - /** - * Test of checkPermission method, of class DelegateCombinerSecurityManager. - */ - @Test - public void testCheckPermission1() { - System.out.println("checkPermission1"); - Boolean result = Boolean.FALSE; - Boolean expectedResult = Boolean.FALSE; - try { - sm.checkPermission(p1, acc); - result = Boolean.TRUE; - } catch (SecurityException e){ - result = Boolean.FALSE; - } - assertEquals(expectedResult,result); - } - - @Test - public void testCheckPermission2() { - System.out.println("checkPermission2"); - Boolean result = Boolean.FALSE; - Boolean expectedResult = Boolean.TRUE; - try { - /* This permission check is cached, lets test performance. - */ - for (int i = 0; i < 200000; i++ ){ - sm.checkPermission(p2, acc); - } - result = Boolean.TRUE; - } catch (Exception e){ - e.printStackTrace(System.out); - result = Boolean.FALSE; - } - assertEquals(expectedResult,result); - } - - @Test - public void testCheckPermission3() { - System.out.println("checkPermission3"); - Boolean result = Boolean.FALSE; - Boolean expectedResult = Boolean.FALSE; - try { - sm.checkPermission(p3, acc); - result = Boolean.TRUE; - } catch (Exception e){ - e.printStackTrace(System.out); - result = Boolean.FALSE; - } - assertEquals(expectedResult,result); - } - - @Test - public void testCheckPermission4() { - System.out.println("checkPermission4"); - Boolean result = Boolean.FALSE; - Boolean expectedResult = Boolean.TRUE; - try { - sm.checkPermission(p4, acc); - result = Boolean.TRUE; - } catch (Exception e){ - e.printStackTrace(System.out); - result = Boolean.FALSE; - } - assertEquals(expectedResult,result); - } - /** - * Test of checkPermission method, of class DelegateCombinerSecurityManager. - */ +// private ProtectionDomain[] context; +// private AccessControlContext acc; +// Permission p1, p2, p3, p4, p5, p6, p7, p8; +// SecurityManager sm; +// +// @BeforeClass +// public static void setUpClass() throws Exception { +// } +// +// @AfterClass +// public static void tearDownClass() throws Exception { +// } +// +// @Before +// public void setUp() { +// try { +// sm = new CombinerSecurityManager(); +// CodeSource cs0, cs10, cs11, cs12; +// p1 = new SocketPermission("*", "connect,accept"); +// p2 = DelegatePermission.get(p1); +// p3 = new RuntimePermission("readFileDescriptor"); +// p4 = DelegatePermission.get(p3); +// p5 = new PropertyPermission("java.home", "read,write"); +// p6 = new PropertyPermission("java.home", "read"); +// p7 = DelegatePermission.get(p6); +// p8 = new AllPermission(); +// cs0 = new CodeSource(null, (Certificate[]) null); +// cs10 = new CodeSource(new URL("file:/foo.bar"), (Certificate[]) null); +// cs11 = new CodeSource(new URL("file:/foo.too"), (Certificate[]) null); +// cs12 = new CodeSource(new URL("file:/too.foo"), (Certificate[]) null); +// Permissions pc1, pc2, pc3, pc4; +// pc1 = new Permissions(); +// pc1.add(p1); +// pc1.add(p3); +// pc1.add(p5); +// pc2 = new Permissions(); +// pc2.add(p2); +// pc2.add(p4); +// pc2.add(p7); +// pc3 = new Permissions(); +// pc3.add(p2); +// pc3.add(p4); +// pc3.add(p7); +// pc4 = new Permissions(); +// pc4.add(p8); +// ProtectionDomain pd1, pd2, pd3, pd4; +// pd1 = new ProtectionDomain(cs0, pc4); +// pd2 = new ProtectionDomain(cs10,pc3); +// pd3 = new ProtectionDomain(cs11,pc2); +// pd4 = new ProtectionDomain(cs12,pc1); +// context = new ProtectionDomain[]{pd1, pd2, pd3, pd4}; +// acc = new AccessControlContext(context); +// } catch (MalformedURLException ex) { +// ex.printStackTrace(System.out); +// } +// } +// +// /** +// * Test of checkPermission method, of class DelegateCombinerSecurityManager. +// */ +// @Test +// public void testCheckPermission1() { +// System.out.println("checkPermission1"); +// Boolean result = Boolean.FALSE; +// Boolean expectedResult = Boolean.FALSE; +// try { +// sm.checkPermission(p1, acc); +// result = Boolean.TRUE; +// } catch (SecurityException e){ +// result = Boolean.FALSE; +// } +// assertEquals(expectedResult,result); +// } +// +// @Test +// public void testCheckPermission2() { +// System.out.println("checkPermission2"); +// Boolean result = Boolean.FALSE; +// Boolean expectedResult = Boolean.TRUE; +// try { +// /* This permission check is cached, lets test performance. +// */ +// for (int i = 0; i < 200000; i++ ){ +// sm.checkPermission(p2, acc); +// } +// result = Boolean.TRUE; +// } catch (Exception e){ +// e.printStackTrace(System.out); +// result = Boolean.FALSE; +// } +// assertEquals(expectedResult,result); +// } +// +// @Test +// public void testCheckPermission3() { +// System.out.println("checkPermission3"); +// Boolean result = Boolean.FALSE; +// Boolean expectedResult = Boolean.FALSE; +// try { +// sm.checkPermission(p3, acc); +// result = Boolean.TRUE; +// } catch (Exception e){ +// e.printStackTrace(System.out); +// result = Boolean.FALSE; +// } +// assertEquals(expectedResult,result); +// } +// +// @Test +// public void testCheckPermission4() { +// System.out.println("checkPermission4"); +// Boolean result = Boolean.FALSE; +// Boolean expectedResult = Boolean.TRUE; +// try { +// sm.checkPermission(p4, acc); +// result = Boolean.TRUE; +// } catch (Exception e){ +// e.printStackTrace(System.out); +// result = Boolean.FALSE; +// } +// assertEquals(expectedResult,result); +// } +// /** +// * Test of checkPermission method, of class DelegateCombinerSecurityManager. +// */ // @Test // public void testCheckPermission_Permission_Object() { // System.out.println("checkPermission");
