You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@river.apache.org by Peter Firmstone <ji...@zeus.net.au> on 2009/11/12 22:49:18 UTC
qa tests
I'm running into problems with the following test, it doesn't have
jsk-policy.jar on it's classpath
Anyone know where to set the classpath for this test?
The missing class file
org.apache.river.security.concurrent.ConcurrentPermissions is in
jsk-policy.jar
I haven't got jsk-policy installed in jre/lib/etc/
testClass=DelayDiscoveryAfterDiscard
testCategories=locatordiscovery,locatordiscovery_impl,impllocatordiscovery
include0=locatordiscovery.properties
include1=com/sun/jini/test/share/reggie1_0.properties
com.sun.jini.test.impl.locatordiscovery.discardDelayFirstWait=5000
com.sun.jini.test.impl.locatordiscovery.discardDelay=30000
This is where I'm running into difficulty:
Running
com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
Time is Fri Nov 13 04:46:43 EST 2009
Starting test in separate process with command:
/usr/jdk/instances/jdk1.6.0/jre/bin/java
-Djava.security.policy=file:/opt/src/ApacheRiver/trunk/qa/harness/policy/defaulttest.policy
-cp
/opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar:/opt/src/ApacheRiver/trunk/lib/jsk-platform.jar:/opt/src/ApacheRiver/trunk/lib/jsk-lib.jar
-client -Dcom.sun.jini.jsk.port=8080 -Dcom.sun.jini.qa.port=8081
-Dcom.sun.jini.jsk.home=/opt/src/ApacheRiver/trunk
-Dcom.sun.jini.qa.home=/opt/src/ApacheRiver/trunk/qa
-Dcom.sun.jini.qa.harness.harnessJar=/opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar
-Dcom.sun.jini.qa.harness.testJar=/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar
-Dcom.sun.jini.qa.harness.runjiniserver=true
-Dcom.sun.jini.qa.harness.runkitserver=true
-Djava.security.properties=file:/opt/src/ApacheRiver/trunk/qa/harness/trust/dynamic-policy.properties
-Djava.util.logging.config.file=/opt/src/ApacheRiver/trunk/qa/src/com/sun/jini/test/resources/qa1.logging
-Dcom.sun.jini.test.home=/opt/src/ApacheRiver/trunk/qa
-Dcom.sun.jini.test.port=8082
-Dcom.sun.jini.qa.harness.policies=jar:file:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar!/com/sun/jini/test/resources/jinitest.policy
-Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/ApacheRiver/trunk/qa/lib-ext:/opt/src/ApacheRiver/trunk/lib-ext
-Djava.security.debug=access com.sun.jini.qa.harness.MasterTest
com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
TIME: 04:46:45
MasterTest.doTest INFO:
============================== CALLING SETUP()
==============================
13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/], port 8081]
13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/lib-dl/], port 8080]
13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/], port 8082]
NonActGrp-out: Exception in thread "main"
java.lang.NoClassDefFoundError:
org/apache/river/security/concurrent/ConcurrentPermissions
NonActGrp-out: at java.lang.Class.forName0(Native Method)
NonActGrp-out: at java.lang.Class.forName(Class.java:247)
NonActGrp-out: at sun.misc.Service$LazyIterator.next(Service.java:271)
NonActGrp-out: at
java.rmi.server.RMIClassLoader.initializeProvider(RMIClassLoader.java:688)
NonActGrp-out: at
java.rmi.server.RMIClassLoader.access$000(RMIClassLoader.java:93)
NonActGrp-out: at
java.rmi.server.RMIClassLoader$1.run(RMIClassLoader.java:103)
NonActGrp-out: at java.security.AccessController.doPrivileged(Native
Method)
NonActGrp-out: at
java.rmi.server.RMIClassLoader.<clinit>(RMIClassLoader.java:100)
NonActGrp-out: at
sun.rmi.server.MarshalOutputStream.annotateClass(MarshalOutputStream.java:75)
NonActGrp-out: at
java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1250)
NonActGrp-out: at
java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1203)
NonActGrp-out: at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1387)
NonActGrp-out: at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
NonActGrp-out: at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
NonActGrp-out: at
java.rmi.MarshalledObject.<init>(MarshalledObject.java:101)
NonActGrp-out: at
com.sun.jini.qa.harness.NonActivatableGroupImpl.main(Unknown Source)
NonActGrp-out: Caused by: java.lang.ClassNotFoundException:
org.apache.river.security.concurrent.ConcurrentPermissions
NonActGrp-out: at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
NonActGrp-out: at java.security.AccessController.doPrivileged(Native
Method)
NonActGrp-out: at
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
NonActGrp-out: at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
NonActGrp-out: at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
NonActGrp-out: at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
NonActGrp-out: at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
NonActGrp-out: ... 16 more
Re: qa tests
Posted by Sim IJskes - QCG <si...@qcg.nl>.
The doc target in the qa/build.xml complains about memory under linux as
well. I've increased it stepwise to 256M and now it stopped complaining.
Do you want a patch, or can you fix it without? :-)
Gr. Sim
--
QCG, Software voor het MKB, 071-5890970, http://www.qcg.nl
Quality Consultancy Group b.v., Leiderdorp, Kvk Leiden: 28088397
Re: qa tests
Posted by Peter Firmstone <ji...@zeus.net.au>.
The patch is now available on River-323
Regards,
Peter.
Peter Firmstone wrote:
> Sim IJskes - QCG wrote:
>> Peter Firmstone wrote:
>>> I've also created a new interface RevokeablePermissionCollection,
>>> with the ability to revoke(Permission ... permission) for read write
>>> PermissionCollection's and revokeAll(Permission permission) for
>>> read only and read write PermissionCollection's. My implementation
>>> wraps any existing PermissionCollection, the wrapper is also using a
>>> ReentrantReadWriteLock to allow concurrent reads and synchronized
>>> writes. I figured this would fit in nicely with DynamicPolicy.
>>
>> Am i right in thinking that this would help to make jini more
>> 'embeddable'?
>>
>> Gr. Sim
>>
> I think so, it's still an early implementation, I don't understand the
> full ramifications yet. It should benefit any environment where it is
> undesirable to shut down the jvm to remove Permission's.
>
> Regards,
>
> Peter.
>
Re: qa tests
Posted by Peter Firmstone <ji...@zeus.net.au>.
Sim IJskes - QCG wrote:
> Peter Firmstone wrote:
>> I've also created a new interface RevokeablePermissionCollection,
>> with the ability to revoke(Permission ... permission) for read write
>> PermissionCollection's and revokeAll(Permission permission) for read
>> only and read write PermissionCollection's. My implementation wraps
>> any existing PermissionCollection, the wrapper is also using a
>> ReentrantReadWriteLock to allow concurrent reads and synchronized
>> writes. I figured this would fit in nicely with DynamicPolicy.
>
> Am i right in thinking that this would help to make jini more
> 'embeddable'?
>
> Gr. Sim
>
I think so, it's still an early implementation, I don't understand the
full ramifications yet. It should benefit any environment where it is
undesirable to shut down the jvm to remove Permission's.
Regards,
Peter.
Re: qa tests
Posted by Sim IJskes - QCG <si...@qcg.nl>.
Peter Firmstone wrote:
> I've also created a new interface RevokeablePermissionCollection, with
> the ability to revoke(Permission ... permission) for read write
> PermissionCollection's and revokeAll(Permission permission) for read
> only and read write PermissionCollection's. My implementation wraps any
> existing PermissionCollection, the wrapper is also using a
> ReentrantReadWriteLock to allow concurrent reads and synchronized
> writes. I figured this would fit in nicely with DynamicPolicy.
Am i right in thinking that this would help to make jini more 'embeddable'?
Gr. Sim
Re: qa tests
Posted by Peter Firmstone <ji...@zeus.net.au>.
Peter Firmstone wrote:
> I'm implementing a replacement for java.security.Permissions called
> ConcurrentPermissions.
>
> The majority of tests (jtreg) are passing, however I haven't committed
> this due to the about to be released River 2.2.0 still supporting Java
> 1.4 (we voted on this some time back) and my implementation using Java
> 5 language and libraries.
>
> I've also created a new interface RevokeablePermissionCollection,
I've changed my mind, it's now an abstract class, to reduce instanceof
checks and upcasts.
> with the ability to revoke(Permission ... permission) for read write
> PermissionCollection's and revokeAll(Permission permission) for read
> only and read write PermissionCollection's. My implementation wraps
> any existing PermissionCollection, the wrapper is also using a
> ReentrantReadWriteLock to allow concurrent reads and synchronized
> writes. I figured this would fit in nicely with DynamicPolicy.
>
> Seeing its almost finished, I'd be prepared to commit it if no one has
> any objections. I'd like a way to make it's use optional but haven't
> thought that part out yet.
>
> I'll post a patch update on jira River-323 soon, then I'll commit your
> patches.
>
> Regards,
>
> Peter.
>
> Sim IJskes - QCG wrote:
>> Peter Firmstone wrote:
>>> I'm running into problems with the following test, it doesn't have
>>> jsk-policy.jar on it's classpath
>>>
>>> Anyone know where to set the classpath for this test?
>>>
>>> The missing class file
>>> org.apache.river.security.concurrent.ConcurrentPermissions is in
>>> jsk-policy.jar
>>>
>>
>> I'm running the test from the trunk release (r834002) and a can't
>> find a org.apache.river class. It doesn't either though.
>>
>> Where can i find the org.apache.river stuff?
>>
>> Gr. Sim
>>
>
>
Re: qa tests
Posted by Peter Firmstone <ji...@zeus.net.au>.
I'm implementing a replacement for java.security.Permissions called
ConcurrentPermissions.
The majority of tests (jtreg) are passing, however I haven't committed
this due to the about to be released River 2.2.0 still supporting Java
1.4 (we voted on this some time back) and my implementation using Java 5
language and libraries.
I've also created a new interface RevokeablePermissionCollection, with
the ability to revoke(Permission ... permission) for read write
PermissionCollection's and revokeAll(Permission permission) for read
only and read write PermissionCollection's. My implementation wraps any
existing PermissionCollection, the wrapper is also using a
ReentrantReadWriteLock to allow concurrent reads and synchronized
writes. I figured this would fit in nicely with DynamicPolicy.
Seeing its almost finished, I'd be prepared to commit it if no one has
any objections. I'd like a way to make it's use optional but haven't
thought that part out yet.
I'll post a patch update on jira River-323 soon, then I'll commit your
patches.
Regards,
Peter.
Sim IJskes - QCG wrote:
> Peter Firmstone wrote:
>> I'm running into problems with the following test, it doesn't have
>> jsk-policy.jar on it's classpath
>>
>> Anyone know where to set the classpath for this test?
>>
>> The missing class file
>> org.apache.river.security.concurrent.ConcurrentPermissions is in
>> jsk-policy.jar
>>
>
> I'm running the test from the trunk release (r834002) and a can't find
> a org.apache.river class. It doesn't either though.
>
> Where can i find the org.apache.river stuff?
>
> Gr. Sim
>
Re: qa tests
Posted by Sim IJskes - QCG <si...@qcg.nl>.
Peter Firmstone wrote:
> I'm running into problems with the following test, it doesn't have
> jsk-policy.jar on it's classpath
>
> Anyone know where to set the classpath for this test?
>
> The missing class file
> org.apache.river.security.concurrent.ConcurrentPermissions is in
> jsk-policy.jar
>
I'm running the test from the trunk release (r834002) and a can't find a
org.apache.river class. It doesn't either though.
Where can i find the org.apache.river stuff?
Gr. Sim
--
QCG, Software voor het MKB, 071-5890970, http://www.qcg.nl
Quality Consultancy Group b.v., Leiderdorp, Kvk Leiden: 28088397
Re: qa tests - how to set client jvm classpath?
Posted by Peter Firmstone <ji...@zeus.net.au>.
I'm trying to figure out how to set the default classpath for client
jvm's so they can see jsk-policy.jar
I've tried setting it in qa/build.xml
and
qaDefaults.properties
never mind will look into it further on the weekend.
Peter Firmstone wrote:
> I'm running into problems with the following test, it doesn't have
> jsk-policy.jar on it's classpath
>
> Anyone know where to set the classpath for this test?
>
> The missing class file
> org.apache.river.security.concurrent.ConcurrentPermissions is in
> jsk-policy.jar
>
> I haven't got jsk-policy installed in jre/lib/etc/
>
> testClass=DelayDiscoveryAfterDiscard
> testCategories=locatordiscovery,locatordiscovery_impl,impllocatordiscovery
>
> include0=locatordiscovery.properties
> include1=com/sun/jini/test/share/reggie1_0.properties
> com.sun.jini.test.impl.locatordiscovery.discardDelayFirstWait=5000
> com.sun.jini.test.impl.locatordiscovery.discardDelay=30000
>
> This is where I'm running into difficulty:
>
> Running
> com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
> Time is Fri Nov 13 04:46:43 EST 2009
> Starting test in separate process with command:
> /usr/jdk/instances/jdk1.6.0/jre/bin/java
> -Djava.security.policy=file:/opt/src/ApacheRiver/trunk/qa/harness/policy/defaulttest.policy
> -cp
> /opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar:/opt/src/ApacheRiver/trunk/lib/jsk-platform.jar:/opt/src/ApacheRiver/trunk/lib/jsk-lib.jar
> -client -Dcom.sun.jini.jsk.port=8080 -Dcom.sun.jini.qa.port=8081
> -Dcom.sun.jini.jsk.home=/opt/src/ApacheRiver/trunk
> -Dcom.sun.jini.qa.home=/opt/src/ApacheRiver/trunk/qa
> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar
> -Dcom.sun.jini.qa.harness.testJar=/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar
> -Dcom.sun.jini.qa.harness.runjiniserver=true
> -Dcom.sun.jini.qa.harness.runkitserver=true
> -Djava.security.properties=file:/opt/src/ApacheRiver/trunk/qa/harness/trust/dynamic-policy.properties
> -Djava.util.logging.config.file=/opt/src/ApacheRiver/trunk/qa/src/com/sun/jini/test/resources/qa1.logging
> -Dcom.sun.jini.test.home=/opt/src/ApacheRiver/trunk/qa
> -Dcom.sun.jini.test.port=8082
> -Dcom.sun.jini.qa.harness.policies=jar:file:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar!/com/sun/jini/test/resources/jinitest.policy
> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/ApacheRiver/trunk/qa/lib-ext:/opt/src/ApacheRiver/trunk/lib-ext
> -Djava.security.debug=access com.sun.jini.qa.harness.MasterTest
> com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
>
> TIME: 04:46:45
>
> MasterTest.doTest INFO:
> ============================== CALLING SETUP()
> ==============================
>
> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/], port
> 8081]
>
> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/lib-dl/], port
> 8080]
>
> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/], port
> 8082]
>
> NonActGrp-out: Exception in thread "main"
> java.lang.NoClassDefFoundError:
> org/apache/river/security/concurrent/ConcurrentPermissions
> NonActGrp-out: at java.lang.Class.forName0(Native Method)
> NonActGrp-out: at java.lang.Class.forName(Class.java:247)
> NonActGrp-out: at
> sun.misc.Service$LazyIterator.next(Service.java:271)
> NonActGrp-out: at
> java.rmi.server.RMIClassLoader.initializeProvider(RMIClassLoader.java:688)
>
> NonActGrp-out: at
> java.rmi.server.RMIClassLoader.access$000(RMIClassLoader.java:93)
> NonActGrp-out: at
> java.rmi.server.RMIClassLoader$1.run(RMIClassLoader.java:103)
> NonActGrp-out: at
> java.security.AccessController.doPrivileged(Native Method)
> NonActGrp-out: at
> java.rmi.server.RMIClassLoader.<clinit>(RMIClassLoader.java:100)
> NonActGrp-out: at
> sun.rmi.server.MarshalOutputStream.annotateClass(MarshalOutputStream.java:75)
>
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1250)
>
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1203)
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1387)
>
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> NonActGrp-out: at
> java.rmi.MarshalledObject.<init>(MarshalledObject.java:101)
> NonActGrp-out: at
> com.sun.jini.qa.harness.NonActivatableGroupImpl.main(Unknown Source)
> NonActGrp-out: Caused by: java.lang.ClassNotFoundException:
> org.apache.river.security.concurrent.ConcurrentPermissions
> NonActGrp-out: at
> java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> NonActGrp-out: at
> java.security.AccessController.doPrivileged(Native Method)
> NonActGrp-out: at
> java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> NonActGrp-out: at
> java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> NonActGrp-out: at
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> NonActGrp-out: at
> java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> NonActGrp-out: at
> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> NonActGrp-out: ... 16 more
>
>
Re: qa tests
Posted by Peter Firmstone <ji...@zeus.net.au>.
Note it would also be possible to utilise an OSGi service instead of
ServiceLoader to manage this sort of pluggability.
Peter Firmstone wrote:
> Initially I replaced all the instances of Permissions with
> ConcurrentPermissions to maximise testing, but it's purpose is a
> utility class for DynamicPolicyProvider which lives in jsk-policy.jar
> However having said that, the class doesn't really need AllPermission,
> it uses reflection on class constructors to resolve
> UnresolvedPermission but that's about all it needs.
>
> ConcurrentPermissions totally destabilised GrantPermission, which uses
> lazy construction and has fields that aren't synchronized, its current
> stability is reliant on Permissions heavy synchronization and single
> threadedness.
>
> Ideally, all PermissionCollection instances returned by
> Permission.getPermissionCollection shouldn't use any internal
> synchronization, unless implies() is a mutator method, since
> ConcurrentPermissions manages this for us using a wrapper called
> MultiReadPermissionCollection. Last time I looked at Permissions, it
> synchronized on all calls, it's unnecessary and hampers performance
> for the average PermissionCollection to try and manage their own
> synchronization. A better solution would be similar to what was done
> with Vector, ArrayList and Collections.
>
> After examining the code, I've decided to reimplement
> DynamicPolicyProvider and GrantPermission.
>
> I'm writing a service utilising java.util.ServiceLoader called
> DynamicPolicyProviderSpi so that my implementation is a pluggable
> component, it requires Java5, for more limited environments that
> don't need concurrency, the earlier implementation is smaller and may
> be more suitable, I intend to make it pluggable also.
>
> In addition, the new implementation will be able to revoke permissions
> too, rather than just accumulating Permission's over time.
>
> So we'll end up with the choice of two implementations, jsk-policy.jar
> and jsk-policy-concurrent.jar
>
> Cheers,
>
> Peter.
>
> Gregg Wonderly wrote:
>> I am curious why you put that into jsk-policy.jar? That class
>> doesn't have the same requirements for class loading that the
>> contents of jsk-policy.jar once had does it?
>>
>> Gregg Wonderly
>>
>> Peter Firmstone wrote:
>>> I'm running into problems with the following test, it doesn't have
>>> jsk-policy.jar on it's classpath
>>>
>>> Anyone know where to set the classpath for this test?
>>>
>>> The missing class file
>>> org.apache.river.security.concurrent.ConcurrentPermissions is in
>>> jsk-policy.jar
>>>
>>> I haven't got jsk-policy installed in jre/lib/etc/
>>>
>>> testClass=DelayDiscoveryAfterDiscard
>>> testCategories=locatordiscovery,locatordiscovery_impl,impllocatordiscovery
>>>
>>> include0=locatordiscovery.properties
>>> include1=com/sun/jini/test/share/reggie1_0.properties
>>> com.sun.jini.test.impl.locatordiscovery.discardDelayFirstWait=5000
>>> com.sun.jini.test.impl.locatordiscovery.discardDelay=30000
>>>
>>> This is where I'm running into difficulty:
>>>
>>> Running
>>> com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
>>> Time is Fri Nov 13 04:46:43 EST 2009
>>> Starting test in separate process with command:
>>> /usr/jdk/instances/jdk1.6.0/jre/bin/java
>>> -Djava.security.policy=file:/opt/src/ApacheRiver/trunk/qa/harness/policy/defaulttest.policy
>>> -cp
>>> /opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar:/opt/src/ApacheRiver/trunk/lib/jsk-platform.jar:/opt/src/ApacheRiver/trunk/lib/jsk-lib.jar
>>> -client -Dcom.sun.jini.jsk.port=8080 -Dcom.sun.jini.qa.port=8081
>>> -Dcom.sun.jini.jsk.home=/opt/src/ApacheRiver/trunk
>>> -Dcom.sun.jini.qa.home=/opt/src/ApacheRiver/trunk/qa
>>> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar
>>> -Dcom.sun.jini.qa.harness.testJar=/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar
>>> -Dcom.sun.jini.qa.harness.runjiniserver=true
>>> -Dcom.sun.jini.qa.harness.runkitserver=true
>>> -Djava.security.properties=file:/opt/src/ApacheRiver/trunk/qa/harness/trust/dynamic-policy.properties
>>> -Djava.util.logging.config.file=/opt/src/ApacheRiver/trunk/qa/src/com/sun/jini/test/resources/qa1.logging
>>> -Dcom.sun.jini.test.home=/opt/src/ApacheRiver/trunk/qa
>>> -Dcom.sun.jini.test.port=8082
>>> -Dcom.sun.jini.qa.harness.policies=jar:file:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar!/com/sun/jini/test/resources/jinitest.policy
>>> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/ApacheRiver/trunk/qa/lib-ext:/opt/src/ApacheRiver/trunk/lib-ext
>>> -Djava.security.debug=access com.sun.jini.qa.harness.MasterTest
>>> com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
>>>
>>> TIME: 04:46:45
>>>
>>> MasterTest.doTest INFO:
>>> ============================== CALLING SETUP()
>>> ==============================
>>>
>>> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
>>> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/],
>>> port 8081]
>>>
>>> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
>>> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/lib-dl/],
>>> port 8080]
>>>
>>> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
>>> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/],
>>> port 8082]
>>>
>>> NonActGrp-out: Exception in thread "main"
>>> java.lang.NoClassDefFoundError:
>>> org/apache/river/security/concurrent/ConcurrentPermissions
>>> NonActGrp-out: at java.lang.Class.forName0(Native Method)
>>> NonActGrp-out: at java.lang.Class.forName(Class.java:247)
>>> NonActGrp-out: at
>>> sun.misc.Service$LazyIterator.next(Service.java:271)
>>> NonActGrp-out: at
>>> java.rmi.server.RMIClassLoader.initializeProvider(RMIClassLoader.java:688)
>>>
>>> NonActGrp-out: at
>>> java.rmi.server.RMIClassLoader.access$000(RMIClassLoader.java:93)
>>> NonActGrp-out: at
>>> java.rmi.server.RMIClassLoader$1.run(RMIClassLoader.java:103)
>>> NonActGrp-out: at
>>> java.security.AccessController.doPrivileged(Native Method)
>>> NonActGrp-out: at
>>> java.rmi.server.RMIClassLoader.<clinit>(RMIClassLoader.java:100)
>>> NonActGrp-out: at
>>> sun.rmi.server.MarshalOutputStream.annotateClass(MarshalOutputStream.java:75)
>>>
>>> NonActGrp-out: at
>>> java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1250)
>>>
>>> NonActGrp-out: at
>>> java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1203)
>>> NonActGrp-out: at
>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1387)
>>>
>>> NonActGrp-out: at
>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>> NonActGrp-out: at
>>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>>> NonActGrp-out: at
>>> java.rmi.MarshalledObject.<init>(MarshalledObject.java:101)
>>> NonActGrp-out: at
>>> com.sun.jini.qa.harness.NonActivatableGroupImpl.main(Unknown Source)
>>> NonActGrp-out: Caused by: java.lang.ClassNotFoundException:
>>> org.apache.river.security.concurrent.ConcurrentPermissions
>>> NonActGrp-out: at
>>> java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>>> NonActGrp-out: at
>>> java.security.AccessController.doPrivileged(Native Method)
>>> NonActGrp-out: at
>>> java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>>> NonActGrp-out: at
>>> java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>>> NonActGrp-out: at
>>> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
>>> NonActGrp-out: at
>>> java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> NonActGrp-out: at
>>> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>>> NonActGrp-out: ... 16 more
>>>
>>>
>>
>>
>
>
Re: qa tests
Posted by Peter Firmstone <ji...@zeus.net.au>.
Initially I replaced all the instances of Permissions with
ConcurrentPermissions to maximise testing, but it's purpose is a utility
class for DynamicPolicyProvider which lives in jsk-policy.jar However
having said that, the class doesn't really need AllPermission, it uses
reflection on class constructors to resolve UnresolvedPermission but
that's about all it needs.
ConcurrentPermissions totally destabilised GrantPermission, which uses
lazy construction and has fields that aren't synchronized, its current
stability is reliant on Permissions heavy synchronization and single
threadedness.
Ideally, all PermissionCollection instances returned by
Permission.getPermissionCollection shouldn't use any internal
synchronization, unless implies() is a mutator method, since
ConcurrentPermissions manages this for us using a wrapper called
MultiReadPermissionCollection. Last time I looked at Permissions, it
synchronized on all calls, it's unnecessary and hampers performance for
the average PermissionCollection to try and manage their own
synchronization. A better solution would be similar to what was done
with Vector, ArrayList and Collections.
After examining the code, I've decided to reimplement
DynamicPolicyProvider and GrantPermission.
I'm writing a service utilising java.util.ServiceLoader called
DynamicPolicyProviderSpi so that my implementation is a pluggable
component, it requires Java5, for more limited environments that don't
need concurrency, the earlier implementation is smaller and may be more
suitable, I intend to make it pluggable also.
In addition, the new implementation will be able to revoke permissions
too, rather than just accumulating Permission's over time.
So we'll end up with the choice of two implementations, jsk-policy.jar
and jsk-policy-concurrent.jar
Cheers,
Peter.
Gregg Wonderly wrote:
> I am curious why you put that into jsk-policy.jar? That class doesn't
> have the same requirements for class loading that the contents of
> jsk-policy.jar once had does it?
>
> Gregg Wonderly
>
> Peter Firmstone wrote:
>> I'm running into problems with the following test, it doesn't have
>> jsk-policy.jar on it's classpath
>>
>> Anyone know where to set the classpath for this test?
>>
>> The missing class file
>> org.apache.river.security.concurrent.ConcurrentPermissions is in
>> jsk-policy.jar
>>
>> I haven't got jsk-policy installed in jre/lib/etc/
>>
>> testClass=DelayDiscoveryAfterDiscard
>> testCategories=locatordiscovery,locatordiscovery_impl,impllocatordiscovery
>>
>> include0=locatordiscovery.properties
>> include1=com/sun/jini/test/share/reggie1_0.properties
>> com.sun.jini.test.impl.locatordiscovery.discardDelayFirstWait=5000
>> com.sun.jini.test.impl.locatordiscovery.discardDelay=30000
>>
>> This is where I'm running into difficulty:
>>
>> Running
>> com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
>> Time is Fri Nov 13 04:46:43 EST 2009
>> Starting test in separate process with command:
>> /usr/jdk/instances/jdk1.6.0/jre/bin/java
>> -Djava.security.policy=file:/opt/src/ApacheRiver/trunk/qa/harness/policy/defaulttest.policy
>> -cp
>> /opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar:/opt/src/ApacheRiver/trunk/lib/jsk-platform.jar:/opt/src/ApacheRiver/trunk/lib/jsk-lib.jar
>> -client -Dcom.sun.jini.jsk.port=8080 -Dcom.sun.jini.qa.port=8081
>> -Dcom.sun.jini.jsk.home=/opt/src/ApacheRiver/trunk
>> -Dcom.sun.jini.qa.home=/opt/src/ApacheRiver/trunk/qa
>> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar
>> -Dcom.sun.jini.qa.harness.testJar=/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar
>> -Dcom.sun.jini.qa.harness.runjiniserver=true
>> -Dcom.sun.jini.qa.harness.runkitserver=true
>> -Djava.security.properties=file:/opt/src/ApacheRiver/trunk/qa/harness/trust/dynamic-policy.properties
>> -Djava.util.logging.config.file=/opt/src/ApacheRiver/trunk/qa/src/com/sun/jini/test/resources/qa1.logging
>> -Dcom.sun.jini.test.home=/opt/src/ApacheRiver/trunk/qa
>> -Dcom.sun.jini.test.port=8082
>> -Dcom.sun.jini.qa.harness.policies=jar:file:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar!/com/sun/jini/test/resources/jinitest.policy
>> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/ApacheRiver/trunk/qa/lib-ext:/opt/src/ApacheRiver/trunk/lib-ext
>> -Djava.security.debug=access com.sun.jini.qa.harness.MasterTest
>> com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
>>
>> TIME: 04:46:45
>>
>> MasterTest.doTest INFO:
>> ============================== CALLING SETUP()
>> ==============================
>>
>> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
>> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/], port
>> 8081]
>>
>> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
>> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/lib-dl/], port
>> 8080]
>>
>> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
>> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/], port
>> 8082]
>>
>> NonActGrp-out: Exception in thread "main"
>> java.lang.NoClassDefFoundError:
>> org/apache/river/security/concurrent/ConcurrentPermissions
>> NonActGrp-out: at java.lang.Class.forName0(Native Method)
>> NonActGrp-out: at java.lang.Class.forName(Class.java:247)
>> NonActGrp-out: at
>> sun.misc.Service$LazyIterator.next(Service.java:271)
>> NonActGrp-out: at
>> java.rmi.server.RMIClassLoader.initializeProvider(RMIClassLoader.java:688)
>>
>> NonActGrp-out: at
>> java.rmi.server.RMIClassLoader.access$000(RMIClassLoader.java:93)
>> NonActGrp-out: at
>> java.rmi.server.RMIClassLoader$1.run(RMIClassLoader.java:103)
>> NonActGrp-out: at
>> java.security.AccessController.doPrivileged(Native Method)
>> NonActGrp-out: at
>> java.rmi.server.RMIClassLoader.<clinit>(RMIClassLoader.java:100)
>> NonActGrp-out: at
>> sun.rmi.server.MarshalOutputStream.annotateClass(MarshalOutputStream.java:75)
>>
>> NonActGrp-out: at
>> java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1250)
>>
>> NonActGrp-out: at
>> java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1203)
>> NonActGrp-out: at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1387)
>>
>> NonActGrp-out: at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>> NonActGrp-out: at
>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>> NonActGrp-out: at
>> java.rmi.MarshalledObject.<init>(MarshalledObject.java:101)
>> NonActGrp-out: at
>> com.sun.jini.qa.harness.NonActivatableGroupImpl.main(Unknown Source)
>> NonActGrp-out: Caused by: java.lang.ClassNotFoundException:
>> org.apache.river.security.concurrent.ConcurrentPermissions
>> NonActGrp-out: at
>> java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>> NonActGrp-out: at
>> java.security.AccessController.doPrivileged(Native Method)
>> NonActGrp-out: at
>> java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> NonActGrp-out: at
>> java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>> NonActGrp-out: at
>> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
>> NonActGrp-out: at
>> java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> NonActGrp-out: at
>> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>> NonActGrp-out: ... 16 more
>>
>>
>
>
Re: qa tests
Posted by Gregg Wonderly <gr...@wonderly.org>.
I am curious why you put that into jsk-policy.jar? That class doesn't have the
same requirements for class loading that the contents of jsk-policy.jar once had
does it?
Gregg Wonderly
Peter Firmstone wrote:
> I'm running into problems with the following test, it doesn't have
> jsk-policy.jar on it's classpath
>
> Anyone know where to set the classpath for this test?
>
> The missing class file
> org.apache.river.security.concurrent.ConcurrentPermissions is in
> jsk-policy.jar
>
> I haven't got jsk-policy installed in jre/lib/etc/
>
> testClass=DelayDiscoveryAfterDiscard
> testCategories=locatordiscovery,locatordiscovery_impl,impllocatordiscovery
> include0=locatordiscovery.properties
> include1=com/sun/jini/test/share/reggie1_0.properties
> com.sun.jini.test.impl.locatordiscovery.discardDelayFirstWait=5000
> com.sun.jini.test.impl.locatordiscovery.discardDelay=30000
>
> This is where I'm running into difficulty:
>
> Running
> com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
> Time is Fri Nov 13 04:46:43 EST 2009
> Starting test in separate process with command:
> /usr/jdk/instances/jdk1.6.0/jre/bin/java
> -Djava.security.policy=file:/opt/src/ApacheRiver/trunk/qa/harness/policy/defaulttest.policy
> -cp
> /opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar:/opt/src/ApacheRiver/trunk/lib/jsk-platform.jar:/opt/src/ApacheRiver/trunk/lib/jsk-lib.jar
> -client -Dcom.sun.jini.jsk.port=8080 -Dcom.sun.jini.qa.port=8081
> -Dcom.sun.jini.jsk.home=/opt/src/ApacheRiver/trunk
> -Dcom.sun.jini.qa.home=/opt/src/ApacheRiver/trunk/qa
> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/ApacheRiver/trunk/qa/lib/jiniharness.jar
> -Dcom.sun.jini.qa.harness.testJar=/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar
> -Dcom.sun.jini.qa.harness.runjiniserver=true
> -Dcom.sun.jini.qa.harness.runkitserver=true
> -Djava.security.properties=file:/opt/src/ApacheRiver/trunk/qa/harness/trust/dynamic-policy.properties
> -Djava.util.logging.config.file=/opt/src/ApacheRiver/trunk/qa/src/com/sun/jini/test/resources/qa1.logging
> -Dcom.sun.jini.test.home=/opt/src/ApacheRiver/trunk/qa
> -Dcom.sun.jini.test.port=8082
> -Dcom.sun.jini.qa.harness.policies=jar:file:/opt/src/ApacheRiver/trunk/qa/lib/jinitests.jar!/com/sun/jini/test/resources/jinitest.policy
> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/ApacheRiver/trunk/qa/lib-ext:/opt/src/ApacheRiver/trunk/lib-ext
> -Djava.security.debug=access com.sun.jini.qa.harness.MasterTest
> com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
>
> TIME: 04:46:45
>
> MasterTest.doTest INFO:
> ============================== CALLING SETUP()
> ==============================
>
> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/], port 8081]
>
> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/lib-dl/], port 8080]
>
> 13/11/2009 04:46:46 com.sun.jini.tool.ClassServer run
> INFO: ClassServer started [[/opt/src/ApacheRiver/trunk/qa/lib/], port 8082]
>
> NonActGrp-out: Exception in thread "main"
> java.lang.NoClassDefFoundError:
> org/apache/river/security/concurrent/ConcurrentPermissions
> NonActGrp-out: at java.lang.Class.forName0(Native Method)
> NonActGrp-out: at java.lang.Class.forName(Class.java:247)
> NonActGrp-out: at sun.misc.Service$LazyIterator.next(Service.java:271)
> NonActGrp-out: at
> java.rmi.server.RMIClassLoader.initializeProvider(RMIClassLoader.java:688)
> NonActGrp-out: at
> java.rmi.server.RMIClassLoader.access$000(RMIClassLoader.java:93)
> NonActGrp-out: at
> java.rmi.server.RMIClassLoader$1.run(RMIClassLoader.java:103)
> NonActGrp-out: at java.security.AccessController.doPrivileged(Native
> Method)
> NonActGrp-out: at
> java.rmi.server.RMIClassLoader.<clinit>(RMIClassLoader.java:100)
> NonActGrp-out: at
> sun.rmi.server.MarshalOutputStream.annotateClass(MarshalOutputStream.java:75)
>
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1250)
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1203)
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1387)
>
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> NonActGrp-out: at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> NonActGrp-out: at
> java.rmi.MarshalledObject.<init>(MarshalledObject.java:101)
> NonActGrp-out: at
> com.sun.jini.qa.harness.NonActivatableGroupImpl.main(Unknown Source)
> NonActGrp-out: Caused by: java.lang.ClassNotFoundException:
> org.apache.river.security.concurrent.ConcurrentPermissions
> NonActGrp-out: at
> java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> NonActGrp-out: at java.security.AccessController.doPrivileged(Native
> Method)
> NonActGrp-out: at
> java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> NonActGrp-out: at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> NonActGrp-out: at
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> NonActGrp-out: at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> NonActGrp-out: at
> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> NonActGrp-out: ... 16 more
>
>