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 2011/12/24 12:36:07 UTC

Help needed with concurrency bug

I'm experiencing some failing tests:

run.tests=com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td,\
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td,\
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td,\
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td,\
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td,\
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td

Not sure about the last test which is failing a permission check, but 
the first 5 are dropping events, without there being any security 
exceptions, so I'm guessing the policy's concurrency has exposed another 
bug.

http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/

Any help would be much appreciated ;)

bash-3.00$ ant run-tests
Buildfile: build.xml

james-brown:
   [delete] Deleting directory 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
    [mkdir] Created dir: 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
    [touch] Creating 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul/soul.201112241952044566

run-tests:
     [java]
     [java] -----------------------------------------
     [java] CONFIGURATION FILE:
     [java]
     [java]    
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/qaHarness.prop
     [java]
     [java] -----------------------------------------
     [java] SETTING UP THE TEST LIST:
     [java]
     [java]    Adding test: 
com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
     [java]    Adding test: 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
     [java]    Adding test: 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
     [java]    Adding test: 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
     [java]    Adding test: 
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
     [java]    Adding test: 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java]
     [java] -----------------------------------------
     [java] GENERAL HARNESS CONFIGURATION INFORMATION:
     [java]
     [java]    Date started:
     [java]       Sat Dec 24 19:52:47 EST 2011
     [java]    Installation directory of the JSK:
     [java]       
com.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
     [java]    Installation directory of the harness:
     [java]       
com.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
     [java]    Categories being tested:
     [java]       categories=No Categories
     [java] -----------------------------------------
     [java] ENVIRONMENT PROPERTIES:
     [java]
     [java]    JVM information:
     [java]       Java HotSpot(TM) Server VM, 20.0-b11, 32 bit VM mode
     [java]       Sun Microsystems Inc.
     [java]    OS information:
     [java]       SunOS, 5.10, sparc
     [java]
     [java] -----------------------------------------
     [java] STARTING TO RUN THE TESTS
     [java]
     [java]
     [java] Running 
com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
     [java] Time is Sat Dec 24 19:52:47 EST 2011
     [java] Starting test in separate process with command:
     [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java 
-Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy 
-Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar 
-cp 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar 
-client 
-Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
-Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 
-Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy 
-Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
-Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar 
-Dcom.sun.jini.qa.harness.runjiniserver=true 
-Dcom.sun.jini.qa.harness.runkitserver=true 
-Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
-Dcom.sun.jini.qa.harness.testhosts= 
-Djava.util.logging.config.file=/home/peter/logging.properties 
-Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.test.port=9082 
-Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
com.sun.jini.qa.harness.MasterTest 
com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
     [java]
     [java] TIME: 7:52:51 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================== CALLING SETUP() 
==============================
     [java]
     [java] 24/12/2011 7:52:52 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
     [java] 24/12/2011 7:52:52 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
     [java] 24/12/2011 7:52:53 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
     [java] NonActGrp-out: 24/12/2011 7:53:06 PM 
com.sun.jini.reggie.RegistrarImpl init
     [java] NonActGrp-out: INFO: started Reggie: 
c14d2980-a0fa-49e5-b2fc-c9cf521828a4, [], 
ConstrainableLookupLocator[[jini://bluto/], [null]]
     [java]
     [java] TIME: 7:53:34 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] =============================== CALLING RUN() 
===============================
     [java]
     [java] com.sun.jini.qa.harness.TestException: # of Events Received 
(35) != # of Events Expected (50)
     [java]     at 
com.sun.jini.test.spec.lookupservice.test_set00.MultipleEvntLeaseRenewals.verifyNotification(MultipleEvntLeaseRenewals.java:285)
     [java]     at 
com.sun.jini.test.spec.lookupservice.test_set00.MultipleEvntLeaseRenewals.run(MultipleEvntLeaseRenewals.java:218)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
     [java]
     [java] TIME: 7:58:29 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================ CALLING TEARDOWN() 
=============================
     [java]
     [java] NonActGrp-out: 24/12/2011 7:58:30 PM 
com.sun.jini.reggie.RegistrarImpl destroy
     [java] NonActGrp-out: INFO: starting Reggie shutdown
     [java] NonActGrp-out: 24/12/2011 7:58:30 PM 
com.sun.jini.reggie.RegistrarImpl$DestroyThread run
     [java] NonActGrp-out: INFO: Reggie shutdown completed
     [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java]
     [java] TIME: 7:58:33 PM
     [java]
     [java] Test process was destroyed and returned code 1
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (35) != # of 
Events Expected (50)
     [java]
     [java]
     [java] -----------------------------------------
     [java]
     [java] Running 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
     [java] Time is Sat Dec 24 19:58:38 EST 2011
     [java] Starting test in separate process with command:
     [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java 
-Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy 
-Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar 
-cp 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar 
-client 
-Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
-Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 
-Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy 
-Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
-Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar 
-Dcom.sun.jini.qa.harness.runjiniserver=true 
-Dcom.sun.jini.qa.harness.runkitserver=true 
-Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
-Dcom.sun.jini.qa.harness.testhosts= 
-Djava.util.logging.config.file=/home/peter/logging.properties 
-Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.test.port=9082 
-Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
com.sun.jini.qa.harness.MasterTest 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
     [java]
     [java] TIME: 7:58:41 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================== CALLING SETUP() 
==============================
     [java]
     [java] 24/12/2011 7:58:42 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
     [java] 24/12/2011 7:58:42 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
     [java] 24/12/2011 7:58:43 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
     [java] NonActGrp-out: 24/12/2011 7:58:58 PM 
com.sun.jini.reggie.RegistrarImpl init
     [java] NonActGrp-out: INFO: started Reggie: 
db79cb8e-d6b2-47c4-8c98-7519cf555cfe, [], 
ConstrainableLookupLocator[[jini://bluto/], [null]]
     [java]
     [java] TIME: 7:59:27 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] =============================== CALLING RUN() 
===============================
     [java]
     [java] com.sun.jini.qa.harness.TestException: # of Events Received 
(23) != # of Events Expected (50)
     [java]     at 
com.sun.jini.test.spec.lookupservice.QATestUtils.verifyEventVector(QATestUtils.java:473)
     [java]     at 
com.sun.jini.test.spec.lookupservice.test_set00.NotifyOnAttrAdd.run(NotifyOnAttrAdd.java:183)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
     [java]
     [java] TIME: 7:59:37 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================ CALLING TEARDOWN() 
=============================
     [java]
     [java] NonActGrp-out: 24/12/2011 7:59:38 PM 
com.sun.jini.reggie.RegistrarImpl destroy
     [java] NonActGrp-out: INFO: starting Reggie shutdown
     [java] NonActGrp-out: 24/12/2011 7:59:38 PM 
com.sun.jini.reggie.RegistrarImpl$DestroyThread run
     [java] NonActGrp-out: INFO: Reggie shutdown completed
     [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java]
     [java] TIME: 7:59:41 PM
     [java]
     [java] Test process was destroyed and returned code 1
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (23) != # of 
Events Expected (50)
     [java]
     [java]
     [java] -----------------------------------------
     [java]
     [java] Running 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
     [java] Time is Sat Dec 24 19:59:46 EST 2011
     [java] Starting test in separate process with command:
     [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java 
-Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy 
-Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar 
-cp 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar 
-client 
-Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
-Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 
-Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy 
-Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
-Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar 
-Dcom.sun.jini.qa.harness.runjiniserver=true 
-Dcom.sun.jini.qa.harness.runkitserver=true 
-Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
-Dcom.sun.jini.qa.harness.testhosts= 
-Djava.util.logging.config.file=/home/peter/logging.properties 
-Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.test.port=9082 
-Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
com.sun.jini.qa.harness.MasterTest 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
     [java]
     [java] TIME: 7:59:49 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================== CALLING SETUP() 
==============================
     [java]
     [java] 24/12/2011 7:59:50 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
     [java] 24/12/2011 7:59:51 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
     [java] 24/12/2011 7:59:52 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
     [java] NonActGrp-out: 24/12/2011 8:00:08 PM 
com.sun.jini.reggie.RegistrarImpl init
     [java] NonActGrp-out: INFO: started Reggie: 
e0627d4b-f59f-4a98-88f7-27fdfd250a6e, [], 
ConstrainableLookupLocator[[jini://bluto/], [null]]
     [java]
     [java] TIME: 8:00:40 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] =============================== CALLING RUN() 
===============================
     [java]
     [java] com.sun.jini.qa.harness.TestException: # of Events Received 
(24) != # of Events Expected (50)
     [java]     at 
com.sun.jini.test.spec.lookupservice.QATestUtils.verifyEventVector(QATestUtils.java:473)
     [java]     at 
com.sun.jini.test.spec.lookupservice.test_set00.NotifyOnAttrDel.run(NotifyOnAttrDel.java:203)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
     [java] MasterTest.doTest INFO:
     [java] ============================ CALLING TEARDOWN() 
=============================
     [java]
     [java] NonActGrp-out: 24/12/2011 8:00:50 PM 
com.sun.jini.reggie.RegistrarImpl destroy
     [java] NonActGrp-out: INFO: starting Reggie shutdown
     [java] NonActGrp-out: 24/12/2011 8:00:50 PM 
com.sun.jini.reggie.RegistrarImpl$DestroyThread run
     [java] NonActGrp-out: INFO: Reggie shutdown completed
     [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java]
     [java] TIME: 8:00:53 PM
     [java]
     [java] Test process was destroyed and returned code 1
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (24) != # of 
Events Expected (50)
     [java]
     [java]
     [java] -----------------------------------------
     [java]
     [java] Running 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
     [java] Time is Sat Dec 24 20:00:58 EST 2011
     [java] Starting test in separate process with command:
     [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java 
-Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy 
-Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar 
-cp 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar 
-client 
-Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
-Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 
-Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy 
-Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
-Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar 
-Dcom.sun.jini.qa.harness.runjiniserver=true 
-Dcom.sun.jini.qa.harness.runkitserver=true 
-Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
-Dcom.sun.jini.qa.harness.testhosts= 
-Djava.util.logging.config.file=/home/peter/logging.properties 
-Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.test.port=9082 
-Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
com.sun.jini.qa.harness.MasterTest 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
     [java]
     [java] TIME: 8:01:01 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================== CALLING SETUP() 
==============================
     [java]
     [java] 24/12/2011 8:01:02 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
     [java] 24/12/2011 8:01:03 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
     [java] 24/12/2011 8:01:04 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
     [java] NonActGrp-out: 24/12/2011 8:01:21 PM 
com.sun.jini.reggie.RegistrarImpl init
     [java] NonActGrp-out: INFO: started Reggie: 
4c1e8624-a70c-4cf6-a3fa-95b8bde54936, [], 
ConstrainableLookupLocator[[jini://bluto/], [null]]
     [java]
     [java] TIME: 8:01:55 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] =============================== CALLING RUN() 
===============================
     [java]
     [java] com.sun.jini.qa.harness.TestException: # of Events Received 
(20) != # of Events Expected (50)
     [java]     at 
com.sun.jini.test.spec.lookupservice.QATestUtils.verifyEventVector(QATestUtils.java:473)
     [java]     at 
com.sun.jini.test.spec.lookupservice.test_set00.NotifyOnAttrMod.run(NotifyOnAttrMod.java:204)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
     [java]
     [java] TIME: 8:02:06 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================ CALLING TEARDOWN() 
=============================
     [java]
     [java] NonActGrp-out: 24/12/2011 8:02:06 PM 
com.sun.jini.reggie.RegistrarImpl destroy
     [java] NonActGrp-out: INFO: starting Reggie shutdown
     [java] NonActGrp-out: 24/12/2011 8:02:06 PM 
com.sun.jini.reggie.RegistrarImpl$DestroyThread run
     [java] NonActGrp-out: INFO: Reggie shutdown completed
     [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java]
     [java] TIME: 8:02:10 PM
     [java]
     [java] Test process was destroyed and returned code 1
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (20) != # of 
Events Expected (50)
     [java]
     [java]
     [java] -----------------------------------------
     [java]
     [java] Running 
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
     [java] Time is Sat Dec 24 20:02:15 EST 2011
     [java] Starting test in separate process with command:
     [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java 
-Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy 
-Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar 
-cp 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar 
-client 
-Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
-Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 
-Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy 
-Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
-Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar 
-Dcom.sun.jini.qa.harness.runjiniserver=true 
-Dcom.sun.jini.qa.harness.runkitserver=true 
-Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
-Dcom.sun.jini.qa.harness.testhosts= 
-Djava.util.logging.config.file=/home/peter/logging.properties 
-Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.test.port=9082 
-Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
com.sun.jini.qa.harness.MasterTest 
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
     [java]
     [java] TIME: 8:02:17 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================== CALLING SETUP() 
==============================
     [java]
     [java] 24/12/2011 8:02:18 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
     [java] 24/12/2011 8:02:19 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
     [java] 24/12/2011 8:02:19 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
     [java] NonActGrp-out: 24/12/2011 8:02:33 PM 
com.sun.jini.reggie.RegistrarImpl init
     [java] NonActGrp-out: INFO: started Reggie: 
26bb9126-c21f-4220-b2fd-9619dbb40538, [], 
ConstrainableLookupLocator[[jini://bluto/], [null]]
     [java]
     [java] TIME: 8:03:04 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] =============================== CALLING RUN() 
===============================
     [java]
     [java] com.sun.jini.qa.harness.TestException: # of Events Received 
(19) != # of Events Expected (50)
     [java]     at 
com.sun.jini.test.spec.lookupservice.QATestUtils.verifyEventVector(QATestUtils.java:473)
     [java]     at 
com.sun.jini.test.spec.lookupservice.test_set02.NotifyOnAttrSet.run(NotifyOnAttrSet.java:220)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
     [java] MasterTest.doTest INFO:
     [java] ============================ CALLING TEARDOWN() 
=============================
     [java]
     [java] NonActGrp-out: 24/12/2011 8:03:14 PM 
com.sun.jini.reggie.RegistrarImpl destroy
     [java] NonActGrp-out: INFO: starting Reggie shutdown
     [java] NonActGrp-out: 24/12/2011 8:03:15 PM 
com.sun.jini.reggie.RegistrarImpl$DestroyThread run
     [java] NonActGrp-out: INFO: Reggie shutdown completed
     [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java]
     [java] TIME: 8:03:17 PM
     [java]
     [java] Test process was destroyed and returned code 1
     [java] 
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (19) != # of 
Events Expected (50)
     [java]
     [java]
     [java] -----------------------------------------
     [java]
     [java] Running 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] Time is Sat Dec 24 20:03:22 EST 2011
     [java] Starting test in separate process with command:
     [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java 
-Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy 
-Djava.rmi.server.codebase=http://bluto:9082/qa1-start-probe-dl.jar -cp 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:lib/qa1-start-tests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar 
-client 
-Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
-Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 
-Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy 
-Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
-Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar 
-Dcom.sun.jini.qa.harness.runjiniserver=true 
-Dcom.sun.jini.qa.harness.runkitserver=true 
-Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
-Dcom.sun.jini.qa.harness.testhosts= 
-Djava.util.logging.config.file=/home/peter/logging.properties 
-Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.test.port=9082 
-Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
com.sun.jini.qa.harness.MasterTest 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java]
     [java] TIME: 8:03:25 PM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================== CALLING SETUP() 
==============================
     [java]
     [java] 24/12/2011 8:03:26 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
     [java] 24/12/2011 8:03:26 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
     [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
     [java] MasterTest.doTest INFO:
     [java] =============================== CALLING RUN() 
===============================
     [java]
     [java] java.security.AccessControlException: access denied 
(java.lang.RuntimePermission A)
     [java]     at 
java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
     [java]     at 
java.security.AccessController.checkPermission(AccessController.java:546)
     [java]     at 
java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
     [java]     at 
com.sun.jini.test.impl.start.aggregatepolicyprovider.CheckContextAction.run(CheckContextAction.java:35)
     [java]     at 
com.sun.jini.start.AggregatePolicyProvider$AggregateSecurityContext$1.run(AggregatePolicyProvider.java:513)
     [java]     at java.security.AccessController.doPrivileged(Native 
Method)
     [java]     at 
com.sun.jini.test.impl.start.aggregatepolicyprovider.RestoreContext$Action.run(RestoreContext.java:30)
     [java]     at java.security.AccessController.doPrivileged(Native 
Method)
     [java]     at 
com.sun.jini.test.impl.start.aggregatepolicyprovider.RestoreContext.run(RestoreContext.java:38)
     [java]     at 
com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run(GetContextTest.java:107)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
     [java]     at 
com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
     [java] MasterTest.doTest INFO:
     [java] ============================ CALLING TEARDOWN() 
=============================
     [java]
     [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java]
     [java] TIME: 8:03:28 PM
     [java]
     [java] Test process was destroyed and returned code 1
     [java] 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] Test Failed: Test Failed with an Unexpected Exception: 
java.security.AccessControlException: access denied 
(java.lang.RuntimePermission A)
     [java]
     [java]
     [java] -----------------------------------------
     [java]
     [java] SUMMARY =================================
     [java]
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (35) != # of 
Events Expected (50)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (23) != # of 
Events Expected (50)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (24) != # of 
Events Expected (50)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (20) != # of 
Events Expected (50)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (19) != # of 
Events Expected (50)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] Test Failed: Test Failed with an Unexpected Exception: 
java.security.AccessControlException: access denied 
(java.lang.RuntimePermission A)
     [java]
     [java] -----------------------------------------
     [java]
     [java] # of tests started   = 6
     [java] # of tests completed = 6
     [java] # of tests passed    = 0
     [java] # of tests failed    = 6
     [java]
     [java] -----------------------------------------
     [java]
     [java]    Date finished:
     [java]       Sat Dec 24 20:03:33 EST 2011
     [java]    Time elapsed:
     [java]       646 seconds
     [java]
     [java] Java Result: 1


Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
Dan Creswell wrote:
>
>
> Mmmm, trouble is the debugger itself (or at least its agent) could be
> the problem - they aren't perfect devices, typically.
>
>   
>> Considering I have trouble printing the ProtectionDomain in the debugger,
>> could this be a stale reference, or is there no relation?
>>     
>
> Mightn't be stale, could be corrupted as the result of some
> broken/loose locking somewhere. That might relate to your deadlock
> above (did you get a full thread dump from the JVM?) as it mightn't be
> a deadlock but a corruption that brings everything to a halt.
>   

Unfortunately not :(


Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
It might be relevant to the lost events, thanks, I'm working on the 
AggregatePolicyProvider test that's failing at present, it appears to be 
a different bug, but it's lower hanging fruit, so I'm trying to topple 
it first.

Peter.

Patricia Shanahan wrote:
> When I was looking at TaskManager, I had some concerns with how it was 
> being used, especially in connection with RetryTask.
>
> Tasks get asked whether they need to wait for another task that in the 
> TaskManager queue. A RetryTask that has timed out and is waiting to 
> reschedule itself is completed as far as TaskManager knows, but will 
> go back on the queue later.
>
> The use of a breakpoint could be causing timeouts.
>
> I don't know if this is relevant to the specific problem.
>
> Patricia
>
>
> On 12/27/2011 12:34 AM, Peter Firmstone wrote:
>> It seems it isn't too hard to lockup the test on the main trunk, using
>> jdb, then exiting the debugger, leaving the test in a hung state.
>>
>> I've modified AggregratePolicyProvider in skunk (see recent commit),
>> after the mods I'm unable to get it to lock up after exiting the 
>> debugger.
>>
>>  From river trunk:
>>
>> bash-3.00$ jstack 19499
>> 2011-12-27 18:29:02
>> Full thread dump Java HotSpot(TM) Server VM (20.0-b11 mixed mode):
>>
>> "Attach Listener" daemon prio=3 tid=0x001d8c00 nid=0x14 waiting on
>> condition [0x00000000]
>> java.lang.Thread.State: RUNNABLE
>>
>> "test-err" daemon prio=3 tid=0x001d2400 nid=0x13 runnable [0xb667f000]
>> java.lang.Thread.State: RUNNABLE
>> at java.io.FileInputStream.readBytes(Native Method)
>> at java.io.FileInputStream.read(FileInputStream.java:198)
>> at
>> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:218) 
>>
>> at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>> at java.lang.Thread.run(Thread.java:662)
>>
>> "test-out" daemon prio=3 tid=0x001d1c00 nid=0x12 runnable [0xb677f000]
>> java.lang.Thread.State: RUNNABLE
>> at java.io.FileInputStream.readBytes(Native Method)
>> at java.io.FileInputStream.read(FileInputStream.java:220)
>> at
>> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227) 
>>
>> at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>> at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
>> at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
>> - locked <0xe674ec70> (a java.io.BufferedInputStream)
>> at java.io.FilterInputStream.read(FilterInputStream.java:90)
>> at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>> at java.lang.Thread.run(Thread.java:662)
>>
>> "process reaper" daemon prio=3 tid=0x00247c00 nid=0x11 runnable
>> [0xb687f000]
>> java.lang.Thread.State: RUNNABLE
>> at java.lang.UNIXProcess.waitForProcessExit(Native Method)
>> at java.lang.UNIXProcess.access$900(UNIXProcess.java:17)
>> at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86)
>>
>> "Keepalive" daemon prio=3 tid=0x002e6c00 nid=0x10 runnable [0xb697f000]
>> java.lang.Thread.State: RUNNABLE
>> at java.net.PlainSocketImpl.socketAccept(Native Method)
>> at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
>> - locked <0xe662d6b8> (a java.net.SocksSocketImpl)
>> at java.net.ServerSocket.implAccept(ServerSocket.java:462)
>> at java.net.ServerSocket.accept(ServerSocket.java:430)
>> at
>> com.sun.jini.qa.harness.MasterHarness$KeepAlivePort.run(MasterHarness.java:254) 
>>
>>
>> at java.lang.Thread.run(Thread.java:662)
>>
>> "no heart without soul" daemon prio=3 tid=0x00180400 nid=0xf waiting on
>> condition [0xb6a7f000]
>> java.lang.Thread.State: TIMED_WAITING (sleeping)
>> at java.lang.Thread.sleep(Native Method)
>> at
>> com.sun.jini.qa.harness.HeartOfTheMachine.ticktack(HeartOfTheMachine.java:63) 
>>
>>
>> at
>> com.sun.jini.qa.harness.HeartOfTheMachine.access$000(HeartOfTheMachine.java:29) 
>>
>>
>> at
>> com.sun.jini.qa.harness.HeartOfTheMachine$1.run(HeartOfTheMachine.java:45) 
>>
>> at java.lang.Thread.run(Thread.java:662)
>>
>> "Low Memory Detector" daemon prio=3 tid=0x00122c00 nid=0xd runnable
>> [0x00000000]
>> java.lang.Thread.State: RUNNABLE
>>
>> "C2 CompilerThread1" daemon prio=3 tid=0x00120000 nid=0xc waiting on
>> condition [0x00000000]
>> java.lang.Thread.State: RUNNABLE
>>
>> "C2 CompilerThread0" daemon prio=3 tid=0x0011d800 nid=0xb waiting on
>> condition [0x00000000]
>> java.lang.Thread.State: RUNNABLE
>>
>> "Signal Dispatcher" daemon prio=3 tid=0x0011c000 nid=0xa runnable
>> [0x00000000]
>> java.lang.Thread.State: RUNNABLE
>>
>> "Finalizer" daemon prio=3 tid=0x0010bc00 nid=0x9 in Object.wait()
>> [0xb707f000]
>> java.lang.Thread.State: WAITING (on object monitor)
>> at java.lang.Object.wait(Native Method)
>> - waiting on <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>> - locked <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
>>
>> "Reference Handler" daemon prio=3 tid=0x00107000 nid=0x8 in
>> Object.wait() [0xb717f000]
>> java.lang.Thread.State: WAITING (on object monitor)
>> at java.lang.Object.wait(Native Method)
>> - waiting on <0xe6401050> (a java.lang.ref.Reference$Lock)
>> at java.lang.Object.wait(Object.java:485)
>> at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>> - locked <0xe6401050> (a java.lang.ref.Reference$Lock)
>>
>> "main" prio=3 tid=0x00031400 nid=0x2 in Object.wait() [0xfe37f000]
>> java.lang.Thread.State: WAITING (on object monitor)
>> at java.lang.Object.wait(Native Method)
>> - waiting on <0xe674ca40> (a java.lang.UNIXProcess)
>> at java.lang.Object.wait(Object.java:485)
>> at java.lang.UNIXProcess.waitFor(UNIXProcess.java:115)
>> - locked <0xe674ca40> (a java.lang.UNIXProcess)
>> at
>> com.sun.jini.qa.harness.MasterHarness.runTestOtherVM(MasterHarness.java:873) 
>>
>>
>> at 
>> com.sun.jini.qa.harness.MasterHarness.access$200(MasterHarness.java:119)
>> at
>> com.sun.jini.qa.harness.MasterHarness$TestRunner.run(MasterHarness.java:603) 
>>
>>
>> at 
>> com.sun.jini.qa.harness.MasterHarness.runTests(MasterHarness.java:430)
>> at com.sun.jini.qa.harness.QARunner.main(QARunner.java:67)
>>
>> "VM Thread" prio=3 tid=0x00103000 nid=0x7 runnable
>>
>> "GC task thread#0 (ParallelGC)" prio=3 tid=0x00039000 nid=0x3 runnable
>>
>> "GC task thread#1 (ParallelGC)" prio=3 tid=0x0003a400 nid=0x4 runnable
>>
>> "GC task thread#2 (ParallelGC)" prio=3 tid=0x0003b800 nid=0x5 runnable
>>
>> "GC task thread#3 (ParallelGC)" prio=3 tid=0x0003cc00 nid=0x6 runnable
>>
>> "VM Periodic Task Thread" prio=3 tid=0x0012cc00 nid=0xe waiting on
>> condition
>>
>> JNI global references: 1252
>>
>>
>> Dan Creswell wrote:
>>> ...
>>>
>>> On 27 December 2011 01:40, Peter Firmstone <ji...@zeus.net.au> wrote:
>>>> The following is specific to:
>>>>
>>>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>>>>
>>>> I've just come across the concurrency issue (experienced randomly when
>>>> attempting to debug any of the failing tests) in the existing River
>>>> trunk
>>>> code, after exiting the debugger, the test is in a deadlocked state,
>>>> here's
>>>> the thread dump:
>>>>
>>>
>>> Two threads arriving at the same point doesn't imply deadlock, in fact
>>> it can mean quite the opposite. Deadlock requires two threads taking
>>> resources in opposite orders so T1 takes a and tries to take b, T2
>>> takes b and tries to take a. Thus I wouldn't expect both threads to be
>>> blocking in implies.
>>>
>>> So both threads arrived at AggregatePolicyProvider.implies but note
>>> that method is not synchronized and the stack does not include mention
>>> of getCurrentSubPolicy which does take a lock.
>>>
>>> Thing is, the debugger itself could be the culprit, especially given
>>> what you do below in terms of attempting a print.
>>>
>>> If at all possible, it's going to be better to leave the debugger out
>>> and wait for the test to deadlock, after which using jstack will give
>>> a full dump and include a note of locks taken as well (something it
>>> looks like the debugger above, doesn't do).
>>>
>>>> In this case I've tried to print the domain (ProtectionDomain), as
>>>> you can
>>>> see two threads have arrived at the same breakpoint.
>>>>
>>>> jdb -attach 8000
>>>> Set uncaught java.lang.Throwable
>>>> Set deferred uncaught java.lang.Throwable
>>>> Initializing jdb ...
>>>> VM Started: No frames on the current call stack
>>>>
>>>> main[1] stop in com.sun.jini.start.AggregatePolicyProvider.implies
>>>> Deferring breakpoint 
>>>> com.sun.jini.start.AggregatePolicyProvider.implies.
>>>> It will be set after the class is loaded.
>>>> main[1] run
>>>>> Set deferred breakpoint
>>>>> com.sun.jini.start.AggregatePolicyProvider.implies
>>>> Breakpoint hit: "thread=main",
>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>
>>>> main[1] print domain
>>>>
>>>> Breakpoint hit: "thread=main",
>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>
>>>> main[1] where all
>>>> Signal Dispatcher:
>>>> Finalizer:
>>>> [1] java.lang.Object.wait (native method)
>>>> [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>> [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>> [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>>> Reference Handler:
>>>> [1] java.lang.Object.wait (native method)
>>>> [2] java.lang.Object.wait (Object.java:485)
>>>> [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>>> main:
>>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>> [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>> [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>> [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>> [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>>> [7] java.security.ProtectionDomain.toString 
>>>> (ProtectionDomain.java:255)
>>>> [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>> [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>> [10] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>> [11] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>> [12] java.lang.SecurityManager.checkPermission
>>>> (SecurityManager.java:532)
>>>> [13] java.lang.SecurityManager.checkCreateClassLoader
>>>> (SecurityManager.java:594)
>>>> [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>> (ClassLoader.java:177)
>>>> [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>> [16] java.security.SecureClassLoader.<init> 
>>>> (SecureClassLoader.java:93)
>>>> [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>> [18]
>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>
>>>> (GetContextTest.java:85)
>>>> [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>> [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>> no heart without soul:
>>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>> [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>> [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>> [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>> [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>> [7] java.io.File.exists (File.java:731)
>>>> [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>> (HeartOfTheMachine.java:56)
>>>> [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>> (HeartOfTheMachine.java:62)
>>>> [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>> (HeartOfTheMachine.java:29)
>>>> [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>> (HeartOfTheMachine.java:45)
>>>> [12] java.lang.Thread.run (Thread.java:662)
>>>> Thread-2:
>>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-3:
>>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-4:
>>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> RequestHandler:
>>>> [1] java.io.FileInputStream.readBytes (native method)
>>>> [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>> [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>> [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>> [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>> [6] java.io.ObjectInputStream$PeekInputStream.read
>>>> (ObjectInputStream.java:2,265)
>>>> [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>> (ObjectInputStream.java:2,278)
>>>> [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>> (ObjectInputStream.java:2,749)
>>>> [9] java.io.ObjectInputStream.readStreamHeader
>>>> (ObjectInputStream.java:779)
>>>> [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>> [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>> (MasterTest.java:323)
>>>> [12] java.lang.Thread.run (Thread.java:662)
>>>> main[1] monitor
>>>> main[1] step
>>>>
>>>> Breakpoint hit: "thread=no heart without soul",
>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>
>>>> no heart without soul[1] where all
>>>> Signal Dispatcher:
>>>> Finalizer:
>>>> [1] java.lang.Object.wait (native method)
>>>> [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>> [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>> [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>>> Reference Handler:
>>>> [1] java.lang.Object.wait (native method)
>>>> [2] java.lang.Object.wait (Object.java:485)
>>>> [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>>> main:
>>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>> [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>> [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>> [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>> [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>>> [7] java.security.ProtectionDomain.toString 
>>>> (ProtectionDomain.java:255)
>>>> [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>> [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>> [10] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>> [11] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>> [12] java.lang.SecurityManager.checkPermission
>>>> (SecurityManager.java:532)
>>>> [13] java.lang.SecurityManager.checkCreateClassLoader
>>>> (SecurityManager.java:594)
>>>> [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>> (ClassLoader.java:177)
>>>> [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>> [16] java.security.SecureClassLoader.<init> 
>>>> (SecureClassLoader.java:93)
>>>> [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>> [18]
>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>
>>>> (GetContextTest.java:85)
>>>> [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>> [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>> no heart without soul:
>>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>> [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>> [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>> [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>> [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>> [7] java.io.File.exists (File.java:731)
>>>> [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>> (HeartOfTheMachine.java:56)
>>>> [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>> (HeartOfTheMachine.java:62)
>>>> [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>> (HeartOfTheMachine.java:29)
>>>> [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>> (HeartOfTheMachine.java:45)
>>>> [12] java.lang.Thread.run (Thread.java:662)
>>>> Thread-2:
>>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-3:
>>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-4:
>>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> RequestHandler:
>>>> [1] java.io.FileInputStream.readBytes (native method)
>>>> [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>> [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>> [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>> [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>> [6] java.io.ObjectInputStream$PeekInputStream.read
>>>> (ObjectInputStream.java:2,265)
>>>> [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>> (ObjectInputStream.java:2,278)
>>>> [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>> (ObjectInputStream.java:2,749)
>>>> [9] java.io.ObjectInputStream.readStreamHeader
>>>> (ObjectInputStream.java:779)
>>>> [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>> [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>> (MasterTest.java:323)
>>>> [12] java.lang.Thread.run (Thread.java:662)
>>>> no heart without soul[1] step
>>>>
>>>> Breakpoint hit: "thread=main",
>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>
>>>> main[1] where all
>>>> Signal Dispatcher:
>>>> Finalizer:
>>>> [1] java.lang.Object.wait (native method)
>>>> [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>> [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>> [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>>> Reference Handler:
>>>> [1] java.lang.Object.wait (native method)
>>>> [2] java.lang.Object.wait (Object.java:485)
>>>> [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>>> main:
>>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>> [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>> [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>> [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>> [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>>> [7] java.security.ProtectionDomain.toString 
>>>> (ProtectionDomain.java:255)
>>>> [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>> [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>> [10] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>> [11] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>> [12] java.lang.SecurityManager.checkPermission
>>>> (SecurityManager.java:532)
>>>> [13] java.lang.SecurityManager.checkCreateClassLoader
>>>> (SecurityManager.java:594)
>>>> [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>> (ClassLoader.java:177)
>>>> [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>> [16] java.security.SecureClassLoader.<init> 
>>>> (SecureClassLoader.java:93)
>>>> [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>> [18]
>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>
>>>> (GetContextTest.java:85)
>>>> [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>> [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>> no heart without soul:
>>>> [1] java.lang.SecurityManager.checkRead (SecurityManager.java:873)
>>>> [2] java.io.File.exists (File.java:731)
>>>> [3] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>> (HeartOfTheMachine.java:56)
>>>> [4] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>> (HeartOfTheMachine.java:62)
>>>> [5] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>> (HeartOfTheMachine.java:29)
>>>> [6] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>> (HeartOfTheMachine.java:45)
>>>> [7] java.lang.Thread.run (Thread.java:662)
>>>> Thread-2:
>>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-3:
>>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-4:
>>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> RequestHandler:
>>>> [1] java.io.FileInputStream.readBytes (native method)
>>>> [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>> [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>> [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>> [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>> [6] java.io.ObjectInputStream$PeekInputStream.read
>>>> (ObjectInputStream.java:2,265)
>>>> [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>> (ObjectInputStream.java:2,278)
>>>> [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>> (ObjectInputStream.java:2,749)
>>>> [9] java.io.ObjectInputStream.readStreamHeader
>>>> (ObjectInputStream.java:779)
>>>> [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>> [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>> (MasterTest.java:323)
>>>> [12] java.lang.Thread.run (Thread.java:662)
>>>> main[1] dump this
>>>> this = {
>>>> mainPolicyClassProperty:
>>>> "com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
>>>> defaultMainPolicyClass: 
>>>> "net.jini.security.policy.DynamicPolicyProvider"
>>>> trustGetCCL: instance of java.util.WeakHashMap(id=962)
>>>> myDomain: instance of java.security.ProtectionDomain(id=963)
>>>> subPolicies: instance of 
>>>> com.sun.jini.collection.WeakIdentityMap(id=964)
>>>> subPolicyCache: instance of
>>>> com.sun.jini.collection.WeakIdentityMap(id=965)
>>>> mainPolicy: instance of
>>>> net.jini.security.policy.DynamicPolicyProvider(id=966)
>>>> $assertionsDisabled: true
>>>> java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of
>>>> java.security.Policy$UnsupportedEmptyCollection(id=967)
>>>> java.security.Policy.policy: instance of
>>>> com.sun.jini.start.AggregatePolicyProvider(id=959)
>>>> java.security.Policy.debug: null
>>>> java.security.Policy.pdMapping: instance of
>>>> java.util.WeakHashMap(id=968)
>>>> }
>>>> main[1] exit
>>>>
>>>
>>
>>
>
>


Re: Help needed with concurrency bug

Posted by Patricia Shanahan <pa...@acm.org>.
When I was looking at TaskManager, I had some concerns with how it was 
being used, especially in connection with RetryTask.

Tasks get asked whether they need to wait for another task that in the 
TaskManager queue. A RetryTask that has timed out and is waiting to 
reschedule itself is completed as far as TaskManager knows, but will go 
back on the queue later.

The use of a breakpoint could be causing timeouts.

I don't know if this is relevant to the specific problem.

Patricia


On 12/27/2011 12:34 AM, Peter Firmstone wrote:
> It seems it isn't too hard to lockup the test on the main trunk, using
> jdb, then exiting the debugger, leaving the test in a hung state.
>
> I've modified AggregratePolicyProvider in skunk (see recent commit),
> after the mods I'm unable to get it to lock up after exiting the debugger.
>
>  From river trunk:
>
> bash-3.00$ jstack 19499
> 2011-12-27 18:29:02
> Full thread dump Java HotSpot(TM) Server VM (20.0-b11 mixed mode):
>
> "Attach Listener" daemon prio=3 tid=0x001d8c00 nid=0x14 waiting on
> condition [0x00000000]
> java.lang.Thread.State: RUNNABLE
>
> "test-err" daemon prio=3 tid=0x001d2400 nid=0x13 runnable [0xb667f000]
> java.lang.Thread.State: RUNNABLE
> at java.io.FileInputStream.readBytes(Native Method)
> at java.io.FileInputStream.read(FileInputStream.java:198)
> at
> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:218)
> at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
> at java.lang.Thread.run(Thread.java:662)
>
> "test-out" daemon prio=3 tid=0x001d1c00 nid=0x12 runnable [0xb677f000]
> java.lang.Thread.State: RUNNABLE
> at java.io.FileInputStream.readBytes(Native Method)
> at java.io.FileInputStream.read(FileInputStream.java:220)
> at
> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227)
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
> - locked <0xe674ec70> (a java.io.BufferedInputStream)
> at java.io.FilterInputStream.read(FilterInputStream.java:90)
> at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
> at java.lang.Thread.run(Thread.java:662)
>
> "process reaper" daemon prio=3 tid=0x00247c00 nid=0x11 runnable
> [0xb687f000]
> java.lang.Thread.State: RUNNABLE
> at java.lang.UNIXProcess.waitForProcessExit(Native Method)
> at java.lang.UNIXProcess.access$900(UNIXProcess.java:17)
> at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86)
>
> "Keepalive" daemon prio=3 tid=0x002e6c00 nid=0x10 runnable [0xb697f000]
> java.lang.Thread.State: RUNNABLE
> at java.net.PlainSocketImpl.socketAccept(Native Method)
> at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
> - locked <0xe662d6b8> (a java.net.SocksSocketImpl)
> at java.net.ServerSocket.implAccept(ServerSocket.java:462)
> at java.net.ServerSocket.accept(ServerSocket.java:430)
> at
> com.sun.jini.qa.harness.MasterHarness$KeepAlivePort.run(MasterHarness.java:254)
>
> at java.lang.Thread.run(Thread.java:662)
>
> "no heart without soul" daemon prio=3 tid=0x00180400 nid=0xf waiting on
> condition [0xb6a7f000]
> java.lang.Thread.State: TIMED_WAITING (sleeping)
> at java.lang.Thread.sleep(Native Method)
> at
> com.sun.jini.qa.harness.HeartOfTheMachine.ticktack(HeartOfTheMachine.java:63)
>
> at
> com.sun.jini.qa.harness.HeartOfTheMachine.access$000(HeartOfTheMachine.java:29)
>
> at
> com.sun.jini.qa.harness.HeartOfTheMachine$1.run(HeartOfTheMachine.java:45)
> at java.lang.Thread.run(Thread.java:662)
>
> "Low Memory Detector" daemon prio=3 tid=0x00122c00 nid=0xd runnable
> [0x00000000]
> java.lang.Thread.State: RUNNABLE
>
> "C2 CompilerThread1" daemon prio=3 tid=0x00120000 nid=0xc waiting on
> condition [0x00000000]
> java.lang.Thread.State: RUNNABLE
>
> "C2 CompilerThread0" daemon prio=3 tid=0x0011d800 nid=0xb waiting on
> condition [0x00000000]
> java.lang.Thread.State: RUNNABLE
>
> "Signal Dispatcher" daemon prio=3 tid=0x0011c000 nid=0xa runnable
> [0x00000000]
> java.lang.Thread.State: RUNNABLE
>
> "Finalizer" daemon prio=3 tid=0x0010bc00 nid=0x9 in Object.wait()
> [0xb707f000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
> - locked <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
>
> "Reference Handler" daemon prio=3 tid=0x00107000 nid=0x8 in
> Object.wait() [0xb717f000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0xe6401050> (a java.lang.ref.Reference$Lock)
> at java.lang.Object.wait(Object.java:485)
> at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
> - locked <0xe6401050> (a java.lang.ref.Reference$Lock)
>
> "main" prio=3 tid=0x00031400 nid=0x2 in Object.wait() [0xfe37f000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0xe674ca40> (a java.lang.UNIXProcess)
> at java.lang.Object.wait(Object.java:485)
> at java.lang.UNIXProcess.waitFor(UNIXProcess.java:115)
> - locked <0xe674ca40> (a java.lang.UNIXProcess)
> at
> com.sun.jini.qa.harness.MasterHarness.runTestOtherVM(MasterHarness.java:873)
>
> at com.sun.jini.qa.harness.MasterHarness.access$200(MasterHarness.java:119)
> at
> com.sun.jini.qa.harness.MasterHarness$TestRunner.run(MasterHarness.java:603)
>
> at com.sun.jini.qa.harness.MasterHarness.runTests(MasterHarness.java:430)
> at com.sun.jini.qa.harness.QARunner.main(QARunner.java:67)
>
> "VM Thread" prio=3 tid=0x00103000 nid=0x7 runnable
>
> "GC task thread#0 (ParallelGC)" prio=3 tid=0x00039000 nid=0x3 runnable
>
> "GC task thread#1 (ParallelGC)" prio=3 tid=0x0003a400 nid=0x4 runnable
>
> "GC task thread#2 (ParallelGC)" prio=3 tid=0x0003b800 nid=0x5 runnable
>
> "GC task thread#3 (ParallelGC)" prio=3 tid=0x0003cc00 nid=0x6 runnable
>
> "VM Periodic Task Thread" prio=3 tid=0x0012cc00 nid=0xe waiting on
> condition
>
> JNI global references: 1252
>
>
> Dan Creswell wrote:
>> ...
>>
>> On 27 December 2011 01:40, Peter Firmstone <ji...@zeus.net.au> wrote:
>>> The following is specific to:
>>>
>>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>>>
>>> I've just come across the concurrency issue (experienced randomly when
>>> attempting to debug any of the failing tests) in the existing River
>>> trunk
>>> code, after exiting the debugger, the test is in a deadlocked state,
>>> here's
>>> the thread dump:
>>>
>>
>> Two threads arriving at the same point doesn't imply deadlock, in fact
>> it can mean quite the opposite. Deadlock requires two threads taking
>> resources in opposite orders so T1 takes a and tries to take b, T2
>> takes b and tries to take a. Thus I wouldn't expect both threads to be
>> blocking in implies.
>>
>> So both threads arrived at AggregatePolicyProvider.implies but note
>> that method is not synchronized and the stack does not include mention
>> of getCurrentSubPolicy which does take a lock.
>>
>> Thing is, the debugger itself could be the culprit, especially given
>> what you do below in terms of attempting a print.
>>
>> If at all possible, it's going to be better to leave the debugger out
>> and wait for the test to deadlock, after which using jstack will give
>> a full dump and include a note of locks taken as well (something it
>> looks like the debugger above, doesn't do).
>>
>>> In this case I've tried to print the domain (ProtectionDomain), as
>>> you can
>>> see two threads have arrived at the same breakpoint.
>>>
>>> jdb -attach 8000
>>> Set uncaught java.lang.Throwable
>>> Set deferred uncaught java.lang.Throwable
>>> Initializing jdb ...
>>> VM Started: No frames on the current call stack
>>>
>>> main[1] stop in com.sun.jini.start.AggregatePolicyProvider.implies
>>> Deferring breakpoint com.sun.jini.start.AggregatePolicyProvider.implies.
>>> It will be set after the class is loaded.
>>> main[1] run
>>>> Set deferred breakpoint
>>>> com.sun.jini.start.AggregatePolicyProvider.implies
>>> Breakpoint hit: "thread=main",
>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>
>>> main[1] print domain
>>>
>>> Breakpoint hit: "thread=main",
>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>
>>> main[1] where all
>>> Signal Dispatcher:
>>> Finalizer:
>>> [1] java.lang.Object.wait (native method)
>>> [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>> [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>> [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>> Reference Handler:
>>> [1] java.lang.Object.wait (native method)
>>> [2] java.lang.Object.wait (Object.java:485)
>>> [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>> main:
>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>> [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>> [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>> [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>> [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>> [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
>>> [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>> [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>> [10] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>> [11] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>> [12] java.lang.SecurityManager.checkPermission
>>> (SecurityManager.java:532)
>>> [13] java.lang.SecurityManager.checkCreateClassLoader
>>> (SecurityManager.java:594)
>>> [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
>>> [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>> [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
>>> [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>> [18]
>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
>>> (GetContextTest.java:85)
>>> [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>> [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>> no heart without soul:
>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>> [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>> [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>> [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>> [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>> [7] java.io.File.exists (File.java:731)
>>> [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>> (HeartOfTheMachine.java:56)
>>> [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>> (HeartOfTheMachine.java:62)
>>> [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>> (HeartOfTheMachine.java:29)
>>> [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>> (HeartOfTheMachine.java:45)
>>> [12] java.lang.Thread.run (Thread.java:662)
>>> Thread-2:
>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-3:
>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-4:
>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> RequestHandler:
>>> [1] java.io.FileInputStream.readBytes (native method)
>>> [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>> [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>> [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>> [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>> [6] java.io.ObjectInputStream$PeekInputStream.read
>>> (ObjectInputStream.java:2,265)
>>> [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>> (ObjectInputStream.java:2,278)
>>> [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>> (ObjectInputStream.java:2,749)
>>> [9] java.io.ObjectInputStream.readStreamHeader
>>> (ObjectInputStream.java:779)
>>> [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>> [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>> (MasterTest.java:323)
>>> [12] java.lang.Thread.run (Thread.java:662)
>>> main[1] monitor
>>> main[1] step
>>>
>>> Breakpoint hit: "thread=no heart without soul",
>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>
>>> no heart without soul[1] where all
>>> Signal Dispatcher:
>>> Finalizer:
>>> [1] java.lang.Object.wait (native method)
>>> [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>> [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>> [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>> Reference Handler:
>>> [1] java.lang.Object.wait (native method)
>>> [2] java.lang.Object.wait (Object.java:485)
>>> [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>> main:
>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>> [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>> [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>> [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>> [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>> [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
>>> [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>> [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>> [10] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>> [11] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>> [12] java.lang.SecurityManager.checkPermission
>>> (SecurityManager.java:532)
>>> [13] java.lang.SecurityManager.checkCreateClassLoader
>>> (SecurityManager.java:594)
>>> [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
>>> [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>> [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
>>> [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>> [18]
>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
>>> (GetContextTest.java:85)
>>> [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>> [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>> no heart without soul:
>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>> [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>> [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>> [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>> [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>> [7] java.io.File.exists (File.java:731)
>>> [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>> (HeartOfTheMachine.java:56)
>>> [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>> (HeartOfTheMachine.java:62)
>>> [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>> (HeartOfTheMachine.java:29)
>>> [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>> (HeartOfTheMachine.java:45)
>>> [12] java.lang.Thread.run (Thread.java:662)
>>> Thread-2:
>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-3:
>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-4:
>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> RequestHandler:
>>> [1] java.io.FileInputStream.readBytes (native method)
>>> [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>> [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>> [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>> [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>> [6] java.io.ObjectInputStream$PeekInputStream.read
>>> (ObjectInputStream.java:2,265)
>>> [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>> (ObjectInputStream.java:2,278)
>>> [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>> (ObjectInputStream.java:2,749)
>>> [9] java.io.ObjectInputStream.readStreamHeader
>>> (ObjectInputStream.java:779)
>>> [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>> [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>> (MasterTest.java:323)
>>> [12] java.lang.Thread.run (Thread.java:662)
>>> no heart without soul[1] step
>>>
>>> Breakpoint hit: "thread=main",
>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>
>>> main[1] where all
>>> Signal Dispatcher:
>>> Finalizer:
>>> [1] java.lang.Object.wait (native method)
>>> [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>> [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>> [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>> Reference Handler:
>>> [1] java.lang.Object.wait (native method)
>>> [2] java.lang.Object.wait (Object.java:485)
>>> [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>> main:
>>> [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>> [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>> [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>> [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>> [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>> [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>> [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
>>> [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>> [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>> [10] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>> [11] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>> [12] java.lang.SecurityManager.checkPermission
>>> (SecurityManager.java:532)
>>> [13] java.lang.SecurityManager.checkCreateClassLoader
>>> (SecurityManager.java:594)
>>> [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
>>> [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>> [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
>>> [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>> [18]
>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
>>> (GetContextTest.java:85)
>>> [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>> [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>> no heart without soul:
>>> [1] java.lang.SecurityManager.checkRead (SecurityManager.java:873)
>>> [2] java.io.File.exists (File.java:731)
>>> [3] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>> (HeartOfTheMachine.java:56)
>>> [4] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>> (HeartOfTheMachine.java:62)
>>> [5] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>> (HeartOfTheMachine.java:29)
>>> [6] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>> (HeartOfTheMachine.java:45)
>>> [7] java.lang.Thread.run (Thread.java:662)
>>> Thread-2:
>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-3:
>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-4:
>>> [1] java.net.PlainSocketImpl.socketAccept (native method)
>>> [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>> [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>> [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>> [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> RequestHandler:
>>> [1] java.io.FileInputStream.readBytes (native method)
>>> [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>> [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>> [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>> [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>> [6] java.io.ObjectInputStream$PeekInputStream.read
>>> (ObjectInputStream.java:2,265)
>>> [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>> (ObjectInputStream.java:2,278)
>>> [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>> (ObjectInputStream.java:2,749)
>>> [9] java.io.ObjectInputStream.readStreamHeader
>>> (ObjectInputStream.java:779)
>>> [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>> [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>> (MasterTest.java:323)
>>> [12] java.lang.Thread.run (Thread.java:662)
>>> main[1] dump this
>>> this = {
>>> mainPolicyClassProperty:
>>> "com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
>>> defaultMainPolicyClass: "net.jini.security.policy.DynamicPolicyProvider"
>>> trustGetCCL: instance of java.util.WeakHashMap(id=962)
>>> myDomain: instance of java.security.ProtectionDomain(id=963)
>>> subPolicies: instance of com.sun.jini.collection.WeakIdentityMap(id=964)
>>> subPolicyCache: instance of
>>> com.sun.jini.collection.WeakIdentityMap(id=965)
>>> mainPolicy: instance of
>>> net.jini.security.policy.DynamicPolicyProvider(id=966)
>>> $assertionsDisabled: true
>>> java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of
>>> java.security.Policy$UnsupportedEmptyCollection(id=967)
>>> java.security.Policy.policy: instance of
>>> com.sun.jini.start.AggregatePolicyProvider(id=959)
>>> java.security.Policy.debug: null
>>> java.security.Policy.pdMapping: instance of
>>> java.util.WeakHashMap(id=968)
>>> }
>>> main[1] exit
>>>
>>
>
>


Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
UPDATE:

The statement: THIS TEST HAS BEEN PASSING WHEN IT SHOULD FAIL. is 
incorrect.  The sun policy provider does work correctly.

In this case CodeSource in ProtectionDomain contains a URL which hasn't 
been normalised (doesn't contain the full path).

CodeSourceGrant normalised the CodeSource.  URIGrant doesn't perform 
normalisation, so I need to add that functionality to fix it.

Then I'll move on to figuring out why event's are missing.

Cheers,

Peter.

Peter Firmstone wrote:
> Solved one bug, this is the output of the context from the test that 
> fails, I thought this was using the sun policy file provider but it 
> isn't, there must be a default value set somewhere else.  1 down, 4 to 
> go.
>
> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>
> Had to stabilise the concurrency problem first, but this is the 
> story:  THIS TEST HAS BEEN PASSING WHEN IT SHOULD FAIL.
>
>   1. The codesource location is missing the qa/ directory path, because
>      this property either hasn't been set or is missing:
>      "com.sun.jini.qa.home"
>   2. The permissions are not granted simply because the codesource
>      location is wrong in the ProtectionDomain, in other words this
>      test is behaving correctly, all I need to do is set the property
>      for the test to pass (or figure out why the property is not set). 
>      That's my job for tommorrow.
>   3. The sun.security.provider.PolicyFile provider should be failing
>      this test also, because the codesource path is incorrect, I don't
>      know why it is granting the permission, but it shouldn't be,
>      unless it hasn't successfully expanded the property in
>      GetContextTest.policy:
>      "file:${com.sun.jini.test.home}${/}lib${/}qa1-start-cb2.jar"
>
>
> Breakpoint hit: "thread=main", 
> com.sun.jini.start.AggregatePolicyProvider.implies(), line=222 bci=0
>
> main[1] dump permission
> permission = {
>    serialVersionUID: 7399184964622342223
>    java.security.BasicPermission.serialVersionUID: 6279438298436773498
>    java.security.BasicPermission.wildcard: false
>    java.security.BasicPermission.path: "A"
>    java.security.BasicPermission.exitVM: false
>    java.security.Permission.serialVersionUID: -5636570222231596674
>    java.security.Permission.name: "A"
> }
> main[1] step up
> >
> Step completed: "thread=main", 
> java.security.ProtectionDomain.implies(), line=224 bci=24
>
> main[1] step up
> >
> Step completed: "thread=main", 
> java.security.AccessControlContext.checkPermission(), line=352 bci=325
>
> main[1] dump this
> this = {
>    context: instance of java.security.ProtectionDomain[5] (id=1033)
>    isPrivileged: false
>    privilegedContext: instance of 
> java.security.AccessControlContext(id=1035)
>    combiner: null
>    debugInit: true
>    debug: null
> }
> main[1] clear com.sun.jini.start.AggregatePolicyProvider.implies
> Removed: breakpoint com.sun.jini.start.AggregatePolicyProvider.implies
> main[1] print context[0]
> context[0] = "ProtectionDomain  
> (file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
> <no signer certificates>)
> sun.misc.Launcher$AppClassLoader@93dee9
> <no principals>
> java.security.Permissions@1536eec (
> (java.security.AllPermission <all permissions> <all actions>)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
> read)
> (java.lang.RuntimePermission exitVM)
> )
>
> "
> main[1] print context[1]
> context[1] = "ProtectionDomain  
> (file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar 
> <no signer certificates>)
> sun.misc.Launcher$AppClassLoader@93dee9
> <no principals>
> java.security.Permissions@43da1b (
> (java.security.SecurityPermission getPolicy)
> (java.security.SecurityPermission setPolicy)
> (java.security.SecurityPermission getProperty.*)
> (java.security.AllPermission <all permissions> <all actions>)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission * read,write)
> (java.util.PropertyPermission os.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission path.separator read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission java.specification.vendor read)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar 
> read)
> (java.lang.RuntimePermission getClassLoader)
> (java.lang.RuntimePermission accessClassInPackage.*)
> (java.lang.RuntimePermission createClassLoader)
> (java.lang.RuntimePermission setContextClassLoader)
> (java.lang.RuntimePermission stopThread)
> (java.lang.RuntimePermission exitVM)
> )
>
> "
> main[1] print context[2]
> context[2] = "ProtectionDomain  (file:lib/qa1-start-cb1.jar <no signer 
> certificates>)
> java.net.URLClassLoader@e2d0b2
> <no principals>
> java.security.Permissions@14ed577 (
> (java.security.SecurityPermission getPolicy)
> (java.security.SecurityPermission setPolicy)
> (java.security.SecurityPermission getProperty.*)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission * read,write)
> (java.util.PropertyPermission os.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission path.separator read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission java.specification.vendor read)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/- read)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
> (java.io.FilePermission lib/qa1-start-cb1.jar read)
> (java.lang.RuntimePermission getClassLoader)
> (java.lang.RuntimePermission accessClassInPackage.*)
> (java.lang.RuntimePermission createClassLoader)
> (java.lang.RuntimePermission setContextClassLoader)
> (java.lang.RuntimePermission stopThread)
> )
>
> "
> main[1] print context[3]
> context[3] = "ProtectionDomain  (file:lib/qa1-start-cb3.jar <no signer 
> certificates>)
> java.net.URLClassLoader@e63606
> <no principals>
> java.security.Permissions@4bb369 (
> (java.security.SecurityPermission getPolicy)
> (java.security.SecurityPermission setPolicy)
> (java.security.SecurityPermission getProperty.*)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission * read,write)
> (java.util.PropertyPermission os.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission path.separator read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission java.specification.vendor read)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/- read)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
> (java.io.FilePermission lib/qa1-start-cb3.jar read)
> (java.lang.RuntimePermission getClassLoader)
> (java.lang.RuntimePermission accessClassInPackage.*)
> (java.lang.RuntimePermission createClassLoader)
> (java.lang.RuntimePermission setContextClassLoader)
> (java.lang.RuntimePermission stopThread)
> )
>
> "
> main[1] print context[4]
> context[4] = "ProtectionDomain  (file:lib/qa1-start-cb2.jar <no signer 
> certificates>)
> java.net.URLClassLoader@2af8f5
> <no principals>
> java.security.Permissions@1dd7bc5 (
> (java.security.SecurityPermission getPolicy)
> (java.security.SecurityPermission setPolicy)
> (java.security.SecurityPermission getProperty.*)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission * read,write)
> (java.util.PropertyPermission os.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission path.separator read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission java.specification.vendor read)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/- read)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
> (java.io.FilePermission lib/qa1-start-cb2.jar read)
> (java.lang.RuntimePermission getClassLoader)
> (java.lang.RuntimePermission accessClassInPackage.*)
> (java.lang.RuntimePermission createClassLoader)
> (java.lang.RuntimePermission setContextClassLoader)
> (java.lang.RuntimePermission stopThread)
> )
>
> "
> main[1] print 
> net.jini.security.policy.DynamicPolicyProvider.defaultBasePolicyClass
> net.jini.security.policy.DynamicPolicyProvider.defaultBasePolicyClass 
> = "net.jini.security.policy.PolicyFileProvider"
> main[1] print 
> net.jini.security.policy.PolicyFileProvider.defaultBasePolicyClass
> net.jini.security.policy.PolicyFileProvider.defaultBasePolicyClass = 
> "sun.security.provider.PolicyFile"
> main[1] dump java.security.Policy.policy
> java.security.Policy.policy = {
>    mainPolicyClassProperty: 
> "com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
>    defaultMainPolicyClass: 
> "net.jini.security.policy.DynamicPolicyProvider"
>    trustGetCCL: instance of 
> org.apache.river.impl.util.ReferenceConcurrentMap(id=1053)
>    myDomain: instance of java.security.ProtectionDomain(id=1036)
>    subPolicies: instance of 
> org.apache.river.impl.util.ReferenceConcurrentMap(id=1054)
>    subPolicyChildClassLoaderCache: instance of 
> org.apache.river.impl.util.ReferenceConcurrentMap(id=1055)
>    policyUpdate: instance of 
> java.util.concurrent.locks.ReentrantReadWriteLock(id=1056)
>    policyRead: instance of 
> java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock(id=1057)
>    policyWrite: instance of 
> java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock(id=1058)
>    mainPolicy: instance of 
> net.jini.security.policy.DynamicPolicyProvider(id=1059)
>    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
> java.security.Policy$UnsupportedEmptyCollection(id=1060)
>    java.security.Policy.policy: instance of 
> com.sun.jini.start.AggregatePolicyProvider(id=1020)
>    java.security.Policy.debug: null
>    java.security.Policy.pdMapping: instance of 
> java.util.WeakHashMap(id=1061)
> }
> main[1] dump java.security.Policy.policy.mainPolicy.basePolicy
> java.security.Policy.policy.mainPolicy.basePolicy = {
>    lock: instance of java.util.concurrent.locks.ReentrantLock(id=1063)
>    first: false
>    policies: instance of 
> java.util.Collections$UnmodifiableCollection(id=1064)
>    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
> java.security.Policy$UnsupportedEmptyCollection(id=1060)
>    java.security.Policy.policy: instance of 
> com.sun.jini.start.AggregatePolicyProvider(id=1020)
>    java.security.Policy.debug: null
>    java.security.Policy.pdMapping: null
> }
> main[1] print java.security.Policy.policy.mainPolicy.basePolicy
> java.security.Policy.policy.mainPolicy.basePolicy = 
> "com.sun.jini.qa.harness.MergedPolicyProvider@27cd63"
> main[1] print java.security.Policy.policy.mainPolicy.basePolicy.policies
> java.security.Policy.policy.mainPolicy.basePolicy.policies = 
> "[net.jini.security.policy.PolicyFileProvider@553763, 
> net.jini.security.policy.PolicyFileProvider@a75737]"
> main[1] dump java.security.Policy.policy.mainPolicy.basePolicy.policies
> java.security.Policy.policy.mainPolicy.basePolicy.policies = {
>    serialVersionUID: 1820017752578914078
>    c: instance of java.util.ArrayList(id=1067)
> }
> main[1] dump java.security.Policy.policy.mainPolicy.basePolicy.policies.c
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c = {
>    serialVersionUID: 8683452581122892189
>    elementData: instance of java.lang.Object[10] (id=1068)
>    size: 2
>    java.util.AbstractList.modCount: 2
> }
> main[1] dump 
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0] 
>
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0] 
> = {
>    basePolicyClassProperty: 
> "net.jini.security.policy.PolicyFileProvider.basePolicyClass"
>    defaultBasePolicyClass: "sun.security.provider.PolicyFile"
>    policyProperty: "java.security.policy"
>    propertyLock: instance of java.lang.Object(id=1072)
>    umbrella: instance of 
> net.jini.security.policy.UmbrellaGrantPermission(id=1073)
>    policyFile: null
>    basePolicy: instance of 
> net.jini.security.policy.ConcurrentPolicyFile(id=1074)
>    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
> java.security.Policy$UnsupportedEmptyCollection(id=1060)
>    java.security.Policy.policy: instance of 
> com.sun.jini.start.AggregatePolicyProvider(id=1020)
>    java.security.Policy.debug: null
>    java.security.Policy.pdMapping: null
> }
> main[1] dump 
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0].basePolicy 
>
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0].basePolicy 
> = {
>    JAVA_SECURITY_POLICY: "java.security.policy"
>    POLICY_URL_PREFIX: "policy.url."
>    rl: instance of 
> java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock(id=1076)
>    wl: instance of 
> java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock(id=1077)
>    grants: instance of java.util.ArrayList(id=1078)
>    cache: instance of 
> org.apache.river.impl.util.ReferenceConcurrentMap(id=1079)
>    impliesCache: instance of 
> org.apache.river.impl.util.ReferenceConcurrentMap(id=1080)
>    parser: instance of 
> org.apache.river.impl.security.policy.util.DefaultPolicyParser(id=1081)
>    guard: instance of java.security.SecurityPermission(id=1082)
>    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
> java.security.Policy$UnsupportedEmptyCollection(id=1060)
>    java.security.Policy.policy: instance of 
> com.sun.jini.start.AggregatePolicyProvider(id=1020)
>    java.security.Policy.debug: null
>    java.security.Policy.pdMapping: null
> }
> main[1]  dump 
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[1].basePolicy 
>
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[1].basePolicy 
> = {
>    JAVA_SECURITY_POLICY: "java.security.policy"
>    POLICY_URL_PREFIX: "policy.url."
>    rl: instance of 
> java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock(id=1085)
>    wl: instance of 
> java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock(id=1086)
>    grants: instance of java.util.ArrayList(id=1087)
>    cache: instance of 
> org.apache.river.impl.util.ReferenceConcurrentMap(id=1088)
>    impliesCache: instance of 
> org.apache.river.impl.util.ReferenceConcurrentMap(id=1089)
>    parser: instance of 
> org.apache.river.impl.security.policy.util.DefaultPolicyParser(id=1090)
>    guard: instance of java.security.SecurityPermission(id=1082)
>    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
> java.security.Policy$UnsupportedEmptyCollection(id=1060)
>    java.security.Policy.policy: instance of 
> com.sun.jini.start.AggregatePolicyProvider(id=1020)
>    java.security.Policy.debug: null
>    java.security.Policy.pdMapping: null
> }
>
> main[1] print 
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[1].basePolicy.grants 
>
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[1].basePolicy.grants 
> = "[
> URI: [file:/usr/jdk/instances/jdk1.6.0/jre/lib/ext/*, 
> file:/usr/jdk/packages/lib/ext/*, 
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/*, 
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/*]
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: []
> Certificate's:
> Principals:
>
> Permissions:
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission os.name read)
> (java.lang.RuntimePermission stopThread)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission path.separator read)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.util.PropertyPermission java.specification.vendor read)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/*]
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-lookup-simulator.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: [file:/usr/jdk/instances/jdk1.6.0/jre/lib/ext/*, 
> file:/usr/jdk/packages/lib/ext/*, 
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/*, 
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/*]
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/*]
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (net.jini.security.GrantPermission java.security.AllPermission "", "")
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-io-marshalinputstream-test.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-mercury-bogusimpl.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-io-marshalledinstance-test.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-testservice1.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (unresolved com.sun.jini.start.SharedActivationPolicyPermission 
> jar:file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar!/harness/policy/all.policy 
> null)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/mahalo.jar]
> Certificate's:
> Principals:
>
> Permissions:
> (unresolved com.sun.jini.start.SharedActivationPolicyPermission 
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/mahalo/bogusMahaloImpl.policy 
> null)
>
> ,
> URI: []
> Certificate's:
> Principals:
>
> Permissions:
> (java.util.PropertyPermission 
> com.sun.jini.reggie.enableImplToStubReplacement read)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/- read)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-testservice2.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (unresolved com.sun.jini.start.SharedActivationPolicyPermission 
> jar:file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar!/harness/policy/all.policy 
> null)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/mercury.jar]
> Certificate's:
> Principals:
>
> Permissions:
> (unresolved com.sun.jini.start.SharedActivationPolicyPermission 
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/mahalo/bogusMahaloImpl.policy 
> null)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/mercury_bogus.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (unresolved com.sun.jini.start.SharedActivationPolicyPermission 
> jar:file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar!/harness/policy/all.policy 
> null)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/fullloggingfilter.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (unresolved com.sun.jini.start.SharedActivationPolicyPermission \- null)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-probe.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (unresolved com.sun.jini.start.SharedActivationPolicyPermission 
> jar:file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar!/harness/policy/all.policy 
> null)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-tests.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ]"
>
> main[1] print 
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0].basePolicy.grants 
>
> java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0].basePolicy.grants 
> = "[
> URI: []
> Certificate's:
> Principals:
>
> Permissions:
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission os.name read)
> (java.lang.RuntimePermission stopThread)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission path.separator read)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.util.PropertyPermission java.specification.vendor read)
>
> ,
> URI: [file:/usr/jdk/instances/jdk1.6.0/jre/lib/ext/*, 
> file:/usr/jdk/packages/lib/ext/*, 
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/*, 
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/*]
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jini-ext.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-jini-latest.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-cb1.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.lang.RuntimePermission A)
> (java.lang.RuntimePermission B)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/harness.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: []
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.SecurityPermission setPolicy)
> (java.security.SecurityPermission getProperty.*)
> (java.lang.RuntimePermission createClassLoader)
> (java.lang.RuntimePermission setContextClassLoader)
> (java.security.SecurityPermission getPolicy)
> (java.lang.RuntimePermission accessClassInPackage.*)
> (java.util.PropertyPermission * read,write)
> (java.lang.RuntimePermission getClassLoader)
> (java.io.FilePermission 
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: [file:/usr/jdk/instances/jdk1.6.0/jre/lib/ext/*]
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-cb3.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar]
> Certificate's:
> Principals:
>
> Permissions:
> (java.security.AllPermission <all permissions> <all actions>)
>
> ,
> URI: 
> [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-cb2.jar] 
>
> Certificate's:
> Principals:
>
> Permissions:
> (java.lang.RuntimePermission A)
> (java.lang.RuntimePermission C)
>
> ]"
> main[1]
>
>
>
>
>
> Peter Firmstone wrote:
>> Here's the context, including permissions, so yes RuntimePermission A 
>> passes in this case, this is the passing test, now all I have to do 
>> is figure out the domain that doesn't have RuntimePermission A in the 
>> failing test, that should narrow it down.
>>
>> context[0] = "ProtectionDomain  
>> (file:/opt/src/river/trunk/qa/lib/jiniharness.jar <no signer 
>> certificates>)
>> sun.misc.Launcher$AppClassLoader@affc70
>> <no principals>
>> java.security.Permissions@1570945 (
>> (java.security.AllPermission <all permissions> <all actions>)
>> (java.lang.RuntimePermission exitVM)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/jiniharness.jar 
>> read)
>> )
>>
>> "
>> main[1] print context[1]
>> context[1] = "ProtectionDomain  
>> (file:/opt/src/river/trunk/lib/jsk-platform.jar <no signer 
>> certificates>)
>> sun.misc.Launcher$AppClassLoader@affc70
>> <no principals>
>> java.security.Permissions@1381960 (
>> (net.jini.security.GrantPermission java.security.AllPermission "<all 
>> permissions>", "<all actions>"; java.lang.RuntimePermission 
>> "getClassLoader", ""; java.lang.RuntimePermission 
>> "accessClassInPackage.*", ""; java.lang.RuntimePermission 
>> "createClassLoader", ""; java.lang.RuntimePermission "stopThread", 
>> ""; java.lang.RuntimePermission "setContextClassLoader", ""; 
>> java.lang.RuntimePermission "exitVM", ""; java.io.FilePermission 
>> "/opt/src/river/trunk/qa/lib/*", "read"; java.io.FilePermission 
>> "/opt/src/river/trunk/qa/lib/*", "read"; java.io.FilePermission 
>> "/opt/src/river/trunk/lib/jsk-platform.jar", "read"; 
>> java.net.SocketPermission "localhost:1024-", "listen,resolve"; 
>> java.security.SecurityPermission "getPolicy", ""; 
>> java.security.SecurityPermission "setPolicy", ""; 
>> java.security.SecurityPermission "getProperty.*", ""; 
>> java.util.PropertyPermission "line.separator", "read"; 
>> java.util.PropertyPermission "java.vm.version", "read"; 
>> java.util.PropertyPermission "java.vm.specification.version", "read"; 
>> java.util.PropertyPermission "java.vm.specification.vendor", "read"; 
>> java.util.PropertyPermission "java.vendor.url", "read"; 
>> java.util.PropertyPermission "java.vm.name", "read"; 
>> java.util.PropertyPermission "*", "read,write"; 
>> java.util.PropertyPermission "os.name", "read"; 
>> java.util.PropertyPermission "java.vm.vendor", "read"; 
>> java.util.PropertyPermission "path.separator", "read"; 
>> java.util.PropertyPermission "java.specification.name", "read"; 
>> java.util.PropertyPermission "os.version", "read"; 
>> java.util.PropertyPermission "os.arch", "read"; 
>> java.util.PropertyPermission "java.class.version", "read"; 
>> java.util.PropertyPermission "java.version", "read"; 
>> java.util.PropertyPermission "file.separator", "read"; 
>> java.util.PropertyPermission "java.vendor", "read"; 
>> java.util.PropertyPermission "java.vm.specification.name", "read"; 
>> java.util.PropertyPermission "java.specification.version", "read"; 
>> java.util.PropertyPermission "java.specification.vendor", "read";)
>> (java.security.AllPermission <all permissions> <all actions>)
>> (java.lang.RuntimePermission getClassLoader)
>> (java.lang.RuntimePermission accessClassInPackage.*)
>> (java.lang.RuntimePermission createClassLoader)
>> (java.lang.RuntimePermission stopThread)
>> (java.lang.RuntimePermission setContextClassLoader)
>> (java.lang.RuntimePermission exitVM)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
>> (java.io.FilePermission /opt/src/river/trunk/lib/jsk-platform.jar read)
>> (java.net.SocketPermission localhost:1024- listen,resolve)
>> (java.security.SecurityPermission getPolicy)
>> (java.security.SecurityPermission setPolicy)
>> (java.security.SecurityPermission getProperty.*)
>> (java.util.PropertyPermission line.separator read)
>> (java.util.PropertyPermission java.vm.version read)
>> (java.util.PropertyPermission java.vm.specification.version read)
>> (java.util.PropertyPermission java.vm.specification.vendor read)
>> (java.util.PropertyPermission java.vendor.url read)
>> (java.util.PropertyPermission java.vm.name read)
>> (java.util.PropertyPermission * read,write)
>> (java.util.PropertyPermission os.name read)
>> (java.util.PropertyPermission java.vm.vendor read)
>> (java.util.PropertyPermission path.separator read)
>> (java.util.PropertyPermission java.specification.name read)
>> (java.util.PropertyPermission os.version read)
>> (java.util.PropertyPermission os.arch read)
>> (java.util.PropertyPermission java.class.version read)
>> (java.util.PropertyPermission java.version read)
>> (java.util.PropertyPermission file.separator read)
>> (java.util.PropertyPermission java.vendor read)
>> (java.util.PropertyPermission java.vm.specification.name read)
>> (java.util.PropertyPermission java.specification.version read)
>> (java.util.PropertyPermission java.specification.vendor read)
>> )
>>
>> "
>> main[1] print context[2]
>> context[2] = "ProtectionDomain  (file:lib/qa1-start-cb1.jar <no 
>> signer certificates>)
>> java.net.URLClassLoader@7f58ef
>> <no principals>
>> java.security.Permissions@4845aa (
>> (java.lang.RuntimePermission getClassLoader)
>> (java.lang.RuntimePermission accessClassInPackage.*)
>> (java.lang.RuntimePermission createClassLoader)
>> (java.lang.RuntimePermission A)
>> (java.lang.RuntimePermission B)
>> (java.lang.RuntimePermission stopThread)
>> (java.lang.RuntimePermission setContextClassLoader)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/- read)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
>> (java.io.FilePermission lib/qa1-start-cb1.jar read)
>> (java.net.SocketPermission localhost:1024- listen,resolve)
>> (java.security.SecurityPermission getPolicy)
>> (java.security.SecurityPermission setPolicy)
>> (java.security.SecurityPermission getProperty.*)
>> (java.util.PropertyPermission line.separator read)
>> (java.util.PropertyPermission java.vm.version read)
>> (java.util.PropertyPermission java.vm.specification.version read)
>> (java.util.PropertyPermission java.vm.specification.vendor read)
>> (java.util.PropertyPermission java.vendor.url read)
>> (java.util.PropertyPermission java.vm.name read)
>> (java.util.PropertyPermission * read,write)
>> (java.util.PropertyPermission os.name read)
>> (java.util.PropertyPermission java.vm.vendor read)
>> (java.util.PropertyPermission path.separator read)
>> (java.util.PropertyPermission java.specification.name read)
>> (java.util.PropertyPermission os.version read)
>> (java.util.PropertyPermission os.arch read)
>> (java.util.PropertyPermission java.class.version read)
>> (java.util.PropertyPermission java.version read)
>> (java.util.PropertyPermission file.separator read)
>> (java.util.PropertyPermission java.vendor read)
>> (java.util.PropertyPermission java.vm.specification.name read)
>> (java.util.PropertyPermission java.specification.version read)
>> (java.util.PropertyPermission java.specification.vendor read)
>> )
>>
>> "
>> main[1] print context[3]
>> context[3] = "ProtectionDomain  (file:lib/qa1-start-cb3.jar <no 
>> signer certificates>)
>> java.net.URLClassLoader@64023c
>> <no principals>
>> java.security.Permissions@4bfe6b (
>> (net.jini.security.GrantPermission java.security.AllPermission "<all 
>> permissions>", "<all actions>"; java.lang.RuntimePermission 
>> "getClassLoader", ""; java.lang.RuntimePermission 
>> "accessClassInPackage.*", ""; java.lang.RuntimePermission 
>> "createClassLoader", ""; java.lang.RuntimePermission "stopThread", 
>> ""; java.lang.RuntimePermission "setContextClassLoader", ""; 
>> java.io.FilePermission "/opt/src/river/trunk/qa/lib/*", "read"; 
>> java.io.FilePermission "/opt/src/river/trunk/qa/lib/*", "read"; 
>> java.io.FilePermission "lib/qa1-start-cb3.jar", "read"; 
>> java.net.SocketPermission "localhost:1024-", "listen,resolve"; 
>> java.security.SecurityPermission "getPolicy", ""; 
>> java.security.SecurityPermission "setPolicy", ""; 
>> java.security.SecurityPermission "getProperty.*", ""; 
>> java.util.PropertyPermission "line.separator", "read"; 
>> java.util.PropertyPermission "java.vm.version", "read"; 
>> java.util.PropertyPermission "java.vm.specification.version", "read"; 
>> java.util.PropertyPermission "java.vm.specification.vendor", "read"; 
>> java.util.PropertyPermission "java.vendor.url", "read"; 
>> java.util.PropertyPermission "java.vm.name", "read"; 
>> java.util.PropertyPermission "*", "read,write"; 
>> java.util.PropertyPermission "os.name", "read"; 
>> java.util.PropertyPermission "java.vm.vendor", "read"; 
>> java.util.PropertyPermission "path.separator", "read"; 
>> java.util.PropertyPermission "java.specification.name", "read"; 
>> java.util.PropertyPermission "os.version", "read"; 
>> java.util.PropertyPermission "os.arch", "read"; 
>> java.util.PropertyPermission "java.class.version", "read"; 
>> java.util.PropertyPermission "java.version", "read"; 
>> java.util.PropertyPermission "file.separator", "read"; 
>> java.util.PropertyPermission "java.vendor", "read"; 
>> java.util.PropertyPermission "java.vm.specification.name", "read"; 
>> java.util.PropertyPermission "java.specification.version", "read"; 
>> java.util.PropertyPermission "java.specification.vendor", "read";)
>> (java.security.AllPermission <all permissions> <all actions>)
>> (java.lang.RuntimePermission getClassLoader)
>> (java.lang.RuntimePermission accessClassInPackage.*)
>> (java.lang.RuntimePermission createClassLoader)
>> (java.lang.RuntimePermission stopThread)
>> (java.lang.RuntimePermission setContextClassLoader)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
>> (java.io.FilePermission lib/qa1-start-cb3.jar read)
>> (java.net.SocketPermission localhost:1024- listen,resolve)
>> (java.security.SecurityPermission getPolicy)
>> (java.security.SecurityPermission setPolicy)
>> (java.security.SecurityPermission getProperty.*)
>> (java.util.PropertyPermission line.separator read)
>> (java.util.PropertyPermission java.vm.version read)
>> (java.util.PropertyPermission java.vm.specification.version read)
>> (java.util.PropertyPermission java.vm.specification.vendor read)
>> (java.util.PropertyPermission java.vendor.url read)
>> (java.util.PropertyPermission java.vm.name read)
>> (java.util.PropertyPermission * read,write)
>> (java.util.PropertyPermission os.name read)
>> (java.util.PropertyPermission java.vm.vendor read)
>> (java.util.PropertyPermission path.separator read)
>> (java.util.PropertyPermission java.specification.name read)
>> (java.util.PropertyPermission os.version read)
>> (java.util.PropertyPermission os.arch read)
>> (java.util.PropertyPermission java.class.version read)
>> (java.util.PropertyPermission java.version read)
>> (java.util.PropertyPermission file.separator read)
>> (java.util.PropertyPermission java.vendor read)
>> (java.util.PropertyPermission java.vm.specification.name read)
>> (java.util.PropertyPermission java.specification.version read)
>> (java.util.PropertyPermission java.specification.vendor read)
>> )
>>
>> "
>> main[1] print context[4]
>> context[4] = "ProtectionDomain  (file:lib/qa1-start-cb2.jar <no 
>> signer certificates>)
>> java.net.URLClassLoader@1d9e282
>> <no principals>
>> java.security.Permissions@366573 (
>> (java.lang.RuntimePermission getClassLoader)
>> (java.lang.RuntimePermission accessClassInPackage.*)
>> (java.lang.RuntimePermission createClassLoader)
>> (java.lang.RuntimePermission A)
>> (java.lang.RuntimePermission C)
>> (java.lang.RuntimePermission stopThread)
>> (java.lang.RuntimePermission setContextClassLoader)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/- read)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
>> (java.io.FilePermission lib/qa1-start-cb2.jar read)
>> (java.net.SocketPermission localhost:1024- listen,resolve)
>> (java.security.SecurityPermission getPolicy)
>> (java.security.SecurityPermission setPolicy)
>> (java.security.SecurityPermission getProperty.*)
>> (java.util.PropertyPermission line.separator read)
>> (java.util.PropertyPermission java.vm.version read)
>> (java.util.PropertyPermission java.vm.specification.version read)
>> (java.util.PropertyPermission java.vm.specification.vendor read)
>> (java.util.PropertyPermission java.vendor.url read)
>> (java.util.PropertyPermission java.vm.name read)
>> (java.util.PropertyPermission * read,write)
>> (java.util.PropertyPermission os.name read)
>> (java.util.PropertyPermission java.vm.vendor read)
>> (java.util.PropertyPermission path.separator read)
>> (java.util.PropertyPermission java.specification.name read)
>> (java.util.PropertyPermission os.version read)
>> (java.util.PropertyPermission os.arch read)
>> (java.util.PropertyPermission java.class.version read)
>> (java.util.PropertyPermission java.version read)
>> (java.util.PropertyPermission file.separator read)
>> (java.util.PropertyPermission java.vendor read)
>> (java.util.PropertyPermission java.vm.specification.name read)
>> (java.util.PropertyPermission java.specification.version read)
>> (java.util.PropertyPermission java.specification.vendor read)
>> )
>>
>> "
>>
>>
>>
>>
>> Peter Firmstone wrote:
>>> This is one of the contexts from the passing test during the check 
>>> for RuntimePermission B, unfortunately the codesource locations are 
>>> missing the path property com.sun.jini.qa.home.
>>>
>>> Somehow this context passed RuntimePermission A, but you can't see 
>>> that in the ProtectionDomain toString(), although I'll have to do 
>>> that with security debug enabled to see if there are any rejected 
>>> permissions.
>>>
>>> main[1] print permission
>>> permission = "(java.lang.RuntimePermission B)"
>>> main[1] step up
>>> >
>>> Step completed: "thread=main", 
>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=16
>>>
>>> main[1] step up
>>> >
>>> Step completed: "thread=main", 
>>> java.security.ProtectionDomain.implies(), line=224 bci=24
>>>
>>> main[1] step up
>>> >
>>> Step completed: "thread=main", 
>>> java.security.AccessControlContext.checkPermission(), line=352 bci=325
>>>
>>> main[1] dump this
>>> this = {
>>>    context: instance of java.security.ProtectionDomain[5] (id=1030)
>>>    isPrivileged: false
>>>    privilegedContext: instance of 
>>> java.security.AccessControlContext(id=1032)
>>>    combiner: null
>>>    debugInit: true
>>>    debug: null
>>> }
>>> main[1] print this.context[0]
>>> this.context[0] = "ProtectionDomain  
>>> (file:/opt/src/river/trunk/qa/lib/jiniharness.jar <no signer 
>>> certificates>) sun.misc.Launcher$AppClassLoader@93dee9
>>> <no principals>
>>> java.security.Permissions@115d06c (
>>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/jiniharness.jar 
>>> read)
>>> (java.lang.RuntimePermission exitVM)
>>> )
>>>
>>> "
>>> main[1] print this.context[1]
>>> this.context[1] = "ProtectionDomain  
>>> (file:/opt/src/river/trunk/lib/jsk-platform.jar <no signer 
>>> certificates>)
>>> sun.misc.Launcher$AppClassLoader@93dee9
>>> <no principals>
>>> java.security.Permissions@13e15f7 (
>>> (java.io.FilePermission /opt/src/river/trunk/lib/jsk-platform.jar read)
>>> (java.lang.RuntimePermission exitVM)
>>> )
>>>
>>> "
>>> main[1] print this.context[2]
>>> this.context[2] = "ProtectionDomain  (file:lib/qa1-start-cb1.jar <no 
>>> signer certificates>)
>>> java.net.URLClassLoader@1a99347
>>> <no principals>
>>> java.security.Permissions@569c60 (
>>> (java.io.FilePermission lib/qa1-start-cb1.jar read)
>>> )
>>>
>>> "
>>> main[1] print this.context[3]
>>> this.context[3] = "ProtectionDomain  (file:lib/qa1-start-cb3.jar <no 
>>> signer certificates>)
>>> java.net.URLClassLoader@e45b5e
>>> <no principals>
>>> java.security.Permissions@17f11fb (
>>> (java.io.FilePermission lib/qa1-start-cb3.jar read)
>>> )
>>>
>>> "
>>> main[1] print this.context[4]
>>> this.context[4] = "ProtectionDomain  (file:lib/qa1-start-cb2.jar <no 
>>> signer certificates>)
>>> java.net.URLClassLoader@94af2f
>>> <no principals>
>>> java.security.Permissions@1f44ec7 (
>>> (java.io.FilePermission lib/qa1-start-cb2.jar read)
>>> )
>>>
>>> "
>>> main[1]
>>>
>>> Peter Firmstone wrote:
>>>> It seems it isn't too hard to lockup the test on the main trunk, 
>>>> using jdb, then exiting the debugger, leaving the test in a hung 
>>>> state.
>>>>
>>>> I've modified AggregratePolicyProvider in skunk (see recent 
>>>> commit), after the mods I'm unable to get it to lock up after 
>>>> exiting the debugger.
>>>>
>>>> From river trunk:
>>>>
>>>> bash-3.00$ jstack 19499
>>>> 2011-12-27 18:29:02
>>>> Full thread dump Java HotSpot(TM) Server VM (20.0-b11 mixed mode):
>>>>
>>>> "Attach Listener" daemon prio=3 tid=0x001d8c00 nid=0x14 waiting on 
>>>> condition [0x00000000]
>>>>   java.lang.Thread.State: RUNNABLE
>>>>
>>>> "test-err" daemon prio=3 tid=0x001d2400 nid=0x13 runnable [0xb667f000]
>>>>   java.lang.Thread.State: RUNNABLE
>>>>        at java.io.FileInputStream.readBytes(Native Method)
>>>>        at java.io.FileInputStream.read(FileInputStream.java:198)
>>>>        at 
>>>> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:218) 
>>>>
>>>>        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>>>>        at java.lang.Thread.run(Thread.java:662)
>>>>
>>>> "test-out" daemon prio=3 tid=0x001d1c00 nid=0x12 runnable [0xb677f000]
>>>>   java.lang.Thread.State: RUNNABLE
>>>>        at java.io.FileInputStream.readBytes(Native Method)
>>>>        at java.io.FileInputStream.read(FileInputStream.java:220)
>>>>        at 
>>>> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227) 
>>>>
>>>>        at 
>>>> java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>>>>        at 
>>>> java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
>>>>        at 
>>>> java.io.BufferedInputStream.read(BufferedInputStream.java:317)
>>>>        - locked <0xe674ec70> (a java.io.BufferedInputStream)
>>>>        at java.io.FilterInputStream.read(FilterInputStream.java:90)
>>>>        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>>>>        at java.lang.Thread.run(Thread.java:662)
>>>>
>>>> "process reaper" daemon prio=3 tid=0x00247c00 nid=0x11 runnable 
>>>> [0xb687f000]
>>>>   java.lang.Thread.State: RUNNABLE
>>>>        at java.lang.UNIXProcess.waitForProcessExit(Native Method)
>>>>        at java.lang.UNIXProcess.access$900(UNIXProcess.java:17)
>>>>        at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86)
>>>>
>>>> "Keepalive" daemon prio=3 tid=0x002e6c00 nid=0x10 runnable 
>>>> [0xb697f000]
>>>>   java.lang.Thread.State: RUNNABLE
>>>>        at java.net.PlainSocketImpl.socketAccept(Native Method)
>>>>        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
>>>>        - locked <0xe662d6b8> (a java.net.SocksSocketImpl)
>>>>        at java.net.ServerSocket.implAccept(ServerSocket.java:462)
>>>>        at java.net.ServerSocket.accept(ServerSocket.java:430)
>>>>        at 
>>>> com.sun.jini.qa.harness.MasterHarness$KeepAlivePort.run(MasterHarness.java:254) 
>>>>
>>>>        at java.lang.Thread.run(Thread.java:662)
>>>>
>>>> "no heart without soul" daemon prio=3 tid=0x00180400 nid=0xf 
>>>> waiting on condition [0xb6a7f000]
>>>>   java.lang.Thread.State: TIMED_WAITING (sleeping)
>>>>        at java.lang.Thread.sleep(Native Method)
>>>>        at 
>>>> com.sun.jini.qa.harness.HeartOfTheMachine.ticktack(HeartOfTheMachine.java:63) 
>>>>
>>>>        at 
>>>> com.sun.jini.qa.harness.HeartOfTheMachine.access$000(HeartOfTheMachine.java:29) 
>>>>
>>>>        at 
>>>> com.sun.jini.qa.harness.HeartOfTheMachine$1.run(HeartOfTheMachine.java:45) 
>>>>
>>>>        at java.lang.Thread.run(Thread.java:662)
>>>>
>>>> "Low Memory Detector" daemon prio=3 tid=0x00122c00 nid=0xd runnable 
>>>> [0x00000000]
>>>>   java.lang.Thread.State: RUNNABLE
>>>>
>>>> "C2 CompilerThread1" daemon prio=3 tid=0x00120000 nid=0xc waiting 
>>>> on condition [0x00000000]
>>>>   java.lang.Thread.State: RUNNABLE
>>>>
>>>> "C2 CompilerThread0" daemon prio=3 tid=0x0011d800 nid=0xb waiting 
>>>> on condition [0x00000000]
>>>>   java.lang.Thread.State: RUNNABLE
>>>>
>>>> "Signal Dispatcher" daemon prio=3 tid=0x0011c000 nid=0xa runnable 
>>>> [0x00000000]
>>>>   java.lang.Thread.State: RUNNABLE
>>>>
>>>> "Finalizer" daemon prio=3 tid=0x0010bc00 nid=0x9 in Object.wait() 
>>>> [0xb707f000]
>>>>   java.lang.Thread.State: WAITING (on object monitor)
>>>>        at java.lang.Object.wait(Native Method)
>>>>        - waiting on <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>>>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>>>>        - locked <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>>>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>>>>        at 
>>>> java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
>>>>
>>>> "Reference Handler" daemon prio=3 tid=0x00107000 nid=0x8 in 
>>>> Object.wait() [0xb717f000]
>>>>   java.lang.Thread.State: WAITING (on object monitor)
>>>>        at java.lang.Object.wait(Native Method)
>>>>        - waiting on <0xe6401050> (a java.lang.ref.Reference$Lock)
>>>>        at java.lang.Object.wait(Object.java:485)
>>>>        at 
>>>> java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>>>>        - locked <0xe6401050> (a java.lang.ref.Reference$Lock)
>>>>
>>>> "main" prio=3 tid=0x00031400 nid=0x2 in Object.wait() [0xfe37f000]
>>>>   java.lang.Thread.State: WAITING (on object monitor)
>>>>        at java.lang.Object.wait(Native Method)
>>>>        - waiting on <0xe674ca40> (a java.lang.UNIXProcess)
>>>>        at java.lang.Object.wait(Object.java:485)
>>>>        at java.lang.UNIXProcess.waitFor(UNIXProcess.java:115)
>>>>        - locked <0xe674ca40> (a java.lang.UNIXProcess)
>>>>        at 
>>>> com.sun.jini.qa.harness.MasterHarness.runTestOtherVM(MasterHarness.java:873) 
>>>>
>>>>        at 
>>>> com.sun.jini.qa.harness.MasterHarness.access$200(MasterHarness.java:119) 
>>>>
>>>>        at 
>>>> com.sun.jini.qa.harness.MasterHarness$TestRunner.run(MasterHarness.java:603) 
>>>>
>>>>        at 
>>>> com.sun.jini.qa.harness.MasterHarness.runTests(MasterHarness.java:430)
>>>>        at com.sun.jini.qa.harness.QARunner.main(QARunner.java:67)
>>>>
>>>> "VM Thread" prio=3 tid=0x00103000 nid=0x7 runnable
>>>>
>>>> "GC task thread#0 (ParallelGC)" prio=3 tid=0x00039000 nid=0x3 runnable
>>>>
>>>> "GC task thread#1 (ParallelGC)" prio=3 tid=0x0003a400 nid=0x4 runnable
>>>>
>>>> "GC task thread#2 (ParallelGC)" prio=3 tid=0x0003b800 nid=0x5 runnable
>>>>
>>>> "GC task thread#3 (ParallelGC)" prio=3 tid=0x0003cc00 nid=0x6 runnable
>>>>
>>>> "VM Periodic Task Thread" prio=3 tid=0x0012cc00 nid=0xe waiting on 
>>>> condition
>>>>
>>>> JNI global references: 1252
>>>>
>>>>
>>>> Dan Creswell wrote:
>>>>> ...
>>>>>
>>>>> On 27 December 2011 01:40, Peter Firmstone <ji...@zeus.net.au> wrote:
>>>>>  
>>>>>> The following is specific to:
>>>>>>
>>>>>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td 
>>>>>>
>>>>>>
>>>>>> I've just come across the concurrency issue (experienced randomly 
>>>>>> when
>>>>>> attempting to debug any of the failing tests) in the existing 
>>>>>> River trunk
>>>>>> code, after exiting the debugger, the test is in a deadlocked 
>>>>>> state, here's
>>>>>> the thread dump:
>>>>>>
>>>>>>     
>>>>>
>>>>> Two threads arriving at the same point doesn't imply deadlock, in 
>>>>> fact
>>>>> it can mean quite the opposite. Deadlock requires two threads taking
>>>>> resources in opposite orders so T1 takes a and tries to take b, T2
>>>>> takes b and tries to take a. Thus I wouldn't expect both threads 
>>>>> to be
>>>>> blocking in implies.
>>>>>
>>>>> So both threads arrived at AggregatePolicyProvider.implies but note
>>>>> that method is not synchronized and the stack does not include 
>>>>> mention
>>>>> of getCurrentSubPolicy which does take a lock.
>>>>>
>>>>> Thing is, the debugger itself could be the culprit, especially given
>>>>> what you do below in terms of attempting a print.
>>>>>
>>>>> If at all possible, it's going to be better to leave the debugger out
>>>>> and wait for the test to deadlock, after which using jstack will give
>>>>> a full dump and include a note of locks taken as well (something it
>>>>> looks like the debugger above, doesn't do).
>>>>>
>>>>>  
>>>>>> In this case I've tried to print the domain (ProtectionDomain), 
>>>>>> as you can
>>>>>> see two threads have arrived at the same breakpoint.
>>>>>>
>>>>>> jdb -attach 8000
>>>>>> Set uncaught java.lang.Throwable
>>>>>> Set deferred uncaught java.lang.Throwable
>>>>>> Initializing jdb ...
>>>>>>     VM Started: No frames on the current call stack
>>>>>>
>>>>>> main[1] stop in com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>> Deferring breakpoint 
>>>>>> com.sun.jini.start.AggregatePolicyProvider.implies.
>>>>>> It will be set after the class is loaded.
>>>>>> main[1] run
>>>>>>  
>>>>>>> Set deferred breakpoint 
>>>>>>> com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>>>       
>>>>>> Breakpoint hit: "thread=main",
>>>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>>>
>>>>>> main[1] print domain
>>>>>>
>>>>>> Breakpoint hit: "thread=main",
>>>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>>>
>>>>>> main[1] where all
>>>>>> Signal Dispatcher:
>>>>>> Finalizer:
>>>>>>  [1] java.lang.Object.wait (native method)
>>>>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run 
>>>>>> (Finalizer.java:159)
>>>>>> Reference Handler:
>>>>>>  [1] java.lang.Object.wait (native method)
>>>>>>  [2] java.lang.Object.wait (Object.java:485)
>>>>>>  [3] java.lang.ref.Reference$ReferenceHandler.run 
>>>>>> (Reference.java:116)
>>>>>> main:
>>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>> (AggregatePolicyProvider.java:201)
>>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>>> (ProtectionDomain.java:224)
>>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>>> (AccessControlContext.java:352)
>>>>>>  [4] java.security.AccessController.checkPermission
>>>>>> (AccessController.java:546)
>>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>>> (SecurityManager.java:532)
>>>>>>  [6] java.security.ProtectionDomain.seeAllp 
>>>>>> (ProtectionDomain.java:295)
>>>>>>  [7] java.security.ProtectionDomain.toString 
>>>>>> (ProtectionDomain.java:255)
>>>>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>> (AggregatePolicyProvider.java:201)
>>>>>>  [9] java.security.ProtectionDomain.implies 
>>>>>> (ProtectionDomain.java:224)
>>>>>>  [10] java.security.AccessControlContext.checkPermission
>>>>>> (AccessControlContext.java:352)
>>>>>>  [11] java.security.AccessController.checkPermission
>>>>>> (AccessController.java:546)
>>>>>>  [12] java.lang.SecurityManager.checkPermission 
>>>>>> (SecurityManager.java:532)
>>>>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>>>>> (SecurityManager.java:594)
>>>>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>>>> (ClassLoader.java:177)
>>>>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>>>>  [16] java.security.SecureClassLoader.<init> 
>>>>>> (SecureClassLoader.java:93)
>>>>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>>>>  [18]
>>>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>>>
>>>>>> (GetContextTest.java:85)
>>>>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest 
>>>>>> (MasterTest.java:252)
>>>>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>>>> no heart without soul:
>>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>> (AggregatePolicyProvider.java:201)
>>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>>> (ProtectionDomain.java:224)
>>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>>> (AccessControlContext.java:352)
>>>>>>  [4] java.security.AccessController.checkPermission
>>>>>> (AccessController.java:546)
>>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>>> (SecurityManager.java:532)
>>>>>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>>>>  [7] java.io.File.exists (File.java:731)
>>>>>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>>>> (HeartOfTheMachine.java:56)
>>>>>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>>>> (HeartOfTheMachine.java:62)
>>>>>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>>>> (HeartOfTheMachine.java:29)
>>>>>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>>>> (HeartOfTheMachine.java:45)
>>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>>> Thread-2:
>>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>>> Thread-3:
>>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>>> Thread-4:
>>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>>> RequestHandler:
>>>>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>>>>  [4] java.io.BufferedInputStream.read1 
>>>>>> (BufferedInputStream.java:258)
>>>>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>>>>> (ObjectInputStream.java:2,265)
>>>>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>>>> (ObjectInputStream.java:2,278)
>>>>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>>>> (ObjectInputStream.java:2,749)
>>>>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>>>>> (ObjectInputStream.java:779)
>>>>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>>>> (MasterTest.java:323)
>>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>>> main[1] monitor
>>>>>> main[1] step
>>>>>>
>>>>>>     Breakpoint hit: "thread=no heart without soul",
>>>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>>>
>>>>>> no heart without soul[1] where all
>>>>>> Signal Dispatcher:
>>>>>> Finalizer:
>>>>>>  [1] java.lang.Object.wait (native method)
>>>>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run 
>>>>>> (Finalizer.java:159)
>>>>>> Reference Handler:
>>>>>>  [1] java.lang.Object.wait (native method)
>>>>>>  [2] java.lang.Object.wait (Object.java:485)
>>>>>>  [3] java.lang.ref.Reference$ReferenceHandler.run 
>>>>>> (Reference.java:116)
>>>>>> main:
>>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>> (AggregatePolicyProvider.java:201)
>>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>>> (ProtectionDomain.java:224)
>>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>>> (AccessControlContext.java:352)
>>>>>>  [4] java.security.AccessController.checkPermission
>>>>>> (AccessController.java:546)
>>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>>> (SecurityManager.java:532)
>>>>>>  [6] java.security.ProtectionDomain.seeAllp 
>>>>>> (ProtectionDomain.java:295)
>>>>>>  [7] java.security.ProtectionDomain.toString 
>>>>>> (ProtectionDomain.java:255)
>>>>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>> (AggregatePolicyProvider.java:201)
>>>>>>  [9] java.security.ProtectionDomain.implies 
>>>>>> (ProtectionDomain.java:224)
>>>>>>  [10] java.security.AccessControlContext.checkPermission
>>>>>> (AccessControlContext.java:352)
>>>>>>  [11] java.security.AccessController.checkPermission
>>>>>> (AccessController.java:546)
>>>>>>  [12] java.lang.SecurityManager.checkPermission 
>>>>>> (SecurityManager.java:532)
>>>>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>>>>> (SecurityManager.java:594)
>>>>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>>>> (ClassLoader.java:177)
>>>>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>>>>  [16] java.security.SecureClassLoader.<init> 
>>>>>> (SecureClassLoader.java:93)
>>>>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>>>>  [18]
>>>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>>>
>>>>>> (GetContextTest.java:85)
>>>>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest 
>>>>>> (MasterTest.java:252)
>>>>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>>>> no heart without soul:
>>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>> (AggregatePolicyProvider.java:201)
>>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>>> (ProtectionDomain.java:224)
>>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>>> (AccessControlContext.java:352)
>>>>>>  [4] java.security.AccessController.checkPermission
>>>>>> (AccessController.java:546)
>>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>>> (SecurityManager.java:532)
>>>>>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>>>>  [7] java.io.File.exists (File.java:731)
>>>>>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>>>> (HeartOfTheMachine.java:56)
>>>>>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>>>> (HeartOfTheMachine.java:62)
>>>>>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>>>> (HeartOfTheMachine.java:29)
>>>>>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>>>> (HeartOfTheMachine.java:45)
>>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>>> Thread-2:
>>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>>> Thread-3:
>>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>>> Thread-4:
>>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>>> RequestHandler:
>>>>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>>>>  [4] java.io.BufferedInputStream.read1 
>>>>>> (BufferedInputStream.java:258)
>>>>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>>>>> (ObjectInputStream.java:2,265)
>>>>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>>>> (ObjectInputStream.java:2,278)
>>>>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>>>> (ObjectInputStream.java:2,749)
>>>>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>>>>> (ObjectInputStream.java:779)
>>>>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>>>> (MasterTest.java:323)
>>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>>> no heart without soul[1] step
>>>>>>
>>>>>>     Breakpoint hit: "thread=main",
>>>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>>>
>>>>>> main[1] where all
>>>>>> Signal Dispatcher:
>>>>>> Finalizer:
>>>>>>  [1] java.lang.Object.wait (native method)
>>>>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run 
>>>>>> (Finalizer.java:159)
>>>>>> Reference Handler:
>>>>>>  [1] java.lang.Object.wait (native method)
>>>>>>  [2] java.lang.Object.wait (Object.java:485)
>>>>>>  [3] java.lang.ref.Reference$ReferenceHandler.run 
>>>>>> (Reference.java:116)
>>>>>> main:
>>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>> (AggregatePolicyProvider.java:201)
>>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>>> (ProtectionDomain.java:224)
>>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>>> (AccessControlContext.java:352)
>>>>>>  [4] java.security.AccessController.checkPermission
>>>>>> (AccessController.java:546)
>>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>>> (SecurityManager.java:532)
>>>>>>  [6] java.security.ProtectionDomain.seeAllp 
>>>>>> (ProtectionDomain.java:295)
>>>>>>  [7] java.security.ProtectionDomain.toString 
>>>>>> (ProtectionDomain.java:255)
>>>>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>> (AggregatePolicyProvider.java:201)
>>>>>>  [9] java.security.ProtectionDomain.implies 
>>>>>> (ProtectionDomain.java:224)
>>>>>>  [10] java.security.AccessControlContext.checkPermission
>>>>>> (AccessControlContext.java:352)
>>>>>>  [11] java.security.AccessController.checkPermission
>>>>>> (AccessController.java:546)
>>>>>>  [12] java.lang.SecurityManager.checkPermission 
>>>>>> (SecurityManager.java:532)
>>>>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>>>>> (SecurityManager.java:594)
>>>>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>>>> (ClassLoader.java:177)
>>>>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>>>>  [16] java.security.SecureClassLoader.<init> 
>>>>>> (SecureClassLoader.java:93)
>>>>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>>>>  [18]
>>>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>>>
>>>>>> (GetContextTest.java:85)
>>>>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest 
>>>>>> (MasterTest.java:252)
>>>>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>>>> no heart without soul:
>>>>>>  [1] java.lang.SecurityManager.checkRead (SecurityManager.java:873)
>>>>>>  [2] java.io.File.exists (File.java:731)
>>>>>>  [3] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>>>> (HeartOfTheMachine.java:56)
>>>>>>  [4] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>>>> (HeartOfTheMachine.java:62)
>>>>>>  [5] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>>>> (HeartOfTheMachine.java:29)
>>>>>>  [6] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>>>> (HeartOfTheMachine.java:45)
>>>>>>  [7] java.lang.Thread.run (Thread.java:662)
>>>>>> Thread-2:
>>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>>> Thread-3:
>>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>>> Thread-4:
>>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>>> RequestHandler:
>>>>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>>>>  [4] java.io.BufferedInputStream.read1 
>>>>>> (BufferedInputStream.java:258)
>>>>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>>>>> (ObjectInputStream.java:2,265)
>>>>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>>>> (ObjectInputStream.java:2,278)
>>>>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>>>> (ObjectInputStream.java:2,749)
>>>>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>>>>> (ObjectInputStream.java:779)
>>>>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>>>> (MasterTest.java:323)
>>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>>> main[1] dump this
>>>>>> this = {
>>>>>>   mainPolicyClassProperty:
>>>>>> "com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
>>>>>>   defaultMainPolicyClass: 
>>>>>> "net.jini.security.policy.DynamicPolicyProvider"
>>>>>>   trustGetCCL: instance of java.util.WeakHashMap(id=962)
>>>>>>   myDomain: instance of java.security.ProtectionDomain(id=963)
>>>>>>   subPolicies: instance of 
>>>>>> com.sun.jini.collection.WeakIdentityMap(id=964)
>>>>>>   subPolicyCache: instance of
>>>>>> com.sun.jini.collection.WeakIdentityMap(id=965)
>>>>>>   mainPolicy: instance of
>>>>>> net.jini.security.policy.DynamicPolicyProvider(id=966)
>>>>>>   $assertionsDisabled: true
>>>>>>   java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of
>>>>>> java.security.Policy$UnsupportedEmptyCollection(id=967)
>>>>>>   java.security.Policy.policy: instance of
>>>>>> com.sun.jini.start.AggregatePolicyProvider(id=959)
>>>>>>   java.security.Policy.debug: null
>>>>>>   java.security.Policy.pdMapping: instance of 
>>>>>> java.util.WeakHashMap(id=968)
>>>>>> }
>>>>>> main[1] exit
>>>>>>
>>>>>>     
>>>>>
>>>>>   
>>>>
>>>>
>>>
>>>
>>
>>
>
>


Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
Spot on Dan, much appreciated, good to see Brian still watches the list 
too ;)

The policy providers are built for correctness & concurrency, first & 
foremost, once we've got that licked, we can have a look at performance.

N.B. Looking at some of the terrible hashCode and equals implementations 
in Permission classes gives me more confidence the PermissionComparator 
is the right decision, with the comparison being made on getClass(), 
getName() and getActions()

For example, not only does the SocketPermission hashCode possibly cause 
a dns lookup and generate a different hash for an IP address equal to a 
domain name based address, but is solely based on getName(), so 
identical hashes will be generated when actions differ and the 
Permission's don't imply or equal each other.  The only catch, if 
someone creates a Permission implementation with state that influences 
equality outside of name and actions... I haven't found any such 
implementations yet, everything appears to fit into the name or name & 
actions categories, this seems to be a general restriction imposed by 
java's policy parser.

We've already got some important optimisations:

   1. URIGrant is based on URI, not CodeSource or URL, so it won't cause
      a DNS lookup.
   2. URIGrant unlike CodeSource.implies, doesn't require disk access
      when normalising a URI.

The following optimisations are yet to be implemented:

   1. Order and create SocketPermissionCollection on demand to reduce
      DNS lookup (after failing a comparator based check for an exact
      match).
   2. OR reimplement SocketPermission.
   3. PermissionGrant is an interface that represents a grant statement
      in a policy file, implementations must be immutable, the current
      DynamicPolicyProvider caches the PermissionGrant's Permission's at
      grant time to guard against mutation, and looks these up from a
      ConcurrentMap, removing this map would allow the Permission's to
      be retrieved by direct reference instead.  To protect the
      PermissionGrant's from being implemented by anyone, I'll create a
      Permission the PermissionGrant's ProtectionDomain must have and
      check this at grant time.

DelegateCombinerSecurityManager (not in use on these tests) will hide 
some of the single thread performance cost (enable security debug, 
you'll see most permission checks are repeated), especially when there 
are many ProtectionDomain's in use on the stack context, since it caches 
successful results for each AccessControlContext (context).  It also 
contains an executor, used to divide large context's into smaller 
problems.   Small contexts (ProtectionDomain [] array length < 4) are 
not passed to the executor, since these are either privileged or have 
possibly at least two domains with AllPermission in most cases and are 
instead executed in the current thread. 

The executor has a policy to execute tasks in the calling thread when 
all executor threads are busy, so it's opportunistic task division, it 
is hoped that as load increases, the size of the permission check cache 
increases, reducing the load on the executor and policy, so this should 
be very scalable.

To avoid context permission cache map memory problems, the context keys 
are weak references, while the permissions softly referenced values in 
Sets.  If the jvm is low on memory, the softly referenced Permission's 
are removed, potentially increasing the load on the executor, so it 
should find a balance between cpu and memory consumption:

ConcurrentMap<AccessControlContext,Set<Permission>> checked.

The policy combines with the security manager to avoid multi thread 
deadlock when PermissionCollection blocks, by producing duplicate 
PermissionCollection's on demand for other threads to utilise, the 
policy (ConcurrentPermissions actually) keeps one copy in cache to avoid 
duplication when demand is low.

This setup should perform very well under contention, but until someone 
volunteers to test it on some big iron, we won't know how well.

Cheers,

Peter.  


 [java] -----------------------------------------
     [java]
     [java] SUMMARY =================================
     [java]
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java]
     [java] # of tests started   = 5
     [java] # of tests completed = 5
     [java] # of tests passed    = 5
     [java] # of tests failed    = 0
     [java]
     [java] -----------------------------------------
     [java]
     [java]    Date finished:
     [java]       Thu Dec 29 07:40:07 EST 2011
     [java]    Time elapsed:
     [java]       1528 seconds
     [java]

collect-result:

BUILD SUCCESSFUL
Total time: 25 minutes 36 seconds



Brian Murphy wrote:
>> On 28 December 2011 12:02, Peter Firmstone <ji...@zeus.net.au> wrote:
>>
>>     
>
>
>   
>>> This just seems to be about making sure events arrive in order.  I'm not
>>> even sure where to start with this.
>>>       
>
> On Wed, Dec 28, 2011 at 7:33 AM, Dan Creswell <da...@gmail.com>
>  wrote:
>
>
>   
>> I notice there are a whole bunch of timeouts/pause variables there.
>> I'd be tempted to increase each of those somewhat and see what
>> happens.
>>
>> I'd be wondering if perhaps some things aren't arriving in time
>> because the timeouts are too tight. That might be because your
>> concurrent implementations whilst scalable are actually more costly in
>> terms of straight-line performance (not unusual as a tradeoff).
>>     
>
>
> I believe Dan is correct (as usual). Although the test does
> verify order of arrival, because the wrong number of events
> arrived in the allotted time, the test declares failure before it
> gets to the order verification step.
>
> So I agree with Dan that tuning the timeouts is probably a good
> place to start.
>
> I hope this helps,
> Brian
>
>   


Re: Help needed with concurrency bug

Posted by Brian Murphy <bt...@gmail.com>.
>
> On 28 December 2011 12:02, Peter Firmstone <ji...@zeus.net.au> wrote:
>


> > This just seems to be about making sure events arrive in order.  I'm not
> > even sure where to start with this.
>

On Wed, Dec 28, 2011 at 7:33 AM, Dan Creswell <da...@gmail.com>
 wrote:


> I notice there are a whole bunch of timeouts/pause variables there.
> I'd be tempted to increase each of those somewhat and see what
> happens.
>
> I'd be wondering if perhaps some things aren't arriving in time
> because the timeouts are too tight. That might be because your
> concurrent implementations whilst scalable are actually more costly in
> terms of straight-line performance (not unusual as a tradeoff).


I believe Dan is correct (as usual). Although the test does
verify order of arrival, because the wrong number of events
arrived in the allotted time, the test declares failure before it
gets to the order verification step.

So I agree with Dan that tuning the timeouts is probably a good
place to start.

I hope this helps,
Brian

Re: Help needed with concurrency bug

Posted by Dan Creswell <da...@gmail.com>.
On 28 December 2011 12:02, Peter Firmstone <ji...@zeus.net.au> wrote:
> This information applies to the following test:
>
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
> Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: # of Events
> Received (31) != # of Events Expected (50)
>
> From the test documentation:
>
> /** Performs actions necessary to prepare for execution of the
>    *  current QA test.
>    *
>    *  Creates the lookup service. Creates a single event handler to handle
>    *  all events generated by any of the registered service items. Loads
>    *  each of the attribute classes and creates one set of initialized
>    *  instances (non-null fields) of the loaded attributes. Loads and
>    *  instantiates all service classes. Registers each service class
>    *  instance with the maximum service lease duration. Retrieves the
>    *  proxy to the lookup Registrar.  Creates an array of ServiceTemplates
>    *  in which each element contains the service ID of one of the
>    *  registered service items. For each registered service, registers
>    *  an event notification request, with the maximum lease duration,
>    *  based on the contents of the corresponding template and the
>    *  appropriate transition mask; along with a handback containing the
>    *  service ID .
>    */
> public void setup(QAConfig sysConfig) throws Exception {
>
> /** Executes the current QA test.
>    *
>    *  For each service instance created during setup, chooses one of the
>    *  attributes (random, round-robin, it doesn't matter) and adds
>    *  that attribute to the current service item. Waits a configured
>    *  amount of time to allow for all of the events to be generated
>    *  and collected. Determines if all of the expected -- as well as
>    *  no un-expected -- events have arrived. This test depends on the
>    *  semantics of event-notification. That is, it uses the fact that
>    *  if the events were generated for each service item in sequence
>    *  (which they were), then the events will arrive in that same sequence.
>    *  This means one can expect, when examining the event corresponding
>    *  to index i, that the service ID returned in the ServiceEvent should
>    *  correspond to the i_th service item registered. If it does not, then
>    *  failure is declared. Thus, this test does the following:  1. Verifies
>    *  that the number of expected events equals the number of events that
>    *  have arrived. 2. Verifies that the transition returned in event[i]
>    *  corresponds to the expected transition (MATCH_MATCH). 3. Verifies
>    *  that the service ID returned in event[i] equals the service ID
>    *  of the i_th service registered. 4. Verifies that the handback
>    *  returned in the i_th event object equals the service ID of the
>    *  i_th service.
>    */
> public void run() throws Exception {
>
> The test doesn't use Reggie, it uses the QATestRegistrar.

QATestRegistrar is a wrapper around a Reggie - started like this:

proxy = manager.startLookupService

in method setup.

>
> The test registrar doesn't appear to be designed for multithreading, this
> test has never passed using the new DynamicPolicyProvider or
> ConcurrentPolicyFile policy implementations.
>
> This just seems to be about making sure events arrive in order.  I'm not
> even sure where to start with this.
>
> Any thoughts or advice?
>

I notice there are a whole bunch of timeouts/pause variables there.
I'd be tempted to increase each of those somewhat and see what
happens.

I'd be wondering if perhaps some things aren't arriving in time
because the timeouts are too tight. That might be because your
concurrent implementations whilst scalable are actually more costly in
terms of straight-line performance (not unusual as a tradeoff).

> This is the state of the vm after the test is set up, but before the events
> are fired:
>
>
> main[1] where all
> Signal Dispatcher:
> Finalizer:
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
> Reference Handler:
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.Object.wait (Object.java:485)
>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
> main:
>  [1] com.sun.jini.test.spec.lookupservice.test_set00.NotifyOnAttrAdd.run
> (NotifyOnAttrAdd.java:160)
>  [2] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>  [3] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
> no heart without soul:
>  [1] java.lang.Thread.sleep (native method)
>  [2] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
> (HeartOfTheMachine.java:63)
>  [3] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
> (HeartOfTheMachine.java:29)
>  [4] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
> (HeartOfTheMachine.java:45)
>  [5] java.lang.Thread.run (Thread.java:662)
>
> Thread-2:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> Thread-3:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> Thread-4:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> process reaper:
>  [1] java.lang.UNIXProcess.waitForProcessExit (native method)
>  [2] java.lang.UNIXProcess.access$900 (UNIXProcess.java:17)
>  [3] java.lang.UNIXProcess$2$1.run (UNIXProcess.java:86)
> NonActivatableGroup_system-out:
>
>  [1] java.io.FileInputStream.readBytes (native method)
>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>  [3] java.lang.UNIXProcess$DeferredCloseInputStream.read
> (UNIXProcess.java:227)
>  [4] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>  [5] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>  [6] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>  [7] java.io.FilterInputStream.read (FilterInputStream.java:90)
>  [8] com.sun.jini.qa.harness.Pipe.run (Pipe.java:119)
>  [9] java.lang.Thread.run (Thread.java:662)
> RMI RenewClean-[10.1.1.2:35707]:
>
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>  [3] sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run
> (DGCClient.java:516)
>  [4] java.lang.Thread.run (Thread.java:662)
> GC Daemon:
>  [1] java.lang.Object.wait (native method)
>  [2] sun.misc.GC$Daemon.run (GC.java:100)
> RMI Scheduler(0):
>  [1] sun.misc.Unsafe.park (native method)
>  [2] java.util.concurrent.locks.LockSupport.park (LockSupport.java:158)
>  [3]
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await
> (AbstractQueuedSynchronizer.java:1,987)
>  [4] java.util.concurrent.DelayQueue.take (DelayQueue.java:160)
>  [5] java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take
> (ScheduledThreadPoolExecutor.java:609)
>  [6] java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take
> (ScheduledThreadPoolExecutor.java:602)
>  [7] java.util.concurrent.ThreadPoolExecutor.getTask
> (ThreadPoolExecutor.java:947)
>  [8] java.util.concurrent.ThreadPoolExecutor$Worker.run
> (ThreadPoolExecutor.java:907)
>  [9] java.lang.Thread.run (Thread.java:662)
> (JSK) ConnectionManager.Reaper:
>  [1] java.lang.Thread.sleep (native method)
>  [2] net.jini.jeri.connection.ConnectionManager$Reaper.run
> (ConnectionManager.java:597)
>  [3] com.sun.jini.thread.ThreadPool$Worker.run (ThreadPool.java:140)
>  [4] java.lang.Thread.run (Thread.java:662)
> (JSK) mux writer:
>
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.Object.wait (Object.java:485)
>  [3] com.sun.jini.jeri.internal.mux.StreamConnectionIO$Writer.run
> (StreamConnectionIO.java:168)
>  [4] com.sun.jini.thread.ThreadPool$Worker.run (ThreadPool.java:140)
>  [5] java.lang.Thread.run (Thread.java:662)
> (JSK) mux reader:
>  [1] java.net.SocketInputStream.socketRead0 (native method)
>  [2] java.net.SocketInputStream.read (SocketInputStream.java:129)
>  [3] com.sun.jini.jeri.internal.mux.StreamConnectionIO$1.read
> (StreamConnectionIO.java:355)
>  [4] com.sun.jini.jeri.internal.mux.StreamConnectionIO$Reader.run
> (StreamConnectionIO.java:262)
>  [5] com.sun.jini.thread.ThreadPool$Worker.run (ThreadPool.java:140)
>  [6] java.lang.Thread.run (Thread.java:662)
> (JSK)
> TcpServerEndpoint.LH[ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=35719]]
> accept loop:
>
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] net.jini.jeri.tcp.TcpServerEndpoint$LH.executeAcceptLoop
> (TcpServerEndpoint.java:797)
>  [6] net.jini.jeri.tcp.TcpServerEndpoint$LH.access$400
> (TcpServerEndpoint.java:735)
>  [7] net.jini.jeri.tcp.TcpServerEndpoint$LH$1.run
> (TcpServerEndpoint.java:767)
>  [8] com.sun.jini.thread.ThreadPool$Worker.run (ThreadPool.java:140)
>  [9] java.lang.Thread.run (Thread.java:662)
> (JSK) Reaper:
>
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>  [4] com.sun.jini.jeri.internal.runtime.ImplRefManager$Reaper.run
> (ImplRefManager.java:426)
>  [5] java.lang.Thread.run (Thread.java:662)
> (JSK) KeepAlive:
>  [1] java.lang.Thread.sleep (native method)
>  [2] com.sun.jini.jeri.internal.runtime.JvmLifeSupport$2.run
> (JvmLifeSupport.java:130)
>  [3] java.lang.Thread.run (Thread.java:662)
> main[1]

Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
This information applies to the following test:

com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: # of 
Events Received (31) != # of Events Expected (50)

 From the test documentation:

/** Performs actions necessary to prepare for execution of the
     *  current QA test.
     *
     *  Creates the lookup service. Creates a single event handler to 
handle
     *  all events generated by any of the registered service items. Loads
     *  each of the attribute classes and creates one set of initialized
     *  instances (non-null fields) of the loaded attributes. Loads and
     *  instantiates all service classes. Registers each service class
     *  instance with the maximum service lease duration. Retrieves the
     *  proxy to the lookup Registrar.  Creates an array of 
ServiceTemplates
     *  in which each element contains the service ID of one of the
     *  registered service items. For each registered service, registers
     *  an event notification request, with the maximum lease duration,
     *  based on the contents of the corresponding template and the
     *  appropriate transition mask; along with a handback containing the
     *  service ID .
     */
public void setup(QAConfig sysConfig) throws Exception {

/** Executes the current QA test.
     *
     *  For each service instance created during setup, chooses one of the
     *  attributes (random, round-robin, it doesn't matter) and adds
     *  that attribute to the current service item. Waits a configured
     *  amount of time to allow for all of the events to be generated
     *  and collected. Determines if all of the expected -- as well as
     *  no un-expected -- events have arrived. This test depends on the
     *  semantics of event-notification. That is, it uses the fact that
     *  if the events were generated for each service item in sequence
     *  (which they were), then the events will arrive in that same 
sequence.
     *  This means one can expect, when examining the event corresponding
     *  to index i, that the service ID returned in the ServiceEvent should
     *  correspond to the i_th service item registered. If it does not, 
then
     *  failure is declared. Thus, this test does the following:  1. 
Verifies
     *  that the number of expected events equals the number of events that
     *  have arrived. 2. Verifies that the transition returned in event[i]
     *  corresponds to the expected transition (MATCH_MATCH). 3. Verifies
     *  that the service ID returned in event[i] equals the service ID
     *  of the i_th service registered. 4. Verifies that the handback
     *  returned in the i_th event object equals the service ID of the
     *  i_th service.
     */
public void run() throws Exception {

The test doesn't use Reggie, it uses the QATestRegistrar.

The test registrar doesn't appear to be designed for multithreading, 
this test has never passed using the new DynamicPolicyProvider or 
ConcurrentPolicyFile policy implementations.

This just seems to be about making sure events arrive in order.  I'm not 
even sure where to start with this.

Any thoughts or advice?

This is the state of the vm after the test is set up, but before the 
events are fired:

main[1] where all
Signal Dispatcher:
Finalizer:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
Reference Handler:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.Object.wait (Object.java:485)
  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
main:
  [1] 
com.sun.jini.test.spec.lookupservice.test_set00.NotifyOnAttrAdd.run 
(NotifyOnAttrAdd.java:160)
  [2] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
  [3] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
no heart without soul:
  [1] java.lang.Thread.sleep (native method)
  [2] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack 
(HeartOfTheMachine.java:63)
  [3] com.sun.jini.qa.harness.HeartOfTheMachine.access$000 
(HeartOfTheMachine.java:29)
  [4] com.sun.jini.qa.harness.HeartOfTheMachine$1.run 
(HeartOfTheMachine.java:45)
  [5] java.lang.Thread.run (Thread.java:662)
Thread-2:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
Thread-3:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
Thread-4:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
process reaper:
  [1] java.lang.UNIXProcess.waitForProcessExit (native method)
  [2] java.lang.UNIXProcess.access$900 (UNIXProcess.java:17)
  [3] java.lang.UNIXProcess$2$1.run (UNIXProcess.java:86)
NonActivatableGroup_system-out:
  [1] java.io.FileInputStream.readBytes (native method)
  [2] java.io.FileInputStream.read (FileInputStream.java:220)
  [3] java.lang.UNIXProcess$DeferredCloseInputStream.read 
(UNIXProcess.java:227)
  [4] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
  [5] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
  [6] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
  [7] java.io.FilterInputStream.read (FilterInputStream.java:90)
  [8] com.sun.jini.qa.harness.Pipe.run (Pipe.java:119)
  [9] java.lang.Thread.run (Thread.java:662)
RMI RenewClean-[10.1.1.2:35707]:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
  [3] sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run 
(DGCClient.java:516)
  [4] java.lang.Thread.run (Thread.java:662)
GC Daemon:
  [1] java.lang.Object.wait (native method)
  [2] sun.misc.GC$Daemon.run (GC.java:100)
RMI Scheduler(0):
  [1] sun.misc.Unsafe.park (native method)
  [2] java.util.concurrent.locks.LockSupport.park (LockSupport.java:158)
  [3] 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await 
(AbstractQueuedSynchronizer.java:1,987)
  [4] java.util.concurrent.DelayQueue.take (DelayQueue.java:160)
  [5] 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take 
(ScheduledThreadPoolExecutor.java:609)
  [6] 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take 
(ScheduledThreadPoolExecutor.java:602)
  [7] java.util.concurrent.ThreadPoolExecutor.getTask 
(ThreadPoolExecutor.java:947)
  [8] java.util.concurrent.ThreadPoolExecutor$Worker.run 
(ThreadPoolExecutor.java:907)
  [9] java.lang.Thread.run (Thread.java:662)
(JSK) ConnectionManager.Reaper:
  [1] java.lang.Thread.sleep (native method)
  [2] net.jini.jeri.connection.ConnectionManager$Reaper.run 
(ConnectionManager.java:597)
  [3] com.sun.jini.thread.ThreadPool$Worker.run (ThreadPool.java:140)
  [4] java.lang.Thread.run (Thread.java:662)
(JSK) mux writer:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.Object.wait (Object.java:485)
  [3] com.sun.jini.jeri.internal.mux.StreamConnectionIO$Writer.run 
(StreamConnectionIO.java:168)
  [4] com.sun.jini.thread.ThreadPool$Worker.run (ThreadPool.java:140)
  [5] java.lang.Thread.run (Thread.java:662)
(JSK) mux reader:
  [1] java.net.SocketInputStream.socketRead0 (native method)
  [2] java.net.SocketInputStream.read (SocketInputStream.java:129)
  [3] com.sun.jini.jeri.internal.mux.StreamConnectionIO$1.read 
(StreamConnectionIO.java:355)
  [4] com.sun.jini.jeri.internal.mux.StreamConnectionIO$Reader.run 
(StreamConnectionIO.java:262)
  [5] com.sun.jini.thread.ThreadPool$Worker.run (ThreadPool.java:140)
  [6] java.lang.Thread.run (Thread.java:662)
(JSK) 
TcpServerEndpoint.LH[ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=35719]] 
accept loop:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] net.jini.jeri.tcp.TcpServerEndpoint$LH.executeAcceptLoop 
(TcpServerEndpoint.java:797)
  [6] net.jini.jeri.tcp.TcpServerEndpoint$LH.access$400 
(TcpServerEndpoint.java:735)
  [7] net.jini.jeri.tcp.TcpServerEndpoint$LH$1.run 
(TcpServerEndpoint.java:767)
  [8] com.sun.jini.thread.ThreadPool$Worker.run (ThreadPool.java:140)
  [9] java.lang.Thread.run (Thread.java:662)
(JSK) Reaper:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
  [4] com.sun.jini.jeri.internal.runtime.ImplRefManager$Reaper.run 
(ImplRefManager.java:426)
  [5] java.lang.Thread.run (Thread.java:662)
(JSK) KeepAlive:
  [1] java.lang.Thread.sleep (native method)
  [2] com.sun.jini.jeri.internal.runtime.JvmLifeSupport$2.run 
(JvmLifeSupport.java:130)
  [3] java.lang.Thread.run (Thread.java:662)
main[1]

Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
Finally passing:

com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td

The test failure was caused by not normalising the CodeSource URL from 
ProtectionDomain's in URLGrant.

The lookup service event tests are still failing and are unrelated as 
suspected:

     [java] SUMMARY =================================
     [java]
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (17) != # of 
Events Expected (50)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (23) != # of 
Events Expected (50)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (19) != # of 
Events Expected (50)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # of Events Received (18) != # of 
Events Expected (50)
     [java]
     [java] -----------------------------------------
     [java]
     [java] # of tests started   = 4
     [java] # of tests completed = 4
     [java] # of tests passed    = 0
     [java] # of tests failed    = 4
     [java]
     [java] -----------------------------------------
     [java]
     [java]    Date finished:
     [java]       Wed Dec 28 11:38:55 EST 2011
     [java]    Time elapsed:
     [java]       327 seconds
     [java]
     [java] Java Result: 1

Output from  
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td:

bash-3.00$ ant qa.run-tests
Buildfile: build.xml

qa.run-tests:

james-brown:
   [delete] Deleting directory 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
    [mkdir] Created dir: 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
    [touch] Creating 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul/soul.201112281128030524

run-tests:
     [java]
     [java] -----------------------------------------
     [java] CONFIGURATION FILE:
     [java]
     [java]    
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/qaHarness.prop
     [java]
     [java] -----------------------------------------
     [java] SETTING UP THE TEST LIST:
     [java]
     [java]    Adding test: 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java]
     [java] -----------------------------------------
     [java] GENERAL HARNESS CONFIGURATION INFORMATION:
     [java]
     [java]    Date started:
     [java]       Wed Dec 28 11:28:33 EST 2011
     [java]    Installation directory of the JSK:
     [java]       
com.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
     [java]    Installation directory of the harness:
     [java]       
com.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
     [java]    Categories being tested:
     [java]       categories=No Categories
     [java] -----------------------------------------
     [java] ENVIRONMENT PROPERTIES:
     [java]
     [java]    JVM information:
     [java]       Java HotSpot(TM) Server VM, 20.0-b11, 32 bit VM mode
     [java]       Sun Microsystems Inc.
     [java]    OS information:
     [java]       SunOS, 5.10, sparc
     [java]
     [java] -----------------------------------------
     [java] STARTING TO RUN THE TESTS
     [java]
     [java]
     [java] Running 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] Time is Wed Dec 28 11:28:33 EST 2011
     [java] Starting test in separate process with command:
     [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java 
-Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy 
-Djava.rmi.server.codebase=http://bluto:9082/qa1-start-probe-dl.jar -cp 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:lib/qa1-start-tests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar 
-Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
-Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 
-Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy 
-Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
-Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar 
-Dcom.sun.jini.qa.harness.runjiniserver=true 
-Dcom.sun.jini.qa.harness.runkitserver=true 
-Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
-Dcom.sun.jini.qa.harness.testhosts= 
-Djava.util.logging.config.file=/home/peter/logging.properties 
-Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.test.port=9082 
-Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
-Djava.security.debug=access com.sun.jini.qa.harness.MasterTest 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/jsk-policy.jar 
read)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.net.jini.security.policy.DynamicPolicyProvider.basePolicyClass)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.net.jini.security.policy.DynamicPolicyProvider.revocation)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/mergedpolicyprovider.jar 
read)
     [java] access: access allowed (java.util.PropertyPermission 
java.security.policy read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.policies read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.net.jini.security.policy.PolicyFileProvider.basePolicyClass)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.security.SecurityPermission 
getPolicy)
     [java] access: access allowed (java.util.PropertyPermission * 
read,write)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.allowSystemProperty)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy 
read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.1)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.2)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.3)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.util.PropertyPermission 
java.net.preferIPv6Addresses read)
     [java] access: access allowed (java.lang.RuntimePermission 
loadLibrary.net)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/sparc/libnet.so read)
     [java] access: access allowed (java.util.PropertyPermission 
java.net.preferIPv4Stack read)
     [java] access: access allowed (java.util.PropertyPermission 
impl.prefix read)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.util.PropertyPermission 
sun.net.spi.nameservice.provider.1 read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.networkaddress.cache.ttl)
     [java] access: access allowed (java.util.PropertyPermission 
sun.net.inetaddr.ttl read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.networkaddress.cache.negative.ttl)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/home/peter/.java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/home/peter/.java.policy read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy 
read)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.net.jini.security.policy.PolicyFileProvider.basePolicyClass)
     [java] access: access allowed (java.util.PropertyPermission 
java.security.policy read)
     [java] access: access allowed (java.util.PropertyPermission 
java.security.policy write)
     [java] access: access allowed (java.security.SecurityPermission 
getPolicy)
     [java] access: access allowed (java.util.PropertyPermission * 
read,write)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.allowSystemProperty)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy 
read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.1)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.2)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.3)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/home/peter/.java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/home/peter/.java.policy read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy 
read)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.util.PropertyPermission 
java.security.policy write)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.PropertyPermission 
line.separator read)
     [java] access: access allowed (java.util.PropertyPermission 
line.separator read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.testhosts read)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.1)
     [java] access: access allowed (java.io.FilePermission 
/usr/lib/libpkcs11.so read)
     [java] access: access allowed (java.util.PropertyPermission 
sun.security.pkcs11.enable-solaris read)
     [java] access: access allowed (java.util.PropertyPermission 
java.home read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.2)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.3)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.4)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.5)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.6)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.7)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.8)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.9)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.security.provider.10)
     [java] access: access allowed (java.security.SecurityPermission 
getPolicy)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.security.pkcs11)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/ext/sunpkcs11.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/ext/sunpkcs11.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/ext/sunpkcs11.jar read)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.security.provider)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.util.PropertyPermission 
java.security.egd read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.securerandom.source)
     [java] access: access allowed (java.io.FilePermission /dev/random read)
     [java] access: access allowed (java.io.FilePermission /dev/urandom 
read)
     [java] access: access allowed (java.io.FilePermission /dev/random read)
     [java] access: access allowed (java.io.FilePermission /dev/urandom 
read)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SUN)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.security.preserveOldDCEncoding read)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.security.rsa)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunRsaSign)
     [java] access: access allowed (java.util.PropertyPermission 
sun.security.rsa.restrictRSAExponent read)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.util.PropertyPermission 
sun.security.key.serial.interop read)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.util.PropertyPermission os.arch 
read)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SUN)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.security.util)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.security.action)
     [java] access: access allowed (java.util.PropertyPermission 
sun.security.pkcs11.allowSingleThreadedModules read)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.security.util)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/sunpkcs11-solaris.cfg read)
     [java] access: access allowed (java.util.PropertyPermission os.name 
read)
     [java] access: access allowed (java.util.PropertyPermission os.arch 
read)
     [java] access: access allowed (java.io.FilePermission 
/usr/lib/libpkcs11.so read)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
loadLibrary.j2pkcs11)
     [java] access: access allowed (java.util.PropertyPermission os.arch 
read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/ext/sparc/libj2pkcs11.so read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/ext/sparc/libj2pkcs11.so read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/ext/libj2pkcs11.so read)
     [java] access: access allowed (java.util.PropertyPermission os.arch 
read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/packages/lib/ext/sparc/libj2pkcs11.so read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/packages/lib/ext/libj2pkcs11.so read)
     [java] access: access allowed (java.util.PropertyPermission os.arch 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/sparc/libj2pkcs11.so 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/libj2pkcs11.so 
read)
     [java] access: access allowed (java.util.PropertyPermission os.arch 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/sparc/libj2pkcs11.so 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/libj2pkcs11.so 
read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/sparc/libj2pkcs11.so read)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.security.util)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.security.SecurityPermission 
putProviderProperty.SunPKCS11-Solaris)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission getenv.SOUL)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul/soul.201112281128030524 
read)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.PropertyPermission 
sun.boot.class.path read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/meta-index read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/meta-index read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/rt.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/sunrsasign.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/jsse.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/jce.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/charsets.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/modules/jdk.boot.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/modules/jdk.boot.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/modules/meta-index read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/modules/meta-index read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/classes read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/classes read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/meta-index read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/meta-index read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/rt.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/sunrsasign.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/jsse.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/jce.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/charsets.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/modules/jdk.boot.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/classes read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/rt.jar read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/sunrsasign.jar read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/jsse.jar read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/jce.jar read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/charsets.jar read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/modules/jdk.boot.jar read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/classes read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-resources.jar 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-resources.jar 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-resources.jar 
read)
     [java] access: access allowed (java.net.NetPermission 
specifyStreamHandler)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar read)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.lang.RuntimePermission 
createSecurityManager)
     [java] access: access allowed (java.security.SecurityPermission 
getDomainCombiner)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.security.SecurityPermission 
createAccessControlContext)
     [java] access: access allowed (java.util.PropertyPermission 
testFailureAnalyzers read)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.callAutoT read)
     [java] access: access allowed (java.util.PropertyPermission 
user.timezone read)
     [java] access: access allowed (java.util.PropertyPermission 
user.country read)
     [java] access: access allowed (java.util.PropertyPermission 
java.home read)
     [java] access: access allowed (java.util.PropertyPermission 
sun.timezone.ids.oldmapping read)
     [java] access: access allowed (java.util.PropertyPermission 
java.home read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Queensland read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Queensland read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
     [java] access: access allowed (java.util.PropertyPermission 
user.timezone write)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.util.resources)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.util.resources)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.text.resources)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.text.resources)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.text.resources)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.util.resources)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.util.resources)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.util.logging.resources)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.util.logging.resources)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/ext/localedata.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/ext/localedata.jar read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/ext/localedata.jar read)
     [java] access: access allowed (java.lang.RuntimePermission 
accessClassInPackage.sun.util.logging.resources)
     [java]
     [java] TIME: 11:28:39 AM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================== CALLING SETUP() 
==============================
     [java]
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.startDelay read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.runkitserver read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.serviceMode read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.transient.impl read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.adminName read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.classServer.impl.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.classServer.impl read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.impl.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.impl read)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.classServer.port.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.classServer.port read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.port.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.port read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.port read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.classServer.dir.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.classServer.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.dir.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.globalvmargs read)
     [java] access: access allowed (java.util.PropertyPermission 
java.ext.dirs read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.jsk.port read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.port read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.jsk.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.runjiniserver read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.runkitserver read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.securityproperties read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
harness/trust/dynamic-policy.properties read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.testhosts read)
     [java] access: access allowed (java.util.PropertyPermission 
java.util.logging.config.file read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.test.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.test.port read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
src/com/sun/jini/test/resources/jinitest.policy read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy 
read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.classServer.serverjvmargs.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.classServer.serverjvmargs read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.serverjvmargs.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.serverjvmargs read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
qaClassServer.type read)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
accessDeclaredMembers)
     [java] access: access allowed (java.lang.RuntimePermission 
loadLibrary.net)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/sparc/libnet.so read)
     [java] access: access allowed (java.net.SocketPermission 
localhost:9081 listen,resolve)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.util.PropertyPermission 
line.separator read)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.util.PropertyPermission 
line.separator read)
     [java] access: access allowed (java.util.PropertyPermission 
line.separator read)
     [java] access: access allowed (java.util.PropertyPermission 
line.separator read)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] access: access allowed (java.util.logging.LoggingPermission 
control)
     [java] 28/12/2011 11:28:41 AM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.runjiniserver read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.serviceMode read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.transient.impl read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.adminName read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.classServer.impl.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.classServer.impl read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.impl.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.impl read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.classServer.port.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.classServer.port read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.port.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.port read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.jsk.port read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.classServer.dir.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.classServer.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.dir.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.jsk.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.globalvmargs read)
     [java] access: access allowed (java.util.PropertyPermission 
java.ext.dirs read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.jsk.port read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.port read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.jsk.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.runjiniserver read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.runkitserver read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.securityproperties read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
harness/trust/dynamic-policy.properties read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.testhosts read)
     [java] access: access allowed (java.util.PropertyPermission 
java.util.logging.config.file read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.test.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.test.port read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
src/com/sun/jini/test/resources/jinitest.policy read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy 
read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.classServer.serverjvmargs.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.classServer.serverjvmargs read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.serverjvmargs.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.serverjvmargs read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
jiniClassServer.type read)
     [java] access: access allowed (java.net.SocketPermission 
localhost:9080 listen,resolve)
     [java] 28/12/2011 11:28:43 AM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.testClassServer read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.serviceMode read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.transient.impl read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.adminName read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.1 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.classServer.impl.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.classServer.impl read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.impl.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.impl read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.classServer.port.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.classServer.port read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.port.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.port read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.test.port read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.classServer.dir.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.classServer.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.dir.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.test.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.globalvmargs read)
     [java] access: access allowed (java.util.PropertyPermission 
java.ext.dirs read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.jsk.port read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.port read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.jsk.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.runjiniserver read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.runkitserver read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.securityproperties read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
harness/trust/dynamic-policy.properties read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.testhosts read)
     [java] access: access allowed (java.util.PropertyPermission 
java.util.logging.config.file read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.test.home read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.test.port read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
src/com/sun/jini/test/resources/jinitest.policy read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy 
read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.classServer.serverjvmargs.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.classServer.serverjvmargs read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.serverjvmargs.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.serverjvmargs read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type.0 read)
     [java] access: access allowed (java.util.PropertyPermission 
testClassServer.type read)
     [java] access: access allowed (java.net.SocketPermission 
localhost:9082 listen,resolve)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.home read)
     [java] 28/12/2011 11:28:45 AM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
     [java] access: access allowed (java.util.PropertyPermission 
getContextJarFile read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb1.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.home read)
     [java] access: access allowed (java.util.PropertyPermission 
restoreContextJarFile read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb2.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.home read)
     [java] access: access allowed (java.util.PropertyPermission 
checkContextActionJarFile read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb3.jar read)
     [java] MasterTest.doTest INFO:
     [java] =============================== CALLING RUN() 
===============================
     [java]
     [java] access: access allowed (java.util.PropertyPermission os.name 
read)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.net.jini.security.policy.DynamicPolicyProvider.basePolicyClass)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.net.jini.security.policy.DynamicPolicyProvider.revocation)
     [java] access: access allowed (java.util.PropertyPermission 
java.security.policy read)
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.policies read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.net.jini.security.policy.PolicyFileProvider.basePolicyClass)
     [java] access: access allowed (java.security.SecurityPermission 
getPolicy)
     [java] access: access allowed (java.util.PropertyPermission * 
read,write)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.allowSystemProperty)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy 
read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.1)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.2)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.3)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/home/peter/.java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/home/peter/.java.policy read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy 
read)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.net.jini.security.policy.PolicyFileProvider.basePolicyClass)
     [java] access: access allowed (java.util.PropertyPermission 
java.security.policy read)
     [java] access: access allowed (java.util.PropertyPermission 
java.security.policy write)
     [java] access: access allowed (java.security.SecurityPermission 
getPolicy)
     [java] access: access allowed (java.util.PropertyPermission * 
read,write)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.allowSystemProperty)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy 
read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.1)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.2)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.url.3)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/home/peter/.java.policy read)
     [java] access: access allowed (java.io.FilePermission 
/home/peter/.java.policy read)
     [java] access: access allowed (java.security.SecurityPermission 
getProperty.policy.expandProperties)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy 
read)
     [java] access: access allowed (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy 
read)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.util.PropertyPermission 
java.security.policy write)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.lang.RuntimePermission 
getClassLoader)
     [java] access: access allowed (java.security.SecurityPermission 
setPolicy)
     [java] access: access allowed (java.lang.RuntimePermission 
getProtectionDomain)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.util.PropertyPermission 
java.protocol.handler.pkgs read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb1.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb1.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb1.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb1.jar read)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb2.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb2.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb2.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb2.jar read)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.lang.RuntimePermission 
createClassLoader)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb3.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb3.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb3.jar read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.io.FilePermission 
lib/qa1-start-cb3.jar read)
     [java] access: access allowed (java.lang.reflect.ReflectPermission 
suppressAccessChecks)
     [java] access: access allowed (java.lang.RuntimePermission 
setContextClassLoader)
     [java] access: access allowed (java.lang.RuntimePermission 
getClassLoader)
     [java] access: access allowed (java.security.SecurityPermission 
getPolicy)
     [java] access: access allowed (java.lang.RuntimePermission 
setContextClassLoader)
     [java] access: access allowed (java.lang.RuntimePermission 
setContextClassLoader)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.lang.RuntimePermission A)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access denied (java.lang.RuntimePermission B)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access denied (java.lang.RuntimePermission C)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access allowed (java.util.PropertyPermission 
user.dir read)
     [java] access: access denied (java.lang.RuntimePermission D)
     [java] access: access allowed (java.lang.RuntimePermission 
setContextClassLoader)
     [java] MasterTest.doTest INFO:
     [java] ============================ CALLING TEARDOWN() 
=============================
     [java]
     [java] access: access allowed (java.util.PropertyPermission 
com.sun.jini.qa.harness.nSecsWaitDestroy read)
     [java] 28/12/2011 11:28:46 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 28/12/2011 11:28:46 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 28/12/2011 11:28:46 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 28/12/2011 11:28:46 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 28/12/2011 11:28:46 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 28/12/2011 11:28:46 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java]
     [java] TIME: 11:28:47 AM
     [java]
     [java] Test process was destroyed and returned code 0
     [java] 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] Test Passed: OK
     [java]
     [java]
     [java] -----------------------------------------
     [java]
     [java] SUMMARY =================================
     [java]
     [java] 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java]
     [java] # of tests started   = 1
     [java] # of tests completed = 1
     [java] # of tests passed    = 1
     [java] # of tests failed    = 0
     [java]
     [java] -----------------------------------------
     [java]
     [java]    Date finished:
     [java]       Wed Dec 28 11:28:52 EST 2011
     [java]    Time elapsed:
     [java]       18 seconds
     [java]

collect-result:

BUILD SUCCESSFUL
Total time: 27 seconds
bash-3.00$ ant qa.run-tests
Buildfile: build.xml

qa.run-tests:

james-brown:
   [delete] Deleting directory 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
    [mkdir] Created dir: 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
    [touch] Creating 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul/soul.201112281130046714

run-tests:
     [java]
     [java] -----------------------------------------
     [java] CONFIGURATION FILE:
     [java]
     [java]    
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/qaHarness.prop
     [java]
     [java] -----------------------------------------
     [java] SETTING UP THE TEST LIST:
     [java]
     [java]    Adding test: 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java]
     [java] -----------------------------------------
     [java] GENERAL HARNESS CONFIGURATION INFORMATION:
     [java]
     [java]    Date started:
     [java]       Wed Dec 28 11:30:49 EST 2011
     [java]    Installation directory of the JSK:
     [java]       
com.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
     [java]    Installation directory of the harness:
     [java]       
com.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
     [java]    Categories being tested:
     [java]       categories=No Categories
     [java] -----------------------------------------
     [java] ENVIRONMENT PROPERTIES:
     [java]
     [java]    JVM information:
     [java]       Java HotSpot(TM) Server VM, 20.0-b11, 32 bit VM mode
     [java]       Sun Microsystems Inc.
     [java]    OS information:
     [java]       SunOS, 5.10, sparc
     [java]
     [java] -----------------------------------------
     [java] STARTING TO RUN THE TESTS
     [java]
     [java]
     [java] Running 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] Time is Wed Dec 28 11:30:49 EST 2011
     [java] Starting test in separate process with command:
     [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java 
-Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy 
-Djava.rmi.server.codebase=http://bluto:9082/qa1-start-probe-dl.jar -cp 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:lib/qa1-start-tests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar 
-client 
-Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
-Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 
-Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy 
-Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
-Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar 
-Dcom.sun.jini.qa.harness.runjiniserver=true 
-Dcom.sun.jini.qa.harness.runkitserver=true 
-Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties 
-Dcom.sun.jini.qa.harness.testhosts= 
-Djava.util.logging.config.file=/home/peter/logging.properties 
-Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa 
-Dcom.sun.jini.test.port=9082 
-Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext 
com.sun.jini.qa.harness.MasterTest 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java]
     [java] TIME: 11:30:54 AM
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================== CALLING SETUP() 
==============================
     [java]
     [java] 28/12/2011 11:30:55 AM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
     [java] 28/12/2011 11:30:56 AM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
     [java] 28/12/2011 11:30:56 AM com.sun.jini.tool.ClassServer run
     [java] INFO: ClassServer started 
[[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
     [java] MasterTest.doTest INFO:
     [java] =============================== CALLING RUN() 
===============================
     [java]
     [java] MasterTest.doTest INFO:
     [java] ============================ CALLING TEARDOWN() 
=============================
     [java]
     [java] 28/12/2011 11:30:58 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 28/12/2011 11:30:58 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9081]
     [java] 28/12/2011 11:30:58 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 28/12/2011 11:30:58 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9080]
     [java] 28/12/2011 11:30:58 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java] 28/12/2011 11:30:58 AM com.sun.jini.tool.ClassServer terminate
     [java] INFO: ClassServer terminated [port 9082]
     [java]
     [java] TIME: 11:30:59 AM
     [java]
     [java] Test process was destroyed and returned code 0
     [java] 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] Test Passed: OK
     [java]
     [java]
     [java] -----------------------------------------
     [java]
     [java] SUMMARY =================================
     [java]
     [java] 
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java]
     [java] # of tests started   = 1
     [java] # of tests completed = 1
     [java] # of tests passed    = 1
     [java] # of tests failed    = 0
     [java]
     [java] -----------------------------------------
     [java]
     [java]    Date finished:
     [java]       Wed Dec 28 11:31:04 EST 2011
     [java]    Time elapsed:
     [java]       14 seconds
     [java]

collect-result:

BUILD SUCCESSFUL
Total time: 23 seconds



Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
Solved one bug, this is the output of the context from the test that 
fails, I thought this was using the sun policy file provider but it 
isn't, there must be a default value set somewhere else.  1 down, 4 to go.

com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td

Had to stabilise the concurrency problem first, but this is the story:  
THIS TEST HAS BEEN PASSING WHEN IT SHOULD FAIL.

   1. The codesource location is missing the qa/ directory path, because
      this property either hasn't been set or is missing:
      "com.sun.jini.qa.home"
   2. The permissions are not granted simply because the codesource
      location is wrong in the ProtectionDomain, in other words this
      test is behaving correctly, all I need to do is set the property
      for the test to pass (or figure out why the property is not set). 
      That's my job for tommorrow.
   3. The sun.security.provider.PolicyFile provider should be failing
      this test also, because the codesource path is incorrect, I don't
      know why it is granting the permission, but it shouldn't be,
      unless it hasn't successfully expanded the property in
      GetContextTest.policy:
      "file:${com.sun.jini.test.home}${/}lib${/}qa1-start-cb2.jar"


Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=222 bci=0

main[1] dump permission
 permission = {
    serialVersionUID: 7399184964622342223
    java.security.BasicPermission.serialVersionUID: 6279438298436773498
    java.security.BasicPermission.wildcard: false
    java.security.BasicPermission.path: "A"
    java.security.BasicPermission.exitVM: false
    java.security.Permission.serialVersionUID: -5636570222231596674
    java.security.Permission.name: "A"
}
main[1] step up
 >
Step completed: "thread=main", java.security.ProtectionDomain.implies(), 
line=224 bci=24

main[1] step up
 >
Step completed: "thread=main", 
java.security.AccessControlContext.checkPermission(), line=352 bci=325

main[1] dump this
 this = {
    context: instance of java.security.ProtectionDomain[5] (id=1033)
    isPrivileged: false
    privilegedContext: instance of 
java.security.AccessControlContext(id=1035)
    combiner: null
    debugInit: true
    debug: null
}
main[1] clear com.sun.jini.start.AggregatePolicyProvider.implies
Removed: breakpoint com.sun.jini.start.AggregatePolicyProvider.implies
main[1] print context[0]
 context[0] = "ProtectionDomain  
(file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
<no signer certificates>)
 sun.misc.Launcher$AppClassLoader@93dee9
 <no principals>
 java.security.Permissions@1536eec (
 (java.security.AllPermission <all permissions> <all actions>)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar 
read)
 (java.lang.RuntimePermission exitVM)
)

"
main[1] print context[1]
 context[1] = "ProtectionDomain  
(file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar 
<no signer certificates>)
 sun.misc.Launcher$AppClassLoader@93dee9
 <no principals>
 java.security.Permissions@43da1b (
 (java.security.SecurityPermission getPolicy)
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.security.AllPermission <all permissions> <all actions>)
 (java.net.SocketPermission localhost:1024- listen,resolve)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar 
read)
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.lang.RuntimePermission stopThread)
 (java.lang.RuntimePermission exitVM)
)

"
main[1] print context[2]
 context[2] = "ProtectionDomain  (file:lib/qa1-start-cb1.jar <no signer 
certificates>)
 java.net.URLClassLoader@e2d0b2
 <no principals>
 java.security.Permissions@14ed577 (
 (java.security.SecurityPermission getPolicy)
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.net.SocketPermission localhost:1024- listen,resolve)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/- read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
 (java.io.FilePermission lib/qa1-start-cb1.jar read)
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.lang.RuntimePermission stopThread)
)

"
main[1] print context[3]
 context[3] = "ProtectionDomain  (file:lib/qa1-start-cb3.jar <no signer 
certificates>)
 java.net.URLClassLoader@e63606
 <no principals>
 java.security.Permissions@4bb369 (
 (java.security.SecurityPermission getPolicy)
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.net.SocketPermission localhost:1024- listen,resolve)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/- read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
 (java.io.FilePermission lib/qa1-start-cb3.jar read)
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.lang.RuntimePermission stopThread)
)

"
main[1] print context[4]
 context[4] = "ProtectionDomain  (file:lib/qa1-start-cb2.jar <no signer 
certificates>)
 java.net.URLClassLoader@2af8f5
 <no principals>
 java.security.Permissions@1dd7bc5 (
 (java.security.SecurityPermission getPolicy)
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.net.SocketPermission localhost:1024- listen,resolve)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/- read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
 (java.io.FilePermission lib/qa1-start-cb2.jar read)
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.lang.RuntimePermission stopThread)
)

"
main[1] print 
net.jini.security.policy.DynamicPolicyProvider.defaultBasePolicyClass
 net.jini.security.policy.DynamicPolicyProvider.defaultBasePolicyClass = 
"net.jini.security.policy.PolicyFileProvider"
main[1] print 
net.jini.security.policy.PolicyFileProvider.defaultBasePolicyClass
 net.jini.security.policy.PolicyFileProvider.defaultBasePolicyClass = 
"sun.security.provider.PolicyFile"
main[1] dump java.security.Policy.policy
 java.security.Policy.policy = {
    mainPolicyClassProperty: 
"com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
    defaultMainPolicyClass: "net.jini.security.policy.DynamicPolicyProvider"
    trustGetCCL: instance of 
org.apache.river.impl.util.ReferenceConcurrentMap(id=1053)
    myDomain: instance of java.security.ProtectionDomain(id=1036)
    subPolicies: instance of 
org.apache.river.impl.util.ReferenceConcurrentMap(id=1054)
    subPolicyChildClassLoaderCache: instance of 
org.apache.river.impl.util.ReferenceConcurrentMap(id=1055)
    policyUpdate: instance of 
java.util.concurrent.locks.ReentrantReadWriteLock(id=1056)
    policyRead: instance of 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock(id=1057)
    policyWrite: instance of 
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock(id=1058)
    mainPolicy: instance of 
net.jini.security.policy.DynamicPolicyProvider(id=1059)
    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
java.security.Policy$UnsupportedEmptyCollection(id=1060)
    java.security.Policy.policy: instance of 
com.sun.jini.start.AggregatePolicyProvider(id=1020)
    java.security.Policy.debug: null
    java.security.Policy.pdMapping: instance of 
java.util.WeakHashMap(id=1061)
}
main[1] dump java.security.Policy.policy.mainPolicy.basePolicy
 java.security.Policy.policy.mainPolicy.basePolicy = {
    lock: instance of java.util.concurrent.locks.ReentrantLock(id=1063)
    first: false
    policies: instance of 
java.util.Collections$UnmodifiableCollection(id=1064)
    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
java.security.Policy$UnsupportedEmptyCollection(id=1060)
    java.security.Policy.policy: instance of 
com.sun.jini.start.AggregatePolicyProvider(id=1020)
    java.security.Policy.debug: null
    java.security.Policy.pdMapping: null
}
main[1] print java.security.Policy.policy.mainPolicy.basePolicy
 java.security.Policy.policy.mainPolicy.basePolicy = 
"com.sun.jini.qa.harness.MergedPolicyProvider@27cd63"
main[1] print java.security.Policy.policy.mainPolicy.basePolicy.policies
 java.security.Policy.policy.mainPolicy.basePolicy.policies = 
"[net.jini.security.policy.PolicyFileProvider@553763, 
net.jini.security.policy.PolicyFileProvider@a75737]"
main[1] dump java.security.Policy.policy.mainPolicy.basePolicy.policies
 java.security.Policy.policy.mainPolicy.basePolicy.policies = {
    serialVersionUID: 1820017752578914078
    c: instance of java.util.ArrayList(id=1067)
}
main[1] dump java.security.Policy.policy.mainPolicy.basePolicy.policies.c
 java.security.Policy.policy.mainPolicy.basePolicy.policies.c = {
    serialVersionUID: 8683452581122892189
    elementData: instance of java.lang.Object[10] (id=1068)
    size: 2
    java.util.AbstractList.modCount: 2
}
main[1] dump 
java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0]
 java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0] 
= {
    basePolicyClassProperty: 
"net.jini.security.policy.PolicyFileProvider.basePolicyClass"
    defaultBasePolicyClass: "sun.security.provider.PolicyFile"
    policyProperty: "java.security.policy"
    propertyLock: instance of java.lang.Object(id=1072)
    umbrella: instance of 
net.jini.security.policy.UmbrellaGrantPermission(id=1073)
    policyFile: null
    basePolicy: instance of 
net.jini.security.policy.ConcurrentPolicyFile(id=1074)
    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
java.security.Policy$UnsupportedEmptyCollection(id=1060)
    java.security.Policy.policy: instance of 
com.sun.jini.start.AggregatePolicyProvider(id=1020)
    java.security.Policy.debug: null
    java.security.Policy.pdMapping: null
}
main[1] dump 
java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0].basePolicy
 java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0].basePolicy 
= {
    JAVA_SECURITY_POLICY: "java.security.policy"
    POLICY_URL_PREFIX: "policy.url."
    rl: instance of 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock(id=1076)
    wl: instance of 
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock(id=1077)
    grants: instance of java.util.ArrayList(id=1078)
    cache: instance of 
org.apache.river.impl.util.ReferenceConcurrentMap(id=1079)
    impliesCache: instance of 
org.apache.river.impl.util.ReferenceConcurrentMap(id=1080)
    parser: instance of 
org.apache.river.impl.security.policy.util.DefaultPolicyParser(id=1081)
    guard: instance of java.security.SecurityPermission(id=1082)
    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
java.security.Policy$UnsupportedEmptyCollection(id=1060)
    java.security.Policy.policy: instance of 
com.sun.jini.start.AggregatePolicyProvider(id=1020)
    java.security.Policy.debug: null
    java.security.Policy.pdMapping: null
}
main[1]  dump 
java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[1].basePolicy
 java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[1].basePolicy 
= {
    JAVA_SECURITY_POLICY: "java.security.policy"
    POLICY_URL_PREFIX: "policy.url."
    rl: instance of 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock(id=1085)
    wl: instance of 
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock(id=1086)
    grants: instance of java.util.ArrayList(id=1087)
    cache: instance of 
org.apache.river.impl.util.ReferenceConcurrentMap(id=1088)
    impliesCache: instance of 
org.apache.river.impl.util.ReferenceConcurrentMap(id=1089)
    parser: instance of 
org.apache.river.impl.security.policy.util.DefaultPolicyParser(id=1090)
    guard: instance of java.security.SecurityPermission(id=1082)
    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
java.security.Policy$UnsupportedEmptyCollection(id=1060)
    java.security.Policy.policy: instance of 
com.sun.jini.start.AggregatePolicyProvider(id=1020)
    java.security.Policy.debug: null
    java.security.Policy.pdMapping: null
}

main[1] print 
java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[1].basePolicy.grants
 java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[1].basePolicy.grants 
= "[
URI: [file:/usr/jdk/instances/jdk1.6.0/jre/lib/ext/*, 
file:/usr/jdk/packages/lib/ext/*, 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/*, 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/*]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: []
Certificate's:
Principals:

Permissions:
(java.util.PropertyPermission file.separator read)
(java.util.PropertyPermission os.version read)
(java.util.PropertyPermission java.vm.name read)
(java.util.PropertyPermission java.vendor read)
(java.util.PropertyPermission java.vendor.url read)
(java.util.PropertyPermission java.vm.specification.vendor read)
(java.util.PropertyPermission java.vm.version read)
(java.util.PropertyPermission java.version read)
(java.util.PropertyPermission java.vm.specification.version read)
(java.util.PropertyPermission java.specification.version read)
(java.util.PropertyPermission os.arch read)
(java.util.PropertyPermission os.name read)
(java.lang.RuntimePermission stopThread)
(java.util.PropertyPermission java.vm.specification.name read)
(java.util.PropertyPermission java.vm.vendor read)
(java.util.PropertyPermission java.specification.name read)
(java.util.PropertyPermission line.separator read)
(java.util.PropertyPermission java.class.version read)
(java.util.PropertyPermission path.separator read)
(java.net.SocketPermission localhost:1024- listen,resolve)
(java.util.PropertyPermission java.specification.vendor read)

,
URI: [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/*]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-lookup-simulator.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: [file:/usr/jdk/instances/jdk1.6.0/jre/lib/ext/*, 
file:/usr/jdk/packages/lib/ext/*, 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/*, 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/*]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: [file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/*]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar]
Certificate's:
Principals:

Permissions:
(net.jini.security.GrantPermission java.security.AllPermission "", "")

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-io-marshalinputstream-test.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-mercury-bogusimpl.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-io-marshalledinstance-test.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-testservice1.jar]
Certificate's:
Principals:

Permissions:
(unresolved com.sun.jini.start.SharedActivationPolicyPermission 
jar:file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar!/harness/policy/all.policy 
null)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/mahalo.jar]
Certificate's:
Principals:

Permissions:
(unresolved com.sun.jini.start.SharedActivationPolicyPermission 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/mahalo/bogusMahaloImpl.policy 
null)

,
URI: []
Certificate's:
Principals:

Permissions:
(java.util.PropertyPermission 
com.sun.jini.reggie.enableImplToStubReplacement read)
(java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/- read)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-testservice2.jar]
Certificate's:
Principals:

Permissions:
(unresolved com.sun.jini.start.SharedActivationPolicyPermission 
jar:file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar!/harness/policy/all.policy 
null)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/mercury.jar]
Certificate's:
Principals:

Permissions:
(unresolved com.sun.jini.start.SharedActivationPolicyPermission 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/mahalo/bogusMahaloImpl.policy 
null)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/mercury_bogus.jar]
Certificate's:
Principals:

Permissions:
(unresolved com.sun.jini.start.SharedActivationPolicyPermission 
jar:file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar!/harness/policy/all.policy 
null)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/fullloggingfilter.jar]
Certificate's:
Principals:

Permissions:
(unresolved com.sun.jini.start.SharedActivationPolicyPermission \- null)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-probe.jar]
Certificate's:
Principals:

Permissions:
(unresolved com.sun.jini.start.SharedActivationPolicyPermission 
jar:file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar!/harness/policy/all.policy 
null)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-tests.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

]"

main[1] print 
java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0].basePolicy.grants
 java.security.Policy.policy.mainPolicy.basePolicy.policies.c.elementData[0].basePolicy.grants 
= "[
URI: []
Certificate's:
Principals:

Permissions:
(java.util.PropertyPermission file.separator read)
(java.util.PropertyPermission os.version read)
(java.util.PropertyPermission java.vm.name read)
(java.util.PropertyPermission java.vendor read)
(java.util.PropertyPermission java.vendor.url read)
(java.util.PropertyPermission java.vm.specification.vendor read)
(java.util.PropertyPermission java.vm.version read)
(java.util.PropertyPermission java.version read)
(java.util.PropertyPermission java.vm.specification.version read)
(java.util.PropertyPermission java.specification.version read)
(java.util.PropertyPermission os.arch read)
(java.util.PropertyPermission os.name read)
(java.lang.RuntimePermission stopThread)
(java.util.PropertyPermission java.vm.specification.name read)
(java.util.PropertyPermission java.vm.vendor read)
(java.util.PropertyPermission java.specification.name read)
(java.util.PropertyPermission line.separator read)
(java.util.PropertyPermission java.class.version read)
(java.util.PropertyPermission path.separator read)
(java.net.SocketPermission localhost:1024- listen,resolve)
(java.util.PropertyPermission java.specification.vendor read)

,
URI: [file:/usr/jdk/instances/jdk1.6.0/jre/lib/ext/*, 
file:/usr/jdk/packages/lib/ext/*, 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/*, 
file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/*]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jini-ext.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-jini-latest.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-cb1.jar]
Certificate's:
Principals:

Permissions:
(java.lang.RuntimePermission A)
(java.lang.RuntimePermission B)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/harness.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: []
Certificate's:
Principals:

Permissions:
(java.security.SecurityPermission setPolicy)
(java.security.SecurityPermission getProperty.*)
(java.lang.RuntimePermission createClassLoader)
(java.lang.RuntimePermission setContextClassLoader)
(java.security.SecurityPermission getPolicy)
(java.lang.RuntimePermission accessClassInPackage.*)
(java.util.PropertyPermission * read,write)
(java.lang.RuntimePermission getClassLoader)
(java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: [file:/usr/jdk/instances/jdk1.6.0/jre/lib/ext/*]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-cb3.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar]
Certificate's:
Principals:

Permissions:
(java.security.AllPermission <all permissions> <all actions>)

,
URI: 
[file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-cb2.jar]
Certificate's:
Principals:

Permissions:
(java.lang.RuntimePermission A)
(java.lang.RuntimePermission C)

]"
main[1]





Peter Firmstone wrote:
> Here's the context, including permissions, so yes RuntimePermission A 
> passes in this case, this is the passing test, now all I have to do is 
> figure out the domain that doesn't have RuntimePermission A in the 
> failing test, that should narrow it down.
>
> context[0] = "ProtectionDomain  
> (file:/opt/src/river/trunk/qa/lib/jiniharness.jar <no signer 
> certificates>)
> sun.misc.Launcher$AppClassLoader@affc70
> <no principals>
> java.security.Permissions@1570945 (
> (java.security.AllPermission <all permissions> <all actions>)
> (java.lang.RuntimePermission exitVM)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/jiniharness.jar read)
> )
>
> "
> main[1] print context[1]
> context[1] = "ProtectionDomain  
> (file:/opt/src/river/trunk/lib/jsk-platform.jar <no signer certificates>)
> sun.misc.Launcher$AppClassLoader@affc70
> <no principals>
> java.security.Permissions@1381960 (
> (net.jini.security.GrantPermission java.security.AllPermission "<all 
> permissions>", "<all actions>"; java.lang.RuntimePermission 
> "getClassLoader", ""; java.lang.RuntimePermission 
> "accessClassInPackage.*", ""; java.lang.RuntimePermission 
> "createClassLoader", ""; java.lang.RuntimePermission "stopThread", ""; 
> java.lang.RuntimePermission "setContextClassLoader", ""; 
> java.lang.RuntimePermission "exitVM", ""; java.io.FilePermission 
> "/opt/src/river/trunk/qa/lib/*", "read"; java.io.FilePermission 
> "/opt/src/river/trunk/qa/lib/*", "read"; java.io.FilePermission 
> "/opt/src/river/trunk/lib/jsk-platform.jar", "read"; 
> java.net.SocketPermission "localhost:1024-", "listen,resolve"; 
> java.security.SecurityPermission "getPolicy", ""; 
> java.security.SecurityPermission "setPolicy", ""; 
> java.security.SecurityPermission "getProperty.*", ""; 
> java.util.PropertyPermission "line.separator", "read"; 
> java.util.PropertyPermission "java.vm.version", "read"; 
> java.util.PropertyPermission "java.vm.specification.version", "read"; 
> java.util.PropertyPermission "java.vm.specification.vendor", "read"; 
> java.util.PropertyPermission "java.vendor.url", "read"; 
> java.util.PropertyPermission "java.vm.name", "read"; 
> java.util.PropertyPermission "*", "read,write"; 
> java.util.PropertyPermission "os.name", "read"; 
> java.util.PropertyPermission "java.vm.vendor", "read"; 
> java.util.PropertyPermission "path.separator", "read"; 
> java.util.PropertyPermission "java.specification.name", "read"; 
> java.util.PropertyPermission "os.version", "read"; 
> java.util.PropertyPermission "os.arch", "read"; 
> java.util.PropertyPermission "java.class.version", "read"; 
> java.util.PropertyPermission "java.version", "read"; 
> java.util.PropertyPermission "file.separator", "read"; 
> java.util.PropertyPermission "java.vendor", "read"; 
> java.util.PropertyPermission "java.vm.specification.name", "read"; 
> java.util.PropertyPermission "java.specification.version", "read"; 
> java.util.PropertyPermission "java.specification.vendor", "read";)
> (java.security.AllPermission <all permissions> <all actions>)
> (java.lang.RuntimePermission getClassLoader)
> (java.lang.RuntimePermission accessClassInPackage.*)
> (java.lang.RuntimePermission createClassLoader)
> (java.lang.RuntimePermission stopThread)
> (java.lang.RuntimePermission setContextClassLoader)
> (java.lang.RuntimePermission exitVM)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
> (java.io.FilePermission /opt/src/river/trunk/lib/jsk-platform.jar read)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.security.SecurityPermission getPolicy)
> (java.security.SecurityPermission setPolicy)
> (java.security.SecurityPermission getProperty.*)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission * read,write)
> (java.util.PropertyPermission os.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission path.separator read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission java.specification.vendor read)
> )
>
> "
> main[1] print context[2]
> context[2] = "ProtectionDomain  (file:lib/qa1-start-cb1.jar <no signer 
> certificates>)
> java.net.URLClassLoader@7f58ef
> <no principals>
> java.security.Permissions@4845aa (
> (java.lang.RuntimePermission getClassLoader)
> (java.lang.RuntimePermission accessClassInPackage.*)
> (java.lang.RuntimePermission createClassLoader)
> (java.lang.RuntimePermission A)
> (java.lang.RuntimePermission B)
> (java.lang.RuntimePermission stopThread)
> (java.lang.RuntimePermission setContextClassLoader)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/- read)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
> (java.io.FilePermission lib/qa1-start-cb1.jar read)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.security.SecurityPermission getPolicy)
> (java.security.SecurityPermission setPolicy)
> (java.security.SecurityPermission getProperty.*)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission * read,write)
> (java.util.PropertyPermission os.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission path.separator read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission java.specification.vendor read)
> )
>
> "
> main[1] print context[3]
> context[3] = "ProtectionDomain  (file:lib/qa1-start-cb3.jar <no signer 
> certificates>)
> java.net.URLClassLoader@64023c
> <no principals>
> java.security.Permissions@4bfe6b (
> (net.jini.security.GrantPermission java.security.AllPermission "<all 
> permissions>", "<all actions>"; java.lang.RuntimePermission 
> "getClassLoader", ""; java.lang.RuntimePermission 
> "accessClassInPackage.*", ""; java.lang.RuntimePermission 
> "createClassLoader", ""; java.lang.RuntimePermission "stopThread", ""; 
> java.lang.RuntimePermission "setContextClassLoader", ""; 
> java.io.FilePermission "/opt/src/river/trunk/qa/lib/*", "read"; 
> java.io.FilePermission "/opt/src/river/trunk/qa/lib/*", "read"; 
> java.io.FilePermission "lib/qa1-start-cb3.jar", "read"; 
> java.net.SocketPermission "localhost:1024-", "listen,resolve"; 
> java.security.SecurityPermission "getPolicy", ""; 
> java.security.SecurityPermission "setPolicy", ""; 
> java.security.SecurityPermission "getProperty.*", ""; 
> java.util.PropertyPermission "line.separator", "read"; 
> java.util.PropertyPermission "java.vm.version", "read"; 
> java.util.PropertyPermission "java.vm.specification.version", "read"; 
> java.util.PropertyPermission "java.vm.specification.vendor", "read"; 
> java.util.PropertyPermission "java.vendor.url", "read"; 
> java.util.PropertyPermission "java.vm.name", "read"; 
> java.util.PropertyPermission "*", "read,write"; 
> java.util.PropertyPermission "os.name", "read"; 
> java.util.PropertyPermission "java.vm.vendor", "read"; 
> java.util.PropertyPermission "path.separator", "read"; 
> java.util.PropertyPermission "java.specification.name", "read"; 
> java.util.PropertyPermission "os.version", "read"; 
> java.util.PropertyPermission "os.arch", "read"; 
> java.util.PropertyPermission "java.class.version", "read"; 
> java.util.PropertyPermission "java.version", "read"; 
> java.util.PropertyPermission "file.separator", "read"; 
> java.util.PropertyPermission "java.vendor", "read"; 
> java.util.PropertyPermission "java.vm.specification.name", "read"; 
> java.util.PropertyPermission "java.specification.version", "read"; 
> java.util.PropertyPermission "java.specification.vendor", "read";)
> (java.security.AllPermission <all permissions> <all actions>)
> (java.lang.RuntimePermission getClassLoader)
> (java.lang.RuntimePermission accessClassInPackage.*)
> (java.lang.RuntimePermission createClassLoader)
> (java.lang.RuntimePermission stopThread)
> (java.lang.RuntimePermission setContextClassLoader)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
> (java.io.FilePermission lib/qa1-start-cb3.jar read)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.security.SecurityPermission getPolicy)
> (java.security.SecurityPermission setPolicy)
> (java.security.SecurityPermission getProperty.*)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission * read,write)
> (java.util.PropertyPermission os.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission path.separator read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission java.specification.vendor read)
> )
>
> "
> main[1] print context[4]
> context[4] = "ProtectionDomain  (file:lib/qa1-start-cb2.jar <no signer 
> certificates>)
> java.net.URLClassLoader@1d9e282
> <no principals>
> java.security.Permissions@366573 (
> (java.lang.RuntimePermission getClassLoader)
> (java.lang.RuntimePermission accessClassInPackage.*)
> (java.lang.RuntimePermission createClassLoader)
> (java.lang.RuntimePermission A)
> (java.lang.RuntimePermission C)
> (java.lang.RuntimePermission stopThread)
> (java.lang.RuntimePermission setContextClassLoader)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/- read)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
> (java.io.FilePermission lib/qa1-start-cb2.jar read)
> (java.net.SocketPermission localhost:1024- listen,resolve)
> (java.security.SecurityPermission getPolicy)
> (java.security.SecurityPermission setPolicy)
> (java.security.SecurityPermission getProperty.*)
> (java.util.PropertyPermission line.separator read)
> (java.util.PropertyPermission java.vm.version read)
> (java.util.PropertyPermission java.vm.specification.version read)
> (java.util.PropertyPermission java.vm.specification.vendor read)
> (java.util.PropertyPermission java.vendor.url read)
> (java.util.PropertyPermission java.vm.name read)
> (java.util.PropertyPermission * read,write)
> (java.util.PropertyPermission os.name read)
> (java.util.PropertyPermission java.vm.vendor read)
> (java.util.PropertyPermission path.separator read)
> (java.util.PropertyPermission java.specification.name read)
> (java.util.PropertyPermission os.version read)
> (java.util.PropertyPermission os.arch read)
> (java.util.PropertyPermission java.class.version read)
> (java.util.PropertyPermission java.version read)
> (java.util.PropertyPermission file.separator read)
> (java.util.PropertyPermission java.vendor read)
> (java.util.PropertyPermission java.vm.specification.name read)
> (java.util.PropertyPermission java.specification.version read)
> (java.util.PropertyPermission java.specification.vendor read)
> )
>
> "
>
>
>
>
> Peter Firmstone wrote:
>> This is one of the contexts from the passing test during the check 
>> for RuntimePermission B, unfortunately the codesource locations are 
>> missing the path property com.sun.jini.qa.home.
>>
>> Somehow this context passed RuntimePermission A, but you can't see 
>> that in the ProtectionDomain toString(), although I'll have to do 
>> that with security debug enabled to see if there are any rejected 
>> permissions.
>>
>> main[1] print permission
>> permission = "(java.lang.RuntimePermission B)"
>> main[1] step up
>> >
>> Step completed: "thread=main", 
>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=16
>>
>> main[1] step up
>> >
>> Step completed: "thread=main", 
>> java.security.ProtectionDomain.implies(), line=224 bci=24
>>
>> main[1] step up
>> >
>> Step completed: "thread=main", 
>> java.security.AccessControlContext.checkPermission(), line=352 bci=325
>>
>> main[1] dump this
>> this = {
>>    context: instance of java.security.ProtectionDomain[5] (id=1030)
>>    isPrivileged: false
>>    privilegedContext: instance of 
>> java.security.AccessControlContext(id=1032)
>>    combiner: null
>>    debugInit: true
>>    debug: null
>> }
>> main[1] print this.context[0]
>> this.context[0] = "ProtectionDomain  
>> (file:/opt/src/river/trunk/qa/lib/jiniharness.jar <no signer 
>> certificates>) sun.misc.Launcher$AppClassLoader@93dee9
>> <no principals>
>> java.security.Permissions@115d06c (
>> (java.io.FilePermission /opt/src/river/trunk/qa/lib/jiniharness.jar 
>> read)
>> (java.lang.RuntimePermission exitVM)
>> )
>>
>> "
>> main[1] print this.context[1]
>> this.context[1] = "ProtectionDomain  
>> (file:/opt/src/river/trunk/lib/jsk-platform.jar <no signer 
>> certificates>)
>> sun.misc.Launcher$AppClassLoader@93dee9
>> <no principals>
>> java.security.Permissions@13e15f7 (
>> (java.io.FilePermission /opt/src/river/trunk/lib/jsk-platform.jar read)
>> (java.lang.RuntimePermission exitVM)
>> )
>>
>> "
>> main[1] print this.context[2]
>> this.context[2] = "ProtectionDomain  (file:lib/qa1-start-cb1.jar <no 
>> signer certificates>)
>> java.net.URLClassLoader@1a99347
>> <no principals>
>> java.security.Permissions@569c60 (
>> (java.io.FilePermission lib/qa1-start-cb1.jar read)
>> )
>>
>> "
>> main[1] print this.context[3]
>> this.context[3] = "ProtectionDomain  (file:lib/qa1-start-cb3.jar <no 
>> signer certificates>)
>> java.net.URLClassLoader@e45b5e
>> <no principals>
>> java.security.Permissions@17f11fb (
>> (java.io.FilePermission lib/qa1-start-cb3.jar read)
>> )
>>
>> "
>> main[1] print this.context[4]
>> this.context[4] = "ProtectionDomain  (file:lib/qa1-start-cb2.jar <no 
>> signer certificates>)
>> java.net.URLClassLoader@94af2f
>> <no principals>
>> java.security.Permissions@1f44ec7 (
>> (java.io.FilePermission lib/qa1-start-cb2.jar read)
>> )
>>
>> "
>> main[1]
>>
>> Peter Firmstone wrote:
>>> It seems it isn't too hard to lockup the test on the main trunk, 
>>> using jdb, then exiting the debugger, leaving the test in a hung state.
>>>
>>> I've modified AggregratePolicyProvider in skunk (see recent commit), 
>>> after the mods I'm unable to get it to lock up after exiting the 
>>> debugger.
>>>
>>> From river trunk:
>>>
>>> bash-3.00$ jstack 19499
>>> 2011-12-27 18:29:02
>>> Full thread dump Java HotSpot(TM) Server VM (20.0-b11 mixed mode):
>>>
>>> "Attach Listener" daemon prio=3 tid=0x001d8c00 nid=0x14 waiting on 
>>> condition [0x00000000]
>>>   java.lang.Thread.State: RUNNABLE
>>>
>>> "test-err" daemon prio=3 tid=0x001d2400 nid=0x13 runnable [0xb667f000]
>>>   java.lang.Thread.State: RUNNABLE
>>>        at java.io.FileInputStream.readBytes(Native Method)
>>>        at java.io.FileInputStream.read(FileInputStream.java:198)
>>>        at 
>>> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:218) 
>>>
>>>        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>>>        at java.lang.Thread.run(Thread.java:662)
>>>
>>> "test-out" daemon prio=3 tid=0x001d1c00 nid=0x12 runnable [0xb677f000]
>>>   java.lang.Thread.State: RUNNABLE
>>>        at java.io.FileInputStream.readBytes(Native Method)
>>>        at java.io.FileInputStream.read(FileInputStream.java:220)
>>>        at 
>>> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227) 
>>>
>>>        at 
>>> java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>>>        at 
>>> java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
>>>        at 
>>> java.io.BufferedInputStream.read(BufferedInputStream.java:317)
>>>        - locked <0xe674ec70> (a java.io.BufferedInputStream)
>>>        at java.io.FilterInputStream.read(FilterInputStream.java:90)
>>>        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>>>        at java.lang.Thread.run(Thread.java:662)
>>>
>>> "process reaper" daemon prio=3 tid=0x00247c00 nid=0x11 runnable 
>>> [0xb687f000]
>>>   java.lang.Thread.State: RUNNABLE
>>>        at java.lang.UNIXProcess.waitForProcessExit(Native Method)
>>>        at java.lang.UNIXProcess.access$900(UNIXProcess.java:17)
>>>        at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86)
>>>
>>> "Keepalive" daemon prio=3 tid=0x002e6c00 nid=0x10 runnable [0xb697f000]
>>>   java.lang.Thread.State: RUNNABLE
>>>        at java.net.PlainSocketImpl.socketAccept(Native Method)
>>>        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
>>>        - locked <0xe662d6b8> (a java.net.SocksSocketImpl)
>>>        at java.net.ServerSocket.implAccept(ServerSocket.java:462)
>>>        at java.net.ServerSocket.accept(ServerSocket.java:430)
>>>        at 
>>> com.sun.jini.qa.harness.MasterHarness$KeepAlivePort.run(MasterHarness.java:254) 
>>>
>>>        at java.lang.Thread.run(Thread.java:662)
>>>
>>> "no heart without soul" daemon prio=3 tid=0x00180400 nid=0xf waiting 
>>> on condition [0xb6a7f000]
>>>   java.lang.Thread.State: TIMED_WAITING (sleeping)
>>>        at java.lang.Thread.sleep(Native Method)
>>>        at 
>>> com.sun.jini.qa.harness.HeartOfTheMachine.ticktack(HeartOfTheMachine.java:63) 
>>>
>>>        at 
>>> com.sun.jini.qa.harness.HeartOfTheMachine.access$000(HeartOfTheMachine.java:29) 
>>>
>>>        at 
>>> com.sun.jini.qa.harness.HeartOfTheMachine$1.run(HeartOfTheMachine.java:45) 
>>>
>>>        at java.lang.Thread.run(Thread.java:662)
>>>
>>> "Low Memory Detector" daemon prio=3 tid=0x00122c00 nid=0xd runnable 
>>> [0x00000000]
>>>   java.lang.Thread.State: RUNNABLE
>>>
>>> "C2 CompilerThread1" daemon prio=3 tid=0x00120000 nid=0xc waiting on 
>>> condition [0x00000000]
>>>   java.lang.Thread.State: RUNNABLE
>>>
>>> "C2 CompilerThread0" daemon prio=3 tid=0x0011d800 nid=0xb waiting on 
>>> condition [0x00000000]
>>>   java.lang.Thread.State: RUNNABLE
>>>
>>> "Signal Dispatcher" daemon prio=3 tid=0x0011c000 nid=0xa runnable 
>>> [0x00000000]
>>>   java.lang.Thread.State: RUNNABLE
>>>
>>> "Finalizer" daemon prio=3 tid=0x0010bc00 nid=0x9 in Object.wait() 
>>> [0xb707f000]
>>>   java.lang.Thread.State: WAITING (on object monitor)
>>>        at java.lang.Object.wait(Native Method)
>>>        - waiting on <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>>>        - locked <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>>>        at 
>>> java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
>>>
>>> "Reference Handler" daemon prio=3 tid=0x00107000 nid=0x8 in 
>>> Object.wait() [0xb717f000]
>>>   java.lang.Thread.State: WAITING (on object monitor)
>>>        at java.lang.Object.wait(Native Method)
>>>        - waiting on <0xe6401050> (a java.lang.ref.Reference$Lock)
>>>        at java.lang.Object.wait(Object.java:485)
>>>        at 
>>> java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>>>        - locked <0xe6401050> (a java.lang.ref.Reference$Lock)
>>>
>>> "main" prio=3 tid=0x00031400 nid=0x2 in Object.wait() [0xfe37f000]
>>>   java.lang.Thread.State: WAITING (on object monitor)
>>>        at java.lang.Object.wait(Native Method)
>>>        - waiting on <0xe674ca40> (a java.lang.UNIXProcess)
>>>        at java.lang.Object.wait(Object.java:485)
>>>        at java.lang.UNIXProcess.waitFor(UNIXProcess.java:115)
>>>        - locked <0xe674ca40> (a java.lang.UNIXProcess)
>>>        at 
>>> com.sun.jini.qa.harness.MasterHarness.runTestOtherVM(MasterHarness.java:873) 
>>>
>>>        at 
>>> com.sun.jini.qa.harness.MasterHarness.access$200(MasterHarness.java:119) 
>>>
>>>        at 
>>> com.sun.jini.qa.harness.MasterHarness$TestRunner.run(MasterHarness.java:603) 
>>>
>>>        at 
>>> com.sun.jini.qa.harness.MasterHarness.runTests(MasterHarness.java:430)
>>>        at com.sun.jini.qa.harness.QARunner.main(QARunner.java:67)
>>>
>>> "VM Thread" prio=3 tid=0x00103000 nid=0x7 runnable
>>>
>>> "GC task thread#0 (ParallelGC)" prio=3 tid=0x00039000 nid=0x3 runnable
>>>
>>> "GC task thread#1 (ParallelGC)" prio=3 tid=0x0003a400 nid=0x4 runnable
>>>
>>> "GC task thread#2 (ParallelGC)" prio=3 tid=0x0003b800 nid=0x5 runnable
>>>
>>> "GC task thread#3 (ParallelGC)" prio=3 tid=0x0003cc00 nid=0x6 runnable
>>>
>>> "VM Periodic Task Thread" prio=3 tid=0x0012cc00 nid=0xe waiting on 
>>> condition
>>>
>>> JNI global references: 1252
>>>
>>>
>>> Dan Creswell wrote:
>>>> ...
>>>>
>>>> On 27 December 2011 01:40, Peter Firmstone <ji...@zeus.net.au> wrote:
>>>>  
>>>>> The following is specific to:
>>>>>
>>>>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td 
>>>>>
>>>>>
>>>>> I've just come across the concurrency issue (experienced randomly 
>>>>> when
>>>>> attempting to debug any of the failing tests) in the existing 
>>>>> River trunk
>>>>> code, after exiting the debugger, the test is in a deadlocked 
>>>>> state, here's
>>>>> the thread dump:
>>>>>
>>>>>     
>>>>
>>>> Two threads arriving at the same point doesn't imply deadlock, in fact
>>>> it can mean quite the opposite. Deadlock requires two threads taking
>>>> resources in opposite orders so T1 takes a and tries to take b, T2
>>>> takes b and tries to take a. Thus I wouldn't expect both threads to be
>>>> blocking in implies.
>>>>
>>>> So both threads arrived at AggregatePolicyProvider.implies but note
>>>> that method is not synchronized and the stack does not include mention
>>>> of getCurrentSubPolicy which does take a lock.
>>>>
>>>> Thing is, the debugger itself could be the culprit, especially given
>>>> what you do below in terms of attempting a print.
>>>>
>>>> If at all possible, it's going to be better to leave the debugger out
>>>> and wait for the test to deadlock, after which using jstack will give
>>>> a full dump and include a note of locks taken as well (something it
>>>> looks like the debugger above, doesn't do).
>>>>
>>>>  
>>>>> In this case I've tried to print the domain (ProtectionDomain), as 
>>>>> you can
>>>>> see two threads have arrived at the same breakpoint.
>>>>>
>>>>> jdb -attach 8000
>>>>> Set uncaught java.lang.Throwable
>>>>> Set deferred uncaught java.lang.Throwable
>>>>> Initializing jdb ...
>>>>>     VM Started: No frames on the current call stack
>>>>>
>>>>> main[1] stop in com.sun.jini.start.AggregatePolicyProvider.implies
>>>>> Deferring breakpoint 
>>>>> com.sun.jini.start.AggregatePolicyProvider.implies.
>>>>> It will be set after the class is loaded.
>>>>> main[1] run
>>>>>  
>>>>>> Set deferred breakpoint 
>>>>>> com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>>       
>>>>> Breakpoint hit: "thread=main",
>>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>>
>>>>> main[1] print domain
>>>>>
>>>>> Breakpoint hit: "thread=main",
>>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>>
>>>>> main[1] where all
>>>>> Signal Dispatcher:
>>>>> Finalizer:
>>>>>  [1] java.lang.Object.wait (native method)
>>>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>>>> Reference Handler:
>>>>>  [1] java.lang.Object.wait (native method)
>>>>>  [2] java.lang.Object.wait (Object.java:485)
>>>>>  [3] java.lang.ref.Reference$ReferenceHandler.run 
>>>>> (Reference.java:116)
>>>>> main:
>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>> (AggregatePolicyProvider.java:201)
>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>> (ProtectionDomain.java:224)
>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>> (AccessControlContext.java:352)
>>>>>  [4] java.security.AccessController.checkPermission
>>>>> (AccessController.java:546)
>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>> (SecurityManager.java:532)
>>>>>  [6] java.security.ProtectionDomain.seeAllp 
>>>>> (ProtectionDomain.java:295)
>>>>>  [7] java.security.ProtectionDomain.toString 
>>>>> (ProtectionDomain.java:255)
>>>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>> (AggregatePolicyProvider.java:201)
>>>>>  [9] java.security.ProtectionDomain.implies 
>>>>> (ProtectionDomain.java:224)
>>>>>  [10] java.security.AccessControlContext.checkPermission
>>>>> (AccessControlContext.java:352)
>>>>>  [11] java.security.AccessController.checkPermission
>>>>> (AccessController.java:546)
>>>>>  [12] java.lang.SecurityManager.checkPermission 
>>>>> (SecurityManager.java:532)
>>>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>>>> (SecurityManager.java:594)
>>>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>>> (ClassLoader.java:177)
>>>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>>>  [16] java.security.SecureClassLoader.<init> 
>>>>> (SecureClassLoader.java:93)
>>>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>>>  [18]
>>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>>
>>>>> (GetContextTest.java:85)
>>>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>>> no heart without soul:
>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>> (AggregatePolicyProvider.java:201)
>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>> (ProtectionDomain.java:224)
>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>> (AccessControlContext.java:352)
>>>>>  [4] java.security.AccessController.checkPermission
>>>>> (AccessController.java:546)
>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>> (SecurityManager.java:532)
>>>>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>>>  [7] java.io.File.exists (File.java:731)
>>>>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>>> (HeartOfTheMachine.java:56)
>>>>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>>> (HeartOfTheMachine.java:62)
>>>>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>>> (HeartOfTheMachine.java:29)
>>>>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>>> (HeartOfTheMachine.java:45)
>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>> Thread-2:
>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>> Thread-3:
>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>> Thread-4:
>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>> RequestHandler:
>>>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>>>> (ObjectInputStream.java:2,265)
>>>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>>> (ObjectInputStream.java:2,278)
>>>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>>> (ObjectInputStream.java:2,749)
>>>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>>>> (ObjectInputStream.java:779)
>>>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>>> (MasterTest.java:323)
>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>> main[1] monitor
>>>>> main[1] step
>>>>>
>>>>>     Breakpoint hit: "thread=no heart without soul",
>>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>>
>>>>> no heart without soul[1] where all
>>>>> Signal Dispatcher:
>>>>> Finalizer:
>>>>>  [1] java.lang.Object.wait (native method)
>>>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>>>> Reference Handler:
>>>>>  [1] java.lang.Object.wait (native method)
>>>>>  [2] java.lang.Object.wait (Object.java:485)
>>>>>  [3] java.lang.ref.Reference$ReferenceHandler.run 
>>>>> (Reference.java:116)
>>>>> main:
>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>> (AggregatePolicyProvider.java:201)
>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>> (ProtectionDomain.java:224)
>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>> (AccessControlContext.java:352)
>>>>>  [4] java.security.AccessController.checkPermission
>>>>> (AccessController.java:546)
>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>> (SecurityManager.java:532)
>>>>>  [6] java.security.ProtectionDomain.seeAllp 
>>>>> (ProtectionDomain.java:295)
>>>>>  [7] java.security.ProtectionDomain.toString 
>>>>> (ProtectionDomain.java:255)
>>>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>> (AggregatePolicyProvider.java:201)
>>>>>  [9] java.security.ProtectionDomain.implies 
>>>>> (ProtectionDomain.java:224)
>>>>>  [10] java.security.AccessControlContext.checkPermission
>>>>> (AccessControlContext.java:352)
>>>>>  [11] java.security.AccessController.checkPermission
>>>>> (AccessController.java:546)
>>>>>  [12] java.lang.SecurityManager.checkPermission 
>>>>> (SecurityManager.java:532)
>>>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>>>> (SecurityManager.java:594)
>>>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>>> (ClassLoader.java:177)
>>>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>>>  [16] java.security.SecureClassLoader.<init> 
>>>>> (SecureClassLoader.java:93)
>>>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>>>  [18]
>>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>>
>>>>> (GetContextTest.java:85)
>>>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>>> no heart without soul:
>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>> (AggregatePolicyProvider.java:201)
>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>> (ProtectionDomain.java:224)
>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>> (AccessControlContext.java:352)
>>>>>  [4] java.security.AccessController.checkPermission
>>>>> (AccessController.java:546)
>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>> (SecurityManager.java:532)
>>>>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>>>  [7] java.io.File.exists (File.java:731)
>>>>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>>> (HeartOfTheMachine.java:56)
>>>>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>>> (HeartOfTheMachine.java:62)
>>>>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>>> (HeartOfTheMachine.java:29)
>>>>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>>> (HeartOfTheMachine.java:45)
>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>> Thread-2:
>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>> Thread-3:
>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>> Thread-4:
>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>> RequestHandler:
>>>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>>>> (ObjectInputStream.java:2,265)
>>>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>>> (ObjectInputStream.java:2,278)
>>>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>>> (ObjectInputStream.java:2,749)
>>>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>>>> (ObjectInputStream.java:779)
>>>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>>> (MasterTest.java:323)
>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>> no heart without soul[1] step
>>>>>
>>>>>     Breakpoint hit: "thread=main",
>>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>>
>>>>> main[1] where all
>>>>> Signal Dispatcher:
>>>>> Finalizer:
>>>>>  [1] java.lang.Object.wait (native method)
>>>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>>>> Reference Handler:
>>>>>  [1] java.lang.Object.wait (native method)
>>>>>  [2] java.lang.Object.wait (Object.java:485)
>>>>>  [3] java.lang.ref.Reference$ReferenceHandler.run 
>>>>> (Reference.java:116)
>>>>> main:
>>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>> (AggregatePolicyProvider.java:201)
>>>>>  [2] java.security.ProtectionDomain.implies 
>>>>> (ProtectionDomain.java:224)
>>>>>  [3] java.security.AccessControlContext.checkPermission
>>>>> (AccessControlContext.java:352)
>>>>>  [4] java.security.AccessController.checkPermission
>>>>> (AccessController.java:546)
>>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>>> (SecurityManager.java:532)
>>>>>  [6] java.security.ProtectionDomain.seeAllp 
>>>>> (ProtectionDomain.java:295)
>>>>>  [7] java.security.ProtectionDomain.toString 
>>>>> (ProtectionDomain.java:255)
>>>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>>> (AggregatePolicyProvider.java:201)
>>>>>  [9] java.security.ProtectionDomain.implies 
>>>>> (ProtectionDomain.java:224)
>>>>>  [10] java.security.AccessControlContext.checkPermission
>>>>> (AccessControlContext.java:352)
>>>>>  [11] java.security.AccessController.checkPermission
>>>>> (AccessController.java:546)
>>>>>  [12] java.lang.SecurityManager.checkPermission 
>>>>> (SecurityManager.java:532)
>>>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>>>> (SecurityManager.java:594)
>>>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>>> (ClassLoader.java:177)
>>>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>>>  [16] java.security.SecureClassLoader.<init> 
>>>>> (SecureClassLoader.java:93)
>>>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>>>  [18]
>>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>>
>>>>> (GetContextTest.java:85)
>>>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>>> no heart without soul:
>>>>>  [1] java.lang.SecurityManager.checkRead (SecurityManager.java:873)
>>>>>  [2] java.io.File.exists (File.java:731)
>>>>>  [3] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>>> (HeartOfTheMachine.java:56)
>>>>>  [4] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>>> (HeartOfTheMachine.java:62)
>>>>>  [5] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>>> (HeartOfTheMachine.java:29)
>>>>>  [6] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>>> (HeartOfTheMachine.java:45)
>>>>>  [7] java.lang.Thread.run (Thread.java:662)
>>>>> Thread-2:
>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>> Thread-3:
>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>> Thread-4:
>>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>>> RequestHandler:
>>>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>>>> (ObjectInputStream.java:2,265)
>>>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>>> (ObjectInputStream.java:2,278)
>>>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>>> (ObjectInputStream.java:2,749)
>>>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>>>> (ObjectInputStream.java:779)
>>>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>>> (MasterTest.java:323)
>>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>>> main[1] dump this
>>>>> this = {
>>>>>   mainPolicyClassProperty:
>>>>> "com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
>>>>>   defaultMainPolicyClass: 
>>>>> "net.jini.security.policy.DynamicPolicyProvider"
>>>>>   trustGetCCL: instance of java.util.WeakHashMap(id=962)
>>>>>   myDomain: instance of java.security.ProtectionDomain(id=963)
>>>>>   subPolicies: instance of 
>>>>> com.sun.jini.collection.WeakIdentityMap(id=964)
>>>>>   subPolicyCache: instance of
>>>>> com.sun.jini.collection.WeakIdentityMap(id=965)
>>>>>   mainPolicy: instance of
>>>>> net.jini.security.policy.DynamicPolicyProvider(id=966)
>>>>>   $assertionsDisabled: true
>>>>>   java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of
>>>>> java.security.Policy$UnsupportedEmptyCollection(id=967)
>>>>>   java.security.Policy.policy: instance of
>>>>> com.sun.jini.start.AggregatePolicyProvider(id=959)
>>>>>   java.security.Policy.debug: null
>>>>>   java.security.Policy.pdMapping: instance of 
>>>>> java.util.WeakHashMap(id=968)
>>>>> }
>>>>> main[1] exit
>>>>>
>>>>>     
>>>>
>>>>   
>>>
>>>
>>
>>
>
>


Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
Here's the context, including permissions, so yes RuntimePermission A 
passes in this case, this is the passing test, now all I have to do is 
figure out the domain that doesn't have RuntimePermission A in the 
failing test, that should narrow it down.

 context[0] = "ProtectionDomain  
(file:/opt/src/river/trunk/qa/lib/jiniharness.jar <no signer certificates>)
 sun.misc.Launcher$AppClassLoader@affc70
 <no principals>
 java.security.Permissions@1570945 (
 (java.security.AllPermission <all permissions> <all actions>)
 (java.lang.RuntimePermission exitVM)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/jiniharness.jar read)
)

"
main[1] print context[1]
 context[1] = "ProtectionDomain  
(file:/opt/src/river/trunk/lib/jsk-platform.jar <no signer certificates>)
 sun.misc.Launcher$AppClassLoader@affc70
 <no principals>
 java.security.Permissions@1381960 (
 (net.jini.security.GrantPermission java.security.AllPermission "<all 
permissions>", "<all actions>"; java.lang.RuntimePermission 
"getClassLoader", ""; java.lang.RuntimePermission 
"accessClassInPackage.*", ""; java.lang.RuntimePermission 
"createClassLoader", ""; java.lang.RuntimePermission "stopThread", ""; 
java.lang.RuntimePermission "setContextClassLoader", ""; 
java.lang.RuntimePermission "exitVM", ""; java.io.FilePermission 
"/opt/src/river/trunk/qa/lib/*", "read"; java.io.FilePermission 
"/opt/src/river/trunk/qa/lib/*", "read"; java.io.FilePermission 
"/opt/src/river/trunk/lib/jsk-platform.jar", "read"; 
java.net.SocketPermission "localhost:1024-", "listen,resolve"; 
java.security.SecurityPermission "getPolicy", ""; 
java.security.SecurityPermission "setPolicy", ""; 
java.security.SecurityPermission "getProperty.*", ""; 
java.util.PropertyPermission "line.separator", "read"; 
java.util.PropertyPermission "java.vm.version", "read"; 
java.util.PropertyPermission "java.vm.specification.version", "read"; 
java.util.PropertyPermission "java.vm.specification.vendor", "read"; 
java.util.PropertyPermission "java.vendor.url", "read"; 
java.util.PropertyPermission "java.vm.name", "read"; 
java.util.PropertyPermission "*", "read,write"; 
java.util.PropertyPermission "os.name", "read"; 
java.util.PropertyPermission "java.vm.vendor", "read"; 
java.util.PropertyPermission "path.separator", "read"; 
java.util.PropertyPermission "java.specification.name", "read"; 
java.util.PropertyPermission "os.version", "read"; 
java.util.PropertyPermission "os.arch", "read"; 
java.util.PropertyPermission "java.class.version", "read"; 
java.util.PropertyPermission "java.version", "read"; 
java.util.PropertyPermission "file.separator", "read"; 
java.util.PropertyPermission "java.vendor", "read"; 
java.util.PropertyPermission "java.vm.specification.name", "read"; 
java.util.PropertyPermission "java.specification.version", "read"; 
java.util.PropertyPermission "java.specification.vendor", "read";)
 (java.security.AllPermission <all permissions> <all actions>)
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission stopThread)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.lang.RuntimePermission exitVM)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
 (java.io.FilePermission /opt/src/river/trunk/lib/jsk-platform.jar read)
 (java.net.SocketPermission localhost:1024- listen,resolve)
 (java.security.SecurityPermission getPolicy)
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
)

"
main[1] print context[2]
 context[2] = "ProtectionDomain  (file:lib/qa1-start-cb1.jar <no signer 
certificates>)
 java.net.URLClassLoader@7f58ef
 <no principals>
 java.security.Permissions@4845aa (
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission A)
 (java.lang.RuntimePermission B)
 (java.lang.RuntimePermission stopThread)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/- read)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
 (java.io.FilePermission lib/qa1-start-cb1.jar read)
 (java.net.SocketPermission localhost:1024- listen,resolve)
 (java.security.SecurityPermission getPolicy)
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
)

"
main[1] print context[3]
 context[3] = "ProtectionDomain  (file:lib/qa1-start-cb3.jar <no signer 
certificates>)
 java.net.URLClassLoader@64023c
 <no principals>
 java.security.Permissions@4bfe6b (
 (net.jini.security.GrantPermission java.security.AllPermission "<all 
permissions>", "<all actions>"; java.lang.RuntimePermission 
"getClassLoader", ""; java.lang.RuntimePermission 
"accessClassInPackage.*", ""; java.lang.RuntimePermission 
"createClassLoader", ""; java.lang.RuntimePermission "stopThread", ""; 
java.lang.RuntimePermission "setContextClassLoader", ""; 
java.io.FilePermission "/opt/src/river/trunk/qa/lib/*", "read"; 
java.io.FilePermission "/opt/src/river/trunk/qa/lib/*", "read"; 
java.io.FilePermission "lib/qa1-start-cb3.jar", "read"; 
java.net.SocketPermission "localhost:1024-", "listen,resolve"; 
java.security.SecurityPermission "getPolicy", ""; 
java.security.SecurityPermission "setPolicy", ""; 
java.security.SecurityPermission "getProperty.*", ""; 
java.util.PropertyPermission "line.separator", "read"; 
java.util.PropertyPermission "java.vm.version", "read"; 
java.util.PropertyPermission "java.vm.specification.version", "read"; 
java.util.PropertyPermission "java.vm.specification.vendor", "read"; 
java.util.PropertyPermission "java.vendor.url", "read"; 
java.util.PropertyPermission "java.vm.name", "read"; 
java.util.PropertyPermission "*", "read,write"; 
java.util.PropertyPermission "os.name", "read"; 
java.util.PropertyPermission "java.vm.vendor", "read"; 
java.util.PropertyPermission "path.separator", "read"; 
java.util.PropertyPermission "java.specification.name", "read"; 
java.util.PropertyPermission "os.version", "read"; 
java.util.PropertyPermission "os.arch", "read"; 
java.util.PropertyPermission "java.class.version", "read"; 
java.util.PropertyPermission "java.version", "read"; 
java.util.PropertyPermission "file.separator", "read"; 
java.util.PropertyPermission "java.vendor", "read"; 
java.util.PropertyPermission "java.vm.specification.name", "read"; 
java.util.PropertyPermission "java.specification.version", "read"; 
java.util.PropertyPermission "java.specification.vendor", "read";)
 (java.security.AllPermission <all permissions> <all actions>)
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission stopThread)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
 (java.io.FilePermission lib/qa1-start-cb3.jar read)
 (java.net.SocketPermission localhost:1024- listen,resolve)
 (java.security.SecurityPermission getPolicy)
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
)

"
main[1] print context[4]
 context[4] = "ProtectionDomain  (file:lib/qa1-start-cb2.jar <no signer 
certificates>)
 java.net.URLClassLoader@1d9e282
 <no principals>
 java.security.Permissions@366573 (
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission A)
 (java.lang.RuntimePermission C)
 (java.lang.RuntimePermission stopThread)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/- read)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/* read)
 (java.io.FilePermission lib/qa1-start-cb2.jar read)
 (java.net.SocketPermission localhost:1024- listen,resolve)
 (java.security.SecurityPermission getPolicy)
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
)

"




Peter Firmstone wrote:
> This is one of the contexts from the passing test during the check for 
> RuntimePermission B, unfortunately the codesource locations are 
> missing the path property com.sun.jini.qa.home.
>
> Somehow this context passed RuntimePermission A, but you can't see 
> that in the ProtectionDomain toString(), although I'll have to do that 
> with security debug enabled to see if there are any rejected permissions.
>
> main[1] print permission
> permission = "(java.lang.RuntimePermission B)"
> main[1] step up
> >
> Step completed: "thread=main", 
> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=16
>
> main[1] step up
> >
> Step completed: "thread=main", 
> java.security.ProtectionDomain.implies(), line=224 bci=24
>
> main[1] step up
> >
> Step completed: "thread=main", 
> java.security.AccessControlContext.checkPermission(), line=352 bci=325
>
> main[1] dump this
> this = {
>    context: instance of java.security.ProtectionDomain[5] (id=1030)
>    isPrivileged: false
>    privilegedContext: instance of 
> java.security.AccessControlContext(id=1032)
>    combiner: null
>    debugInit: true
>    debug: null
> }
> main[1] print this.context[0]
> this.context[0] = "ProtectionDomain  
> (file:/opt/src/river/trunk/qa/lib/jiniharness.jar <no signer 
> certificates>) sun.misc.Launcher$AppClassLoader@93dee9
> <no principals>
> java.security.Permissions@115d06c (
> (java.io.FilePermission /opt/src/river/trunk/qa/lib/jiniharness.jar read)
> (java.lang.RuntimePermission exitVM)
> )
>
> "
> main[1] print this.context[1]
> this.context[1] = "ProtectionDomain  
> (file:/opt/src/river/trunk/lib/jsk-platform.jar <no signer certificates>)
> sun.misc.Launcher$AppClassLoader@93dee9
> <no principals>
> java.security.Permissions@13e15f7 (
> (java.io.FilePermission /opt/src/river/trunk/lib/jsk-platform.jar read)
> (java.lang.RuntimePermission exitVM)
> )
>
> "
> main[1] print this.context[2]
> this.context[2] = "ProtectionDomain  (file:lib/qa1-start-cb1.jar <no 
> signer certificates>)
> java.net.URLClassLoader@1a99347
> <no principals>
> java.security.Permissions@569c60 (
> (java.io.FilePermission lib/qa1-start-cb1.jar read)
> )
>
> "
> main[1] print this.context[3]
> this.context[3] = "ProtectionDomain  (file:lib/qa1-start-cb3.jar <no 
> signer certificates>)
> java.net.URLClassLoader@e45b5e
> <no principals>
> java.security.Permissions@17f11fb (
> (java.io.FilePermission lib/qa1-start-cb3.jar read)
> )
>
> "
> main[1] print this.context[4]
> this.context[4] = "ProtectionDomain  (file:lib/qa1-start-cb2.jar <no 
> signer certificates>)
> java.net.URLClassLoader@94af2f
> <no principals>
> java.security.Permissions@1f44ec7 (
> (java.io.FilePermission lib/qa1-start-cb2.jar read)
> )
>
> "
> main[1]
>
> Peter Firmstone wrote:
>> It seems it isn't too hard to lockup the test on the main trunk, 
>> using jdb, then exiting the debugger, leaving the test in a hung state.
>>
>> I've modified AggregratePolicyProvider in skunk (see recent commit), 
>> after the mods I'm unable to get it to lock up after exiting the 
>> debugger.
>>
>> From river trunk:
>>
>> bash-3.00$ jstack 19499
>> 2011-12-27 18:29:02
>> Full thread dump Java HotSpot(TM) Server VM (20.0-b11 mixed mode):
>>
>> "Attach Listener" daemon prio=3 tid=0x001d8c00 nid=0x14 waiting on 
>> condition [0x00000000]
>>   java.lang.Thread.State: RUNNABLE
>>
>> "test-err" daemon prio=3 tid=0x001d2400 nid=0x13 runnable [0xb667f000]
>>   java.lang.Thread.State: RUNNABLE
>>        at java.io.FileInputStream.readBytes(Native Method)
>>        at java.io.FileInputStream.read(FileInputStream.java:198)
>>        at 
>> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:218) 
>>
>>        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>>        at java.lang.Thread.run(Thread.java:662)
>>
>> "test-out" daemon prio=3 tid=0x001d1c00 nid=0x12 runnable [0xb677f000]
>>   java.lang.Thread.State: RUNNABLE
>>        at java.io.FileInputStream.readBytes(Native Method)
>>        at java.io.FileInputStream.read(FileInputStream.java:220)
>>        at 
>> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227) 
>>
>>        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>>        at 
>> java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
>>        at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
>>        - locked <0xe674ec70> (a java.io.BufferedInputStream)
>>        at java.io.FilterInputStream.read(FilterInputStream.java:90)
>>        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>>        at java.lang.Thread.run(Thread.java:662)
>>
>> "process reaper" daemon prio=3 tid=0x00247c00 nid=0x11 runnable 
>> [0xb687f000]
>>   java.lang.Thread.State: RUNNABLE
>>        at java.lang.UNIXProcess.waitForProcessExit(Native Method)
>>        at java.lang.UNIXProcess.access$900(UNIXProcess.java:17)
>>        at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86)
>>
>> "Keepalive" daemon prio=3 tid=0x002e6c00 nid=0x10 runnable [0xb697f000]
>>   java.lang.Thread.State: RUNNABLE
>>        at java.net.PlainSocketImpl.socketAccept(Native Method)
>>        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
>>        - locked <0xe662d6b8> (a java.net.SocksSocketImpl)
>>        at java.net.ServerSocket.implAccept(ServerSocket.java:462)
>>        at java.net.ServerSocket.accept(ServerSocket.java:430)
>>        at 
>> com.sun.jini.qa.harness.MasterHarness$KeepAlivePort.run(MasterHarness.java:254) 
>>
>>        at java.lang.Thread.run(Thread.java:662)
>>
>> "no heart without soul" daemon prio=3 tid=0x00180400 nid=0xf waiting 
>> on condition [0xb6a7f000]
>>   java.lang.Thread.State: TIMED_WAITING (sleeping)
>>        at java.lang.Thread.sleep(Native Method)
>>        at 
>> com.sun.jini.qa.harness.HeartOfTheMachine.ticktack(HeartOfTheMachine.java:63) 
>>
>>        at 
>> com.sun.jini.qa.harness.HeartOfTheMachine.access$000(HeartOfTheMachine.java:29) 
>>
>>        at 
>> com.sun.jini.qa.harness.HeartOfTheMachine$1.run(HeartOfTheMachine.java:45) 
>>
>>        at java.lang.Thread.run(Thread.java:662)
>>
>> "Low Memory Detector" daemon prio=3 tid=0x00122c00 nid=0xd runnable 
>> [0x00000000]
>>   java.lang.Thread.State: RUNNABLE
>>
>> "C2 CompilerThread1" daemon prio=3 tid=0x00120000 nid=0xc waiting on 
>> condition [0x00000000]
>>   java.lang.Thread.State: RUNNABLE
>>
>> "C2 CompilerThread0" daemon prio=3 tid=0x0011d800 nid=0xb waiting on 
>> condition [0x00000000]
>>   java.lang.Thread.State: RUNNABLE
>>
>> "Signal Dispatcher" daemon prio=3 tid=0x0011c000 nid=0xa runnable 
>> [0x00000000]
>>   java.lang.Thread.State: RUNNABLE
>>
>> "Finalizer" daemon prio=3 tid=0x0010bc00 nid=0x9 in Object.wait() 
>> [0xb707f000]
>>   java.lang.Thread.State: WAITING (on object monitor)
>>        at java.lang.Object.wait(Native Method)
>>        - waiting on <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>>        - locked <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>>        at 
>> java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
>>
>> "Reference Handler" daemon prio=3 tid=0x00107000 nid=0x8 in 
>> Object.wait() [0xb717f000]
>>   java.lang.Thread.State: WAITING (on object monitor)
>>        at java.lang.Object.wait(Native Method)
>>        - waiting on <0xe6401050> (a java.lang.ref.Reference$Lock)
>>        at java.lang.Object.wait(Object.java:485)
>>        at 
>> java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>>        - locked <0xe6401050> (a java.lang.ref.Reference$Lock)
>>
>> "main" prio=3 tid=0x00031400 nid=0x2 in Object.wait() [0xfe37f000]
>>   java.lang.Thread.State: WAITING (on object monitor)
>>        at java.lang.Object.wait(Native Method)
>>        - waiting on <0xe674ca40> (a java.lang.UNIXProcess)
>>        at java.lang.Object.wait(Object.java:485)
>>        at java.lang.UNIXProcess.waitFor(UNIXProcess.java:115)
>>        - locked <0xe674ca40> (a java.lang.UNIXProcess)
>>        at 
>> com.sun.jini.qa.harness.MasterHarness.runTestOtherVM(MasterHarness.java:873) 
>>
>>        at 
>> com.sun.jini.qa.harness.MasterHarness.access$200(MasterHarness.java:119)
>>        at 
>> com.sun.jini.qa.harness.MasterHarness$TestRunner.run(MasterHarness.java:603) 
>>
>>        at 
>> com.sun.jini.qa.harness.MasterHarness.runTests(MasterHarness.java:430)
>>        at com.sun.jini.qa.harness.QARunner.main(QARunner.java:67)
>>
>> "VM Thread" prio=3 tid=0x00103000 nid=0x7 runnable
>>
>> "GC task thread#0 (ParallelGC)" prio=3 tid=0x00039000 nid=0x3 runnable
>>
>> "GC task thread#1 (ParallelGC)" prio=3 tid=0x0003a400 nid=0x4 runnable
>>
>> "GC task thread#2 (ParallelGC)" prio=3 tid=0x0003b800 nid=0x5 runnable
>>
>> "GC task thread#3 (ParallelGC)" prio=3 tid=0x0003cc00 nid=0x6 runnable
>>
>> "VM Periodic Task Thread" prio=3 tid=0x0012cc00 nid=0xe waiting on 
>> condition
>>
>> JNI global references: 1252
>>
>>
>> Dan Creswell wrote:
>>> ...
>>>
>>> On 27 December 2011 01:40, Peter Firmstone <ji...@zeus.net.au> wrote:
>>>  
>>>> The following is specific to:
>>>>
>>>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>>>>
>>>> I've just come across the concurrency issue (experienced randomly when
>>>> attempting to debug any of the failing tests) in the existing River 
>>>> trunk
>>>> code, after exiting the debugger, the test is in a deadlocked 
>>>> state, here's
>>>> the thread dump:
>>>>
>>>>     
>>>
>>> Two threads arriving at the same point doesn't imply deadlock, in fact
>>> it can mean quite the opposite. Deadlock requires two threads taking
>>> resources in opposite orders so T1 takes a and tries to take b, T2
>>> takes b and tries to take a. Thus I wouldn't expect both threads to be
>>> blocking in implies.
>>>
>>> So both threads arrived at AggregatePolicyProvider.implies but note
>>> that method is not synchronized and the stack does not include mention
>>> of getCurrentSubPolicy which does take a lock.
>>>
>>> Thing is, the debugger itself could be the culprit, especially given
>>> what you do below in terms of attempting a print.
>>>
>>> If at all possible, it's going to be better to leave the debugger out
>>> and wait for the test to deadlock, after which using jstack will give
>>> a full dump and include a note of locks taken as well (something it
>>> looks like the debugger above, doesn't do).
>>>
>>>  
>>>> In this case I've tried to print the domain (ProtectionDomain), as 
>>>> you can
>>>> see two threads have arrived at the same breakpoint.
>>>>
>>>> jdb -attach 8000
>>>> Set uncaught java.lang.Throwable
>>>> Set deferred uncaught java.lang.Throwable
>>>> Initializing jdb ...
>>>>     VM Started: No frames on the current call stack
>>>>
>>>> main[1] stop in com.sun.jini.start.AggregatePolicyProvider.implies
>>>> Deferring breakpoint 
>>>> com.sun.jini.start.AggregatePolicyProvider.implies.
>>>> It will be set after the class is loaded.
>>>> main[1] run
>>>>   
>>>>> Set deferred breakpoint 
>>>>> com.sun.jini.start.AggregatePolicyProvider.implies
>>>>>       
>>>> Breakpoint hit: "thread=main",
>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>
>>>> main[1] print domain
>>>>
>>>> Breakpoint hit: "thread=main",
>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>
>>>> main[1] where all
>>>> Signal Dispatcher:
>>>> Finalizer:
>>>>  [1] java.lang.Object.wait (native method)
>>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>>> Reference Handler:
>>>>  [1] java.lang.Object.wait (native method)
>>>>  [2] java.lang.Object.wait (Object.java:485)
>>>>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>>> main:
>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>>  [2] java.security.ProtectionDomain.implies 
>>>> (ProtectionDomain.java:224)
>>>>  [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>>  [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>>  [6] java.security.ProtectionDomain.seeAllp 
>>>> (ProtectionDomain.java:295)
>>>>  [7] java.security.ProtectionDomain.toString 
>>>> (ProtectionDomain.java:255)
>>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>>  [9] java.security.ProtectionDomain.implies 
>>>> (ProtectionDomain.java:224)
>>>>  [10] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>>  [11] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>>  [12] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>>> (SecurityManager.java:594)
>>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>> (ClassLoader.java:177)
>>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>>  [16] java.security.SecureClassLoader.<init> 
>>>> (SecureClassLoader.java:93)
>>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>>  [18]
>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>
>>>> (GetContextTest.java:85)
>>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>> no heart without soul:
>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>>  [2] java.security.ProtectionDomain.implies 
>>>> (ProtectionDomain.java:224)
>>>>  [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>>  [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>>  [7] java.io.File.exists (File.java:731)
>>>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>> (HeartOfTheMachine.java:56)
>>>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>> (HeartOfTheMachine.java:62)
>>>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>> (HeartOfTheMachine.java:29)
>>>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>> (HeartOfTheMachine.java:45)
>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>> Thread-2:
>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-3:
>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-4:
>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> RequestHandler:
>>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>>> (ObjectInputStream.java:2,265)
>>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>> (ObjectInputStream.java:2,278)
>>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>> (ObjectInputStream.java:2,749)
>>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>>> (ObjectInputStream.java:779)
>>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>> (MasterTest.java:323)
>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>> main[1] monitor
>>>> main[1] step
>>>>
>>>>     Breakpoint hit: "thread=no heart without soul",
>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>
>>>> no heart without soul[1] where all
>>>> Signal Dispatcher:
>>>> Finalizer:
>>>>  [1] java.lang.Object.wait (native method)
>>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>>> Reference Handler:
>>>>  [1] java.lang.Object.wait (native method)
>>>>  [2] java.lang.Object.wait (Object.java:485)
>>>>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>>> main:
>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>>  [2] java.security.ProtectionDomain.implies 
>>>> (ProtectionDomain.java:224)
>>>>  [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>>  [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>>  [6] java.security.ProtectionDomain.seeAllp 
>>>> (ProtectionDomain.java:295)
>>>>  [7] java.security.ProtectionDomain.toString 
>>>> (ProtectionDomain.java:255)
>>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>>  [9] java.security.ProtectionDomain.implies 
>>>> (ProtectionDomain.java:224)
>>>>  [10] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>>  [11] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>>  [12] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>>> (SecurityManager.java:594)
>>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>> (ClassLoader.java:177)
>>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>>  [16] java.security.SecureClassLoader.<init> 
>>>> (SecureClassLoader.java:93)
>>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>>  [18]
>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>
>>>> (GetContextTest.java:85)
>>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>> no heart without soul:
>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>>  [2] java.security.ProtectionDomain.implies 
>>>> (ProtectionDomain.java:224)
>>>>  [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>>  [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>>  [7] java.io.File.exists (File.java:731)
>>>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>> (HeartOfTheMachine.java:56)
>>>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>> (HeartOfTheMachine.java:62)
>>>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>> (HeartOfTheMachine.java:29)
>>>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>> (HeartOfTheMachine.java:45)
>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>> Thread-2:
>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-3:
>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-4:
>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> RequestHandler:
>>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>>> (ObjectInputStream.java:2,265)
>>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>> (ObjectInputStream.java:2,278)
>>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>> (ObjectInputStream.java:2,749)
>>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>>> (ObjectInputStream.java:779)
>>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>> (MasterTest.java:323)
>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>> no heart without soul[1] step
>>>>
>>>>     Breakpoint hit: "thread=main",
>>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>>
>>>> main[1] where all
>>>> Signal Dispatcher:
>>>> Finalizer:
>>>>  [1] java.lang.Object.wait (native method)
>>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>>> Reference Handler:
>>>>  [1] java.lang.Object.wait (native method)
>>>>  [2] java.lang.Object.wait (Object.java:485)
>>>>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>>> main:
>>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>>  [2] java.security.ProtectionDomain.implies 
>>>> (ProtectionDomain.java:224)
>>>>  [3] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>>  [4] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>>  [5] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>>  [6] java.security.ProtectionDomain.seeAllp 
>>>> (ProtectionDomain.java:295)
>>>>  [7] java.security.ProtectionDomain.toString 
>>>> (ProtectionDomain.java:255)
>>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>>> (AggregatePolicyProvider.java:201)
>>>>  [9] java.security.ProtectionDomain.implies 
>>>> (ProtectionDomain.java:224)
>>>>  [10] java.security.AccessControlContext.checkPermission
>>>> (AccessControlContext.java:352)
>>>>  [11] java.security.AccessController.checkPermission
>>>> (AccessController.java:546)
>>>>  [12] java.lang.SecurityManager.checkPermission 
>>>> (SecurityManager.java:532)
>>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>>> (SecurityManager.java:594)
>>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>>> (ClassLoader.java:177)
>>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>>  [16] java.security.SecureClassLoader.<init> 
>>>> (SecureClassLoader.java:93)
>>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>>  [18]
>>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
>>>>
>>>> (GetContextTest.java:85)
>>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>>> no heart without soul:
>>>>  [1] java.lang.SecurityManager.checkRead (SecurityManager.java:873)
>>>>  [2] java.io.File.exists (File.java:731)
>>>>  [3] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>>> (HeartOfTheMachine.java:56)
>>>>  [4] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>>> (HeartOfTheMachine.java:62)
>>>>  [5] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>>> (HeartOfTheMachine.java:29)
>>>>  [6] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>>> (HeartOfTheMachine.java:45)
>>>>  [7] java.lang.Thread.run (Thread.java:662)
>>>> Thread-2:
>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-3:
>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> Thread-4:
>>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>>> RequestHandler:
>>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>>> (ObjectInputStream.java:2,265)
>>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>>> (ObjectInputStream.java:2,278)
>>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>>> (ObjectInputStream.java:2,749)
>>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>>> (ObjectInputStream.java:779)
>>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>>> (MasterTest.java:323)
>>>>  [12] java.lang.Thread.run (Thread.java:662)
>>>> main[1] dump this
>>>> this = {
>>>>   mainPolicyClassProperty:
>>>> "com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
>>>>   defaultMainPolicyClass: 
>>>> "net.jini.security.policy.DynamicPolicyProvider"
>>>>   trustGetCCL: instance of java.util.WeakHashMap(id=962)
>>>>   myDomain: instance of java.security.ProtectionDomain(id=963)
>>>>   subPolicies: instance of 
>>>> com.sun.jini.collection.WeakIdentityMap(id=964)
>>>>   subPolicyCache: instance of
>>>> com.sun.jini.collection.WeakIdentityMap(id=965)
>>>>   mainPolicy: instance of
>>>> net.jini.security.policy.DynamicPolicyProvider(id=966)
>>>>   $assertionsDisabled: true
>>>>   java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of
>>>> java.security.Policy$UnsupportedEmptyCollection(id=967)
>>>>   java.security.Policy.policy: instance of
>>>> com.sun.jini.start.AggregatePolicyProvider(id=959)
>>>>   java.security.Policy.debug: null
>>>>   java.security.Policy.pdMapping: instance of 
>>>> java.util.WeakHashMap(id=968)
>>>> }
>>>> main[1] exit
>>>>
>>>>     
>>>
>>>   
>>
>>
>
>


Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
This is one of the contexts from the passing test during the check for 
RuntimePermission B, unfortunately the codesource locations are missing 
the path property com.sun.jini.qa.home.

Somehow this context passed RuntimePermission A, but you can't see that 
in the ProtectionDomain toString(), although I'll have to do that with 
security debug enabled to see if there are any rejected permissions.

main[1] print permission
 permission = "(java.lang.RuntimePermission B)"
main[1] step up
 >
Step completed: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=16

main[1] step up
 >
Step completed: "thread=main", java.security.ProtectionDomain.implies(), 
line=224 bci=24

main[1] step up
 >
Step completed: "thread=main", 
java.security.AccessControlContext.checkPermission(), line=352 bci=325

main[1] dump this
 this = {
    context: instance of java.security.ProtectionDomain[5] (id=1030)
    isPrivileged: false
    privilegedContext: instance of 
java.security.AccessControlContext(id=1032)
    combiner: null
    debugInit: true
    debug: null
}
main[1] print this.context[0]
 this.context[0] = "ProtectionDomain  
(file:/opt/src/river/trunk/qa/lib/jiniharness.jar <no signer 
certificates>) sun.misc.Launcher$AppClassLoader@93dee9
 <no principals>
 java.security.Permissions@115d06c (
 (java.io.FilePermission /opt/src/river/trunk/qa/lib/jiniharness.jar read)
 (java.lang.RuntimePermission exitVM)
)

"
main[1] print this.context[1]
 this.context[1] = "ProtectionDomain  
(file:/opt/src/river/trunk/lib/jsk-platform.jar <no signer certificates>)
 sun.misc.Launcher$AppClassLoader@93dee9
 <no principals>
 java.security.Permissions@13e15f7 (
 (java.io.FilePermission /opt/src/river/trunk/lib/jsk-platform.jar read)
 (java.lang.RuntimePermission exitVM)
)

"
main[1] print this.context[2]
 this.context[2] = "ProtectionDomain  (file:lib/qa1-start-cb1.jar <no 
signer certificates>)
 java.net.URLClassLoader@1a99347
 <no principals>
 java.security.Permissions@569c60 (
 (java.io.FilePermission lib/qa1-start-cb1.jar read)
)

"
main[1] print this.context[3]
 this.context[3] = "ProtectionDomain  (file:lib/qa1-start-cb3.jar <no 
signer certificates>)
 java.net.URLClassLoader@e45b5e
 <no principals>
 java.security.Permissions@17f11fb (
 (java.io.FilePermission lib/qa1-start-cb3.jar read)
)

"
main[1] print this.context[4]
 this.context[4] = "ProtectionDomain  (file:lib/qa1-start-cb2.jar <no 
signer certificates>)
 java.net.URLClassLoader@94af2f
 <no principals>
 java.security.Permissions@1f44ec7 (
 (java.io.FilePermission lib/qa1-start-cb2.jar read)
)

"
main[1]

Peter Firmstone wrote:
> It seems it isn't too hard to lockup the test on the main trunk, using 
> jdb, then exiting the debugger, leaving the test in a hung state.
>
> I've modified AggregratePolicyProvider in skunk (see recent commit), 
> after the mods I'm unable to get it to lock up after exiting the 
> debugger.
>
> From river trunk:
>
> bash-3.00$ jstack 19499
> 2011-12-27 18:29:02
> Full thread dump Java HotSpot(TM) Server VM (20.0-b11 mixed mode):
>
> "Attach Listener" daemon prio=3 tid=0x001d8c00 nid=0x14 waiting on 
> condition [0x00000000]
>   java.lang.Thread.State: RUNNABLE
>
> "test-err" daemon prio=3 tid=0x001d2400 nid=0x13 runnable [0xb667f000]
>   java.lang.Thread.State: RUNNABLE
>        at java.io.FileInputStream.readBytes(Native Method)
>        at java.io.FileInputStream.read(FileInputStream.java:198)
>        at 
> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:218)
>        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>        at java.lang.Thread.run(Thread.java:662)
>
> "test-out" daemon prio=3 tid=0x001d1c00 nid=0x12 runnable [0xb677f000]
>   java.lang.Thread.State: RUNNABLE
>        at java.io.FileInputStream.readBytes(Native Method)
>        at java.io.FileInputStream.read(FileInputStream.java:220)
>        at 
> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227)
>        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>        at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
>        at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
>        - locked <0xe674ec70> (a java.io.BufferedInputStream)
>        at java.io.FilterInputStream.read(FilterInputStream.java:90)
>        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
>        at java.lang.Thread.run(Thread.java:662)
>
> "process reaper" daemon prio=3 tid=0x00247c00 nid=0x11 runnable 
> [0xb687f000]
>   java.lang.Thread.State: RUNNABLE
>        at java.lang.UNIXProcess.waitForProcessExit(Native Method)
>        at java.lang.UNIXProcess.access$900(UNIXProcess.java:17)
>        at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86)
>
> "Keepalive" daemon prio=3 tid=0x002e6c00 nid=0x10 runnable [0xb697f000]
>   java.lang.Thread.State: RUNNABLE
>        at java.net.PlainSocketImpl.socketAccept(Native Method)
>        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
>        - locked <0xe662d6b8> (a java.net.SocksSocketImpl)
>        at java.net.ServerSocket.implAccept(ServerSocket.java:462)
>        at java.net.ServerSocket.accept(ServerSocket.java:430)
>        at 
> com.sun.jini.qa.harness.MasterHarness$KeepAlivePort.run(MasterHarness.java:254) 
>
>        at java.lang.Thread.run(Thread.java:662)
>
> "no heart without soul" daemon prio=3 tid=0x00180400 nid=0xf waiting 
> on condition [0xb6a7f000]
>   java.lang.Thread.State: TIMED_WAITING (sleeping)
>        at java.lang.Thread.sleep(Native Method)
>        at 
> com.sun.jini.qa.harness.HeartOfTheMachine.ticktack(HeartOfTheMachine.java:63) 
>
>        at 
> com.sun.jini.qa.harness.HeartOfTheMachine.access$000(HeartOfTheMachine.java:29) 
>
>        at 
> com.sun.jini.qa.harness.HeartOfTheMachine$1.run(HeartOfTheMachine.java:45) 
>
>        at java.lang.Thread.run(Thread.java:662)
>
> "Low Memory Detector" daemon prio=3 tid=0x00122c00 nid=0xd runnable 
> [0x00000000]
>   java.lang.Thread.State: RUNNABLE
>
> "C2 CompilerThread1" daemon prio=3 tid=0x00120000 nid=0xc waiting on 
> condition [0x00000000]
>   java.lang.Thread.State: RUNNABLE
>
> "C2 CompilerThread0" daemon prio=3 tid=0x0011d800 nid=0xb waiting on 
> condition [0x00000000]
>   java.lang.Thread.State: RUNNABLE
>
> "Signal Dispatcher" daemon prio=3 tid=0x0011c000 nid=0xa runnable 
> [0x00000000]
>   java.lang.Thread.State: RUNNABLE
>
> "Finalizer" daemon prio=3 tid=0x0010bc00 nid=0x9 in Object.wait() 
> [0xb707f000]
>   java.lang.Thread.State: WAITING (on object monitor)
>        at java.lang.Object.wait(Native Method)
>        - waiting on <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>        - locked <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
>
> "Reference Handler" daemon prio=3 tid=0x00107000 nid=0x8 in 
> Object.wait() [0xb717f000]
>   java.lang.Thread.State: WAITING (on object monitor)
>        at java.lang.Object.wait(Native Method)
>        - waiting on <0xe6401050> (a java.lang.ref.Reference$Lock)
>        at java.lang.Object.wait(Object.java:485)
>        at 
> java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>        - locked <0xe6401050> (a java.lang.ref.Reference$Lock)
>
> "main" prio=3 tid=0x00031400 nid=0x2 in Object.wait() [0xfe37f000]
>   java.lang.Thread.State: WAITING (on object monitor)
>        at java.lang.Object.wait(Native Method)
>        - waiting on <0xe674ca40> (a java.lang.UNIXProcess)
>        at java.lang.Object.wait(Object.java:485)
>        at java.lang.UNIXProcess.waitFor(UNIXProcess.java:115)
>        - locked <0xe674ca40> (a java.lang.UNIXProcess)
>        at 
> com.sun.jini.qa.harness.MasterHarness.runTestOtherVM(MasterHarness.java:873) 
>
>        at 
> com.sun.jini.qa.harness.MasterHarness.access$200(MasterHarness.java:119)
>        at 
> com.sun.jini.qa.harness.MasterHarness$TestRunner.run(MasterHarness.java:603) 
>
>        at 
> com.sun.jini.qa.harness.MasterHarness.runTests(MasterHarness.java:430)
>        at com.sun.jini.qa.harness.QARunner.main(QARunner.java:67)
>
> "VM Thread" prio=3 tid=0x00103000 nid=0x7 runnable
>
> "GC task thread#0 (ParallelGC)" prio=3 tid=0x00039000 nid=0x3 runnable
>
> "GC task thread#1 (ParallelGC)" prio=3 tid=0x0003a400 nid=0x4 runnable
>
> "GC task thread#2 (ParallelGC)" prio=3 tid=0x0003b800 nid=0x5 runnable
>
> "GC task thread#3 (ParallelGC)" prio=3 tid=0x0003cc00 nid=0x6 runnable
>
> "VM Periodic Task Thread" prio=3 tid=0x0012cc00 nid=0xe waiting on 
> condition
>
> JNI global references: 1252
>
>
> Dan Creswell wrote:
>> ...
>>
>> On 27 December 2011 01:40, Peter Firmstone <ji...@zeus.net.au> wrote:
>>  
>>> The following is specific to:
>>>
>>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>>>
>>> I've just come across the concurrency issue (experienced randomly when
>>> attempting to debug any of the failing tests) in the existing River 
>>> trunk
>>> code, after exiting the debugger, the test is in a deadlocked state, 
>>> here's
>>> the thread dump:
>>>
>>>     
>>
>> Two threads arriving at the same point doesn't imply deadlock, in fact
>> it can mean quite the opposite. Deadlock requires two threads taking
>> resources in opposite orders so T1 takes a and tries to take b, T2
>> takes b and tries to take a. Thus I wouldn't expect both threads to be
>> blocking in implies.
>>
>> So both threads arrived at AggregatePolicyProvider.implies but note
>> that method is not synchronized and the stack does not include mention
>> of getCurrentSubPolicy which does take a lock.
>>
>> Thing is, the debugger itself could be the culprit, especially given
>> what you do below in terms of attempting a print.
>>
>> If at all possible, it's going to be better to leave the debugger out
>> and wait for the test to deadlock, after which using jstack will give
>> a full dump and include a note of locks taken as well (something it
>> looks like the debugger above, doesn't do).
>>
>>  
>>> In this case I've tried to print the domain (ProtectionDomain), as 
>>> you can
>>> see two threads have arrived at the same breakpoint.
>>>
>>> jdb -attach 8000
>>> Set uncaught java.lang.Throwable
>>> Set deferred uncaught java.lang.Throwable
>>> Initializing jdb ...
>>>     VM Started: No frames on the current call stack
>>>
>>> main[1] stop in com.sun.jini.start.AggregatePolicyProvider.implies
>>> Deferring breakpoint 
>>> com.sun.jini.start.AggregatePolicyProvider.implies.
>>> It will be set after the class is loaded.
>>> main[1] run
>>>    
>>>> Set deferred breakpoint 
>>>> com.sun.jini.start.AggregatePolicyProvider.implies
>>>>       
>>> Breakpoint hit: "thread=main",
>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>
>>> main[1] print domain
>>>
>>> Breakpoint hit: "thread=main",
>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>
>>> main[1] where all
>>> Signal Dispatcher:
>>> Finalizer:
>>>  [1] java.lang.Object.wait (native method)
>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>> Reference Handler:
>>>  [1] java.lang.Object.wait (native method)
>>>  [2] java.lang.Object.wait (Object.java:485)
>>>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>> main:
>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>  [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>>  [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>>  [5] java.lang.SecurityManager.checkPermission 
>>> (SecurityManager.java:532)
>>>  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>>  [7] java.security.ProtectionDomain.toString 
>>> (ProtectionDomain.java:255)
>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>>  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>  [10] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>>  [11] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>>  [12] java.lang.SecurityManager.checkPermission 
>>> (SecurityManager.java:532)
>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>> (SecurityManager.java:594)
>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>> (ClassLoader.java:177)
>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>  [16] java.security.SecureClassLoader.<init> 
>>> (SecureClassLoader.java:93)
>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>  [18]
>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
>>> (GetContextTest.java:85)
>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>> no heart without soul:
>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>  [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>>  [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>>  [5] java.lang.SecurityManager.checkPermission 
>>> (SecurityManager.java:532)
>>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>  [7] java.io.File.exists (File.java:731)
>>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>> (HeartOfTheMachine.java:56)
>>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>> (HeartOfTheMachine.java:62)
>>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>> (HeartOfTheMachine.java:29)
>>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>> (HeartOfTheMachine.java:45)
>>>  [12] java.lang.Thread.run (Thread.java:662)
>>> Thread-2:
>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-3:
>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-4:
>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> RequestHandler:
>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>> (ObjectInputStream.java:2,265)
>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>> (ObjectInputStream.java:2,278)
>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>> (ObjectInputStream.java:2,749)
>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>> (ObjectInputStream.java:779)
>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>> (MasterTest.java:323)
>>>  [12] java.lang.Thread.run (Thread.java:662)
>>> main[1] monitor
>>> main[1] step
>>>
>>>     Breakpoint hit: "thread=no heart without soul",
>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>
>>> no heart without soul[1] where all
>>> Signal Dispatcher:
>>> Finalizer:
>>>  [1] java.lang.Object.wait (native method)
>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>> Reference Handler:
>>>  [1] java.lang.Object.wait (native method)
>>>  [2] java.lang.Object.wait (Object.java:485)
>>>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>> main:
>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>  [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>>  [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>>  [5] java.lang.SecurityManager.checkPermission 
>>> (SecurityManager.java:532)
>>>  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>>  [7] java.security.ProtectionDomain.toString 
>>> (ProtectionDomain.java:255)
>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>>  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>  [10] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>>  [11] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>>  [12] java.lang.SecurityManager.checkPermission 
>>> (SecurityManager.java:532)
>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>> (SecurityManager.java:594)
>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>> (ClassLoader.java:177)
>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>  [16] java.security.SecureClassLoader.<init> 
>>> (SecureClassLoader.java:93)
>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>  [18]
>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
>>> (GetContextTest.java:85)
>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>> no heart without soul:
>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>  [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>>  [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>>  [5] java.lang.SecurityManager.checkPermission 
>>> (SecurityManager.java:532)
>>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>>  [7] java.io.File.exists (File.java:731)
>>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>> (HeartOfTheMachine.java:56)
>>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>> (HeartOfTheMachine.java:62)
>>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>> (HeartOfTheMachine.java:29)
>>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>> (HeartOfTheMachine.java:45)
>>>  [12] java.lang.Thread.run (Thread.java:662)
>>> Thread-2:
>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-3:
>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-4:
>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> RequestHandler:
>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>> (ObjectInputStream.java:2,265)
>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>> (ObjectInputStream.java:2,278)
>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>> (ObjectInputStream.java:2,749)
>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>> (ObjectInputStream.java:779)
>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>> (MasterTest.java:323)
>>>  [12] java.lang.Thread.run (Thread.java:662)
>>> no heart without soul[1] step
>>>
>>>     Breakpoint hit: "thread=main",
>>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>>
>>> main[1] where all
>>> Signal Dispatcher:
>>> Finalizer:
>>>  [1] java.lang.Object.wait (native method)
>>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>>> Reference Handler:
>>>  [1] java.lang.Object.wait (native method)
>>>  [2] java.lang.Object.wait (Object.java:485)
>>>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>>> main:
>>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>  [3] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>>  [4] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>>  [5] java.lang.SecurityManager.checkPermission 
>>> (SecurityManager.java:532)
>>>  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>>  [7] java.security.ProtectionDomain.toString 
>>> (ProtectionDomain.java:255)
>>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>>> (AggregatePolicyProvider.java:201)
>>>  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>>  [10] java.security.AccessControlContext.checkPermission
>>> (AccessControlContext.java:352)
>>>  [11] java.security.AccessController.checkPermission
>>> (AccessController.java:546)
>>>  [12] java.lang.SecurityManager.checkPermission 
>>> (SecurityManager.java:532)
>>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>>> (SecurityManager.java:594)
>>>  [14] java.lang.ClassLoader.checkCreateClassLoader 
>>> (ClassLoader.java:177)
>>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>>  [16] java.security.SecureClassLoader.<init> 
>>> (SecureClassLoader.java:93)
>>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>>  [18]
>>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
>>> (GetContextTest.java:85)
>>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>>> no heart without soul:
>>>  [1] java.lang.SecurityManager.checkRead (SecurityManager.java:873)
>>>  [2] java.io.File.exists (File.java:731)
>>>  [3] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>>> (HeartOfTheMachine.java:56)
>>>  [4] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>>> (HeartOfTheMachine.java:62)
>>>  [5] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>>> (HeartOfTheMachine.java:29)
>>>  [6] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>>> (HeartOfTheMachine.java:45)
>>>  [7] java.lang.Thread.run (Thread.java:662)
>>> Thread-2:
>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-3:
>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> Thread-4:
>>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>>> RequestHandler:
>>>  [1] java.io.FileInputStream.readBytes (native method)
>>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>>> (ObjectInputStream.java:2,265)
>>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>>> (ObjectInputStream.java:2,278)
>>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>>> (ObjectInputStream.java:2,749)
>>>  [9] java.io.ObjectInputStream.readStreamHeader 
>>> (ObjectInputStream.java:779)
>>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>>> (MasterTest.java:323)
>>>  [12] java.lang.Thread.run (Thread.java:662)
>>> main[1] dump this
>>> this = {
>>>   mainPolicyClassProperty:
>>> "com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
>>>   defaultMainPolicyClass: 
>>> "net.jini.security.policy.DynamicPolicyProvider"
>>>   trustGetCCL: instance of java.util.WeakHashMap(id=962)
>>>   myDomain: instance of java.security.ProtectionDomain(id=963)
>>>   subPolicies: instance of 
>>> com.sun.jini.collection.WeakIdentityMap(id=964)
>>>   subPolicyCache: instance of
>>> com.sun.jini.collection.WeakIdentityMap(id=965)
>>>   mainPolicy: instance of
>>> net.jini.security.policy.DynamicPolicyProvider(id=966)
>>>   $assertionsDisabled: true
>>>   java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of
>>> java.security.Policy$UnsupportedEmptyCollection(id=967)
>>>   java.security.Policy.policy: instance of
>>> com.sun.jini.start.AggregatePolicyProvider(id=959)
>>>   java.security.Policy.debug: null
>>>   java.security.Policy.pdMapping: instance of 
>>> java.util.WeakHashMap(id=968)
>>> }
>>> main[1] exit
>>>
>>>     
>>
>>   
>
>


Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
It seems it isn't too hard to lockup the test on the main trunk, using 
jdb, then exiting the debugger, leaving the test in a hung state.

I've modified AggregratePolicyProvider in skunk (see recent commit), 
after the mods I'm unable to get it to lock up after exiting the debugger.

 From river trunk:

bash-3.00$ jstack 19499
2011-12-27 18:29:02
Full thread dump Java HotSpot(TM) Server VM (20.0-b11 mixed mode):

"Attach Listener" daemon prio=3 tid=0x001d8c00 nid=0x14 waiting on 
condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"test-err" daemon prio=3 tid=0x001d2400 nid=0x13 runnable [0xb667f000]
   java.lang.Thread.State: RUNNABLE
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(FileInputStream.java:198)
        at 
java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:218)
        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
        at java.lang.Thread.run(Thread.java:662)

"test-out" daemon prio=3 tid=0x001d1c00 nid=0x12 runnable [0xb677f000]
   java.lang.Thread.State: RUNNABLE
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(FileInputStream.java:220)
        at 
java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
        - locked <0xe674ec70> (a java.io.BufferedInputStream)
        at java.io.FilterInputStream.read(FilterInputStream.java:90)
        at com.sun.jini.qa.harness.Pipe.run(Pipe.java:119)
        at java.lang.Thread.run(Thread.java:662)

"process reaper" daemon prio=3 tid=0x00247c00 nid=0x11 runnable [0xb687f000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.UNIXProcess.waitForProcessExit(Native Method)
        at java.lang.UNIXProcess.access$900(UNIXProcess.java:17)
        at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86)

"Keepalive" daemon prio=3 tid=0x002e6c00 nid=0x10 runnable [0xb697f000]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
        - locked <0xe662d6b8> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:462)
        at java.net.ServerSocket.accept(ServerSocket.java:430)
        at 
com.sun.jini.qa.harness.MasterHarness$KeepAlivePort.run(MasterHarness.java:254)
        at java.lang.Thread.run(Thread.java:662)

"no heart without soul" daemon prio=3 tid=0x00180400 nid=0xf waiting on 
condition [0xb6a7f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at 
com.sun.jini.qa.harness.HeartOfTheMachine.ticktack(HeartOfTheMachine.java:63)
        at 
com.sun.jini.qa.harness.HeartOfTheMachine.access$000(HeartOfTheMachine.java:29)
        at 
com.sun.jini.qa.harness.HeartOfTheMachine$1.run(HeartOfTheMachine.java:45)
        at java.lang.Thread.run(Thread.java:662)

"Low Memory Detector" daemon prio=3 tid=0x00122c00 nid=0xd runnable 
[0x00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=3 tid=0x00120000 nid=0xc waiting on 
condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=3 tid=0x0011d800 nid=0xb waiting on 
condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=3 tid=0x0011c000 nid=0xa runnable 
[0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=3 tid=0x0010bc00 nid=0x9 in Object.wait() 
[0xb707f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
        - locked <0xe6401150> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=3 tid=0x00107000 nid=0x8 in 
Object.wait() [0xb717f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xe6401050> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0xe6401050> (a java.lang.ref.Reference$Lock)

"main" prio=3 tid=0x00031400 nid=0x2 in Object.wait() [0xfe37f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xe674ca40> (a java.lang.UNIXProcess)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.UNIXProcess.waitFor(UNIXProcess.java:115)
        - locked <0xe674ca40> (a java.lang.UNIXProcess)
        at 
com.sun.jini.qa.harness.MasterHarness.runTestOtherVM(MasterHarness.java:873)
        at 
com.sun.jini.qa.harness.MasterHarness.access$200(MasterHarness.java:119)
        at 
com.sun.jini.qa.harness.MasterHarness$TestRunner.run(MasterHarness.java:603)
        at 
com.sun.jini.qa.harness.MasterHarness.runTests(MasterHarness.java:430)
        at com.sun.jini.qa.harness.QARunner.main(QARunner.java:67)

"VM Thread" prio=3 tid=0x00103000 nid=0x7 runnable

"GC task thread#0 (ParallelGC)" prio=3 tid=0x00039000 nid=0x3 runnable

"GC task thread#1 (ParallelGC)" prio=3 tid=0x0003a400 nid=0x4 runnable

"GC task thread#2 (ParallelGC)" prio=3 tid=0x0003b800 nid=0x5 runnable

"GC task thread#3 (ParallelGC)" prio=3 tid=0x0003cc00 nid=0x6 runnable

"VM Periodic Task Thread" prio=3 tid=0x0012cc00 nid=0xe waiting on condition

JNI global references: 1252


Dan Creswell wrote:
> ...
>
> On 27 December 2011 01:40, Peter Firmstone <ji...@zeus.net.au> wrote:
>   
>> The following is specific to:
>>
>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>>
>> I've just come across the concurrency issue (experienced randomly when
>> attempting to debug any of the failing tests) in the existing River trunk
>> code, after exiting the debugger, the test is in a deadlocked state, here's
>> the thread dump:
>>
>>     
>
> Two threads arriving at the same point doesn't imply deadlock, in fact
> it can mean quite the opposite. Deadlock requires two threads taking
> resources in opposite orders so T1 takes a and tries to take b, T2
> takes b and tries to take a. Thus I wouldn't expect both threads to be
> blocking in implies.
>
> So both threads arrived at AggregatePolicyProvider.implies but note
> that method is not synchronized and the stack does not include mention
> of getCurrentSubPolicy which does take a lock.
>
> Thing is, the debugger itself could be the culprit, especially given
> what you do below in terms of attempting a print.
>
> If at all possible, it's going to be better to leave the debugger out
> and wait for the test to deadlock, after which using jstack will give
> a full dump and include a note of locks taken as well (something it
> looks like the debugger above, doesn't do).
>
>   
>> In this case I've tried to print the domain (ProtectionDomain), as you can
>> see two threads have arrived at the same breakpoint.
>>
>> jdb -attach 8000
>> Set uncaught java.lang.Throwable
>> Set deferred uncaught java.lang.Throwable
>> Initializing jdb ...
>>     
>> VM Started: No frames on the current call stack
>>
>> main[1] stop in com.sun.jini.start.AggregatePolicyProvider.implies
>> Deferring breakpoint com.sun.jini.start.AggregatePolicyProvider.implies.
>> It will be set after the class is loaded.
>> main[1] run
>>     
>>> Set deferred breakpoint com.sun.jini.start.AggregatePolicyProvider.implies
>>>       
>> Breakpoint hit: "thread=main",
>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>
>> main[1] print domain
>>
>> Breakpoint hit: "thread=main",
>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>
>> main[1] where all
>> Signal Dispatcher:
>> Finalizer:
>>  [1] java.lang.Object.wait (native method)
>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>> Reference Handler:
>>  [1] java.lang.Object.wait (native method)
>>  [2] java.lang.Object.wait (Object.java:485)
>>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>> main:
>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>> (AggregatePolicyProvider.java:201)
>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>  [3] java.security.AccessControlContext.checkPermission
>> (AccessControlContext.java:352)
>>  [4] java.security.AccessController.checkPermission
>> (AccessController.java:546)
>>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>  [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>> (AggregatePolicyProvider.java:201)
>>  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>  [10] java.security.AccessControlContext.checkPermission
>> (AccessControlContext.java:352)
>>  [11] java.security.AccessController.checkPermission
>> (AccessController.java:546)
>>  [12] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>> (SecurityManager.java:594)
>>  [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>  [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>  [18]
>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
>> (GetContextTest.java:85)
>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>> no heart without soul:
>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>> (AggregatePolicyProvider.java:201)
>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>  [3] java.security.AccessControlContext.checkPermission
>> (AccessControlContext.java:352)
>>  [4] java.security.AccessController.checkPermission
>> (AccessController.java:546)
>>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>  [7] java.io.File.exists (File.java:731)
>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>> (HeartOfTheMachine.java:56)
>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>> (HeartOfTheMachine.java:62)
>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>> (HeartOfTheMachine.java:29)
>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>> (HeartOfTheMachine.java:45)
>>  [12] java.lang.Thread.run (Thread.java:662)
>> Thread-2:
>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>> Thread-3:
>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>> Thread-4:
>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>> RequestHandler:
>>  [1] java.io.FileInputStream.readBytes (native method)
>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>> (ObjectInputStream.java:2,265)
>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>> (ObjectInputStream.java:2,278)
>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>> (ObjectInputStream.java:2,749)
>>  [9] java.io.ObjectInputStream.readStreamHeader (ObjectInputStream.java:779)
>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>> (MasterTest.java:323)
>>  [12] java.lang.Thread.run (Thread.java:662)
>> main[1] monitor
>> main[1] step
>>
>>     
>> Breakpoint hit: "thread=no heart without soul",
>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>
>> no heart without soul[1] where all
>> Signal Dispatcher:
>> Finalizer:
>>  [1] java.lang.Object.wait (native method)
>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>> Reference Handler:
>>  [1] java.lang.Object.wait (native method)
>>  [2] java.lang.Object.wait (Object.java:485)
>>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>> main:
>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>> (AggregatePolicyProvider.java:201)
>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>  [3] java.security.AccessControlContext.checkPermission
>> (AccessControlContext.java:352)
>>  [4] java.security.AccessController.checkPermission
>> (AccessController.java:546)
>>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>  [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>> (AggregatePolicyProvider.java:201)
>>  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>  [10] java.security.AccessControlContext.checkPermission
>> (AccessControlContext.java:352)
>>  [11] java.security.AccessController.checkPermission
>> (AccessController.java:546)
>>  [12] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>> (SecurityManager.java:594)
>>  [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>  [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>  [18]
>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
>> (GetContextTest.java:85)
>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>> no heart without soul:
>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>> (AggregatePolicyProvider.java:201)
>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>  [3] java.security.AccessControlContext.checkPermission
>> (AccessControlContext.java:352)
>>  [4] java.security.AccessController.checkPermission
>> (AccessController.java:546)
>>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>>  [7] java.io.File.exists (File.java:731)
>>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>> (HeartOfTheMachine.java:56)
>>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>> (HeartOfTheMachine.java:62)
>>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>> (HeartOfTheMachine.java:29)
>>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>> (HeartOfTheMachine.java:45)
>>  [12] java.lang.Thread.run (Thread.java:662)
>> Thread-2:
>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>> Thread-3:
>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>> Thread-4:
>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>> RequestHandler:
>>  [1] java.io.FileInputStream.readBytes (native method)
>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>> (ObjectInputStream.java:2,265)
>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>> (ObjectInputStream.java:2,278)
>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>> (ObjectInputStream.java:2,749)
>>  [9] java.io.ObjectInputStream.readStreamHeader (ObjectInputStream.java:779)
>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>> (MasterTest.java:323)
>>  [12] java.lang.Thread.run (Thread.java:662)
>> no heart without soul[1] step
>>
>>     
>> Breakpoint hit: "thread=main",
>> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>>
>> main[1] where all
>> Signal Dispatcher:
>> Finalizer:
>>  [1] java.lang.Object.wait (native method)
>>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
>> Reference Handler:
>>  [1] java.lang.Object.wait (native method)
>>  [2] java.lang.Object.wait (Object.java:485)
>>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
>> main:
>>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
>> (AggregatePolicyProvider.java:201)
>>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>  [3] java.security.AccessControlContext.checkPermission
>> (AccessControlContext.java:352)
>>  [4] java.security.AccessController.checkPermission
>> (AccessController.java:546)
>>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>>  [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
>>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
>> (AggregatePolicyProvider.java:201)
>>  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>>  [10] java.security.AccessControlContext.checkPermission
>> (AccessControlContext.java:352)
>>  [11] java.security.AccessController.checkPermission
>> (AccessController.java:546)
>>  [12] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>>  [13] java.lang.SecurityManager.checkCreateClassLoader
>> (SecurityManager.java:594)
>>  [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
>>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>>  [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
>>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>>  [18]
>> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
>> (GetContextTest.java:85)
>>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
>> no heart without soul:
>>  [1] java.lang.SecurityManager.checkRead (SecurityManager.java:873)
>>  [2] java.io.File.exists (File.java:731)
>>  [3] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
>> (HeartOfTheMachine.java:56)
>>  [4] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
>> (HeartOfTheMachine.java:62)
>>  [5] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
>> (HeartOfTheMachine.java:29)
>>  [6] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
>> (HeartOfTheMachine.java:45)
>>  [7] java.lang.Thread.run (Thread.java:662)
>> Thread-2:
>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>> Thread-3:
>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>> Thread-4:
>>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
>> RequestHandler:
>>  [1] java.io.FileInputStream.readBytes (native method)
>>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>>  [6] java.io.ObjectInputStream$PeekInputStream.read
>> (ObjectInputStream.java:2,265)
>>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
>> (ObjectInputStream.java:2,278)
>>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
>> (ObjectInputStream.java:2,749)
>>  [9] java.io.ObjectInputStream.readStreamHeader (ObjectInputStream.java:779)
>>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
>> (MasterTest.java:323)
>>  [12] java.lang.Thread.run (Thread.java:662)
>> main[1] dump this
>> this = {
>>   mainPolicyClassProperty:
>> "com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
>>   defaultMainPolicyClass: "net.jini.security.policy.DynamicPolicyProvider"
>>   trustGetCCL: instance of java.util.WeakHashMap(id=962)
>>   myDomain: instance of java.security.ProtectionDomain(id=963)
>>   subPolicies: instance of com.sun.jini.collection.WeakIdentityMap(id=964)
>>   subPolicyCache: instance of
>> com.sun.jini.collection.WeakIdentityMap(id=965)
>>   mainPolicy: instance of
>> net.jini.security.policy.DynamicPolicyProvider(id=966)
>>   $assertionsDisabled: true
>>   java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of
>> java.security.Policy$UnsupportedEmptyCollection(id=967)
>>   java.security.Policy.policy: instance of
>> com.sun.jini.start.AggregatePolicyProvider(id=959)
>>   java.security.Policy.debug: null
>>   java.security.Policy.pdMapping: instance of java.util.WeakHashMap(id=968)
>> }
>> main[1] exit
>>
>>     
>
>   


Re: Help needed with concurrency bug

Posted by Dan Creswell <da...@gmail.com>.
...

On 27 December 2011 01:40, Peter Firmstone <ji...@zeus.net.au> wrote:
> The following is specific to:
>
> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>
> I've just come across the concurrency issue (experienced randomly when
> attempting to debug any of the failing tests) in the existing River trunk
> code, after exiting the debugger, the test is in a deadlocked state, here's
> the thread dump:
>

Two threads arriving at the same point doesn't imply deadlock, in fact
it can mean quite the opposite. Deadlock requires two threads taking
resources in opposite orders so T1 takes a and tries to take b, T2
takes b and tries to take a. Thus I wouldn't expect both threads to be
blocking in implies.

So both threads arrived at AggregatePolicyProvider.implies but note
that method is not synchronized and the stack does not include mention
of getCurrentSubPolicy which does take a lock.

Thing is, the debugger itself could be the culprit, especially given
what you do below in terms of attempting a print.

If at all possible, it's going to be better to leave the debugger out
and wait for the test to deadlock, after which using jstack will give
a full dump and include a note of locks taken as well (something it
looks like the debugger above, doesn't do).

> In this case I've tried to print the domain (ProtectionDomain), as you can
> see two threads have arrived at the same breakpoint.
>
> jdb -attach 8000
> Set uncaught java.lang.Throwable
> Set deferred uncaught java.lang.Throwable
> Initializing jdb ...
>>
> VM Started: No frames on the current call stack
>
> main[1] stop in com.sun.jini.start.AggregatePolicyProvider.implies
> Deferring breakpoint com.sun.jini.start.AggregatePolicyProvider.implies.
> It will be set after the class is loaded.
> main[1] run
>> Set deferred breakpoint com.sun.jini.start.AggregatePolicyProvider.implies
>
>
> Breakpoint hit: "thread=main",
> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>
> main[1] print domain
>
> Breakpoint hit: "thread=main",
> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>
> main[1] where all
> Signal Dispatcher:
> Finalizer:
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
> Reference Handler:
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.Object.wait (Object.java:485)
>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
> main:
>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
> (AggregatePolicyProvider.java:201)
>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>  [3] java.security.AccessControlContext.checkPermission
> (AccessControlContext.java:352)
>  [4] java.security.AccessController.checkPermission
> (AccessController.java:546)
>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>  [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
> (AggregatePolicyProvider.java:201)
>  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>  [10] java.security.AccessControlContext.checkPermission
> (AccessControlContext.java:352)
>  [11] java.security.AccessController.checkPermission
> (AccessController.java:546)
>  [12] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>  [13] java.lang.SecurityManager.checkCreateClassLoader
> (SecurityManager.java:594)
>  [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>  [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>  [18]
> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
> (GetContextTest.java:85)
>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
> no heart without soul:
>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
> (AggregatePolicyProvider.java:201)
>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>  [3] java.security.AccessControlContext.checkPermission
> (AccessControlContext.java:352)
>  [4] java.security.AccessController.checkPermission
> (AccessController.java:546)
>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>  [7] java.io.File.exists (File.java:731)
>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
> (HeartOfTheMachine.java:56)
>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
> (HeartOfTheMachine.java:62)
>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
> (HeartOfTheMachine.java:29)
>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
> (HeartOfTheMachine.java:45)
>  [12] java.lang.Thread.run (Thread.java:662)
> Thread-2:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> Thread-3:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> Thread-4:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> RequestHandler:
>  [1] java.io.FileInputStream.readBytes (native method)
>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>  [6] java.io.ObjectInputStream$PeekInputStream.read
> (ObjectInputStream.java:2,265)
>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
> (ObjectInputStream.java:2,278)
>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
> (ObjectInputStream.java:2,749)
>  [9] java.io.ObjectInputStream.readStreamHeader (ObjectInputStream.java:779)
>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
> (MasterTest.java:323)
>  [12] java.lang.Thread.run (Thread.java:662)
> main[1] monitor
> main[1] step
>
>>
> Breakpoint hit: "thread=no heart without soul",
> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>
> no heart without soul[1] where all
> Signal Dispatcher:
> Finalizer:
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
> Reference Handler:
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.Object.wait (Object.java:485)
>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
> main:
>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
> (AggregatePolicyProvider.java:201)
>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>  [3] java.security.AccessControlContext.checkPermission
> (AccessControlContext.java:352)
>  [4] java.security.AccessController.checkPermission
> (AccessController.java:546)
>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>  [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
> (AggregatePolicyProvider.java:201)
>  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>  [10] java.security.AccessControlContext.checkPermission
> (AccessControlContext.java:352)
>  [11] java.security.AccessController.checkPermission
> (AccessController.java:546)
>  [12] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>  [13] java.lang.SecurityManager.checkCreateClassLoader
> (SecurityManager.java:594)
>  [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>  [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>  [18]
> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
> (GetContextTest.java:85)
>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
> no heart without soul:
>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
> (AggregatePolicyProvider.java:201)
>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>  [3] java.security.AccessControlContext.checkPermission
> (AccessControlContext.java:352)
>  [4] java.security.AccessController.checkPermission
> (AccessController.java:546)
>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
>  [7] java.io.File.exists (File.java:731)
>  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
> (HeartOfTheMachine.java:56)
>  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
> (HeartOfTheMachine.java:62)
>  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
> (HeartOfTheMachine.java:29)
>  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
> (HeartOfTheMachine.java:45)
>  [12] java.lang.Thread.run (Thread.java:662)
> Thread-2:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> Thread-3:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> Thread-4:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> RequestHandler:
>  [1] java.io.FileInputStream.readBytes (native method)
>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>  [6] java.io.ObjectInputStream$PeekInputStream.read
> (ObjectInputStream.java:2,265)
>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
> (ObjectInputStream.java:2,278)
>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
> (ObjectInputStream.java:2,749)
>  [9] java.io.ObjectInputStream.readStreamHeader (ObjectInputStream.java:779)
>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
> (MasterTest.java:323)
>  [12] java.lang.Thread.run (Thread.java:662)
> no heart without soul[1] step
>
>>
> Breakpoint hit: "thread=main",
> com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0
>
> main[1] where all
> Signal Dispatcher:
> Finalizer:
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
>  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
>  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
> Reference Handler:
>  [1] java.lang.Object.wait (native method)
>  [2] java.lang.Object.wait (Object.java:485)
>  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
> main:
>  [1] com.sun.jini.start.AggregatePolicyProvider.implies
> (AggregatePolicyProvider.java:201)
>  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>  [3] java.security.AccessControlContext.checkPermission
> (AccessControlContext.java:352)
>  [4] java.security.AccessController.checkPermission
> (AccessController.java:546)
>  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
>  [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
>  [8] com.sun.jini.start.AggregatePolicyProvider.implies
> (AggregatePolicyProvider.java:201)
>  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
>  [10] java.security.AccessControlContext.checkPermission
> (AccessControlContext.java:352)
>  [11] java.security.AccessController.checkPermission
> (AccessController.java:546)
>  [12] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
>  [13] java.lang.SecurityManager.checkCreateClassLoader
> (SecurityManager.java:594)
>  [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
>  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
>  [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
>  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
>  [18]
> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run
> (GetContextTest.java:85)
>  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
>  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
> no heart without soul:
>  [1] java.lang.SecurityManager.checkRead (SecurityManager.java:873)
>  [2] java.io.File.exists (File.java:731)
>  [3] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive
> (HeartOfTheMachine.java:56)
>  [4] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack
> (HeartOfTheMachine.java:62)
>  [5] com.sun.jini.qa.harness.HeartOfTheMachine.access$000
> (HeartOfTheMachine.java:29)
>  [6] com.sun.jini.qa.harness.HeartOfTheMachine$1.run
> (HeartOfTheMachine.java:45)
>  [7] java.lang.Thread.run (Thread.java:662)
> Thread-2:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> Thread-3:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> Thread-4:
>  [1] java.net.PlainSocketImpl.socketAccept (native method)
>  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
>  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
>  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
>  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
> RequestHandler:
>  [1] java.io.FileInputStream.readBytes (native method)
>  [2] java.io.FileInputStream.read (FileInputStream.java:220)
>  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
>  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
>  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
>  [6] java.io.ObjectInputStream$PeekInputStream.read
> (ObjectInputStream.java:2,265)
>  [7] java.io.ObjectInputStream$PeekInputStream.readFully
> (ObjectInputStream.java:2,278)
>  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort
> (ObjectInputStream.java:2,749)
>  [9] java.io.ObjectInputStream.readStreamHeader (ObjectInputStream.java:779)
>  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
>  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run
> (MasterTest.java:323)
>  [12] java.lang.Thread.run (Thread.java:662)
> main[1] dump this
> this = {
>   mainPolicyClassProperty:
> "com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
>   defaultMainPolicyClass: "net.jini.security.policy.DynamicPolicyProvider"
>   trustGetCCL: instance of java.util.WeakHashMap(id=962)
>   myDomain: instance of java.security.ProtectionDomain(id=963)
>   subPolicies: instance of com.sun.jini.collection.WeakIdentityMap(id=964)
>   subPolicyCache: instance of
> com.sun.jini.collection.WeakIdentityMap(id=965)
>   mainPolicy: instance of
> net.jini.security.policy.DynamicPolicyProvider(id=966)
>   $assertionsDisabled: true
>   java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of
> java.security.Policy$UnsupportedEmptyCollection(id=967)
>   java.security.Policy.policy: instance of
> com.sun.jini.start.AggregatePolicyProvider(id=959)
>   java.security.Policy.debug: null
>   java.security.Policy.pdMapping: instance of java.util.WeakHashMap(id=968)
> }
> main[1] exit
>

Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
The following is specific to:

com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td

I've just come across the concurrency issue (experienced randomly when 
attempting to debug any of the failing tests) in the existing River 
trunk code, after exiting the debugger, the test is in a deadlocked 
state, here's the thread dump:

In this case I've tried to print the domain (ProtectionDomain), as you 
can see two threads have arrived at the same breakpoint.

jdb -attach 8000
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
Initializing jdb ...
 >
VM Started: No frames on the current call stack

main[1] stop in com.sun.jini.start.AggregatePolicyProvider.implies
Deferring breakpoint com.sun.jini.start.AggregatePolicyProvider.implies.
It will be set after the class is loaded.
main[1] run
 > Set deferred breakpoint 
com.sun.jini.start.AggregatePolicyProvider.implies

Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

main[1] print domain

Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

main[1] where all
Signal Dispatcher:
Finalizer:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
Reference Handler:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.Object.wait (Object.java:485)
  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
main:
  [1] com.sun.jini.start.AggregatePolicyProvider.implies 
(AggregatePolicyProvider.java:201)
  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
  [3] java.security.AccessControlContext.checkPermission 
(AccessControlContext.java:352)
  [4] java.security.AccessController.checkPermission 
(AccessController.java:546)
  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
  [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
  [8] com.sun.jini.start.AggregatePolicyProvider.implies 
(AggregatePolicyProvider.java:201)
  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
  [10] java.security.AccessControlContext.checkPermission 
(AccessControlContext.java:352)
  [11] java.security.AccessController.checkPermission 
(AccessController.java:546)
  [12] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
  [13] java.lang.SecurityManager.checkCreateClassLoader 
(SecurityManager.java:594)
  [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
  [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
  [18] 
com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
(GetContextTest.java:85)
  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
no heart without soul:
  [1] com.sun.jini.start.AggregatePolicyProvider.implies 
(AggregatePolicyProvider.java:201)
  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
  [3] java.security.AccessControlContext.checkPermission 
(AccessControlContext.java:352)
  [4] java.security.AccessController.checkPermission 
(AccessController.java:546)
  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
  [7] java.io.File.exists (File.java:731)
  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive 
(HeartOfTheMachine.java:56)
  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack 
(HeartOfTheMachine.java:62)
  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000 
(HeartOfTheMachine.java:29)
  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run 
(HeartOfTheMachine.java:45)
  [12] java.lang.Thread.run (Thread.java:662)
Thread-2:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
Thread-3:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
Thread-4:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
RequestHandler:
  [1] java.io.FileInputStream.readBytes (native method)
  [2] java.io.FileInputStream.read (FileInputStream.java:220)
  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
  [6] java.io.ObjectInputStream$PeekInputStream.read 
(ObjectInputStream.java:2,265)
  [7] java.io.ObjectInputStream$PeekInputStream.readFully 
(ObjectInputStream.java:2,278)
  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort 
(ObjectInputStream.java:2,749)
  [9] java.io.ObjectInputStream.readStreamHeader 
(ObjectInputStream.java:779)
  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run 
(MasterTest.java:323)
  [12] java.lang.Thread.run (Thread.java:662)
main[1] monitor
main[1] step
 >
Breakpoint hit: "thread=no heart without soul", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

no heart without soul[1] where all
Signal Dispatcher:
Finalizer:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
Reference Handler:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.Object.wait (Object.java:485)
  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
main:
  [1] com.sun.jini.start.AggregatePolicyProvider.implies 
(AggregatePolicyProvider.java:201)
  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
  [3] java.security.AccessControlContext.checkPermission 
(AccessControlContext.java:352)
  [4] java.security.AccessController.checkPermission 
(AccessController.java:546)
  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
  [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
  [8] com.sun.jini.start.AggregatePolicyProvider.implies 
(AggregatePolicyProvider.java:201)
  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
  [10] java.security.AccessControlContext.checkPermission 
(AccessControlContext.java:352)
  [11] java.security.AccessController.checkPermission 
(AccessController.java:546)
  [12] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
  [13] java.lang.SecurityManager.checkCreateClassLoader 
(SecurityManager.java:594)
  [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
  [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
  [18] 
com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
(GetContextTest.java:85)
  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
no heart without soul:
  [1] com.sun.jini.start.AggregatePolicyProvider.implies 
(AggregatePolicyProvider.java:201)
  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
  [3] java.security.AccessControlContext.checkPermission 
(AccessControlContext.java:352)
  [4] java.security.AccessController.checkPermission 
(AccessController.java:546)
  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
  [6] java.lang.SecurityManager.checkRead (SecurityManager.java:871)
  [7] java.io.File.exists (File.java:731)
  [8] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive 
(HeartOfTheMachine.java:56)
  [9] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack 
(HeartOfTheMachine.java:62)
  [10] com.sun.jini.qa.harness.HeartOfTheMachine.access$000 
(HeartOfTheMachine.java:29)
  [11] com.sun.jini.qa.harness.HeartOfTheMachine$1.run 
(HeartOfTheMachine.java:45)
  [12] java.lang.Thread.run (Thread.java:662)
Thread-2:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
Thread-3:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
Thread-4:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
RequestHandler:
  [1] java.io.FileInputStream.readBytes (native method)
  [2] java.io.FileInputStream.read (FileInputStream.java:220)
  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
  [6] java.io.ObjectInputStream$PeekInputStream.read 
(ObjectInputStream.java:2,265)
  [7] java.io.ObjectInputStream$PeekInputStream.readFully 
(ObjectInputStream.java:2,278)
  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort 
(ObjectInputStream.java:2,749)
  [9] java.io.ObjectInputStream.readStreamHeader 
(ObjectInputStream.java:779)
  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run 
(MasterTest.java:323)
  [12] java.lang.Thread.run (Thread.java:662)
no heart without soul[1] step
 >
Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

main[1] where all
Signal Dispatcher:
Finalizer:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:118)
  [3] java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:134)
  [4] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:159)
Reference Handler:
  [1] java.lang.Object.wait (native method)
  [2] java.lang.Object.wait (Object.java:485)
  [3] java.lang.ref.Reference$ReferenceHandler.run (Reference.java:116)
main:
  [1] com.sun.jini.start.AggregatePolicyProvider.implies 
(AggregatePolicyProvider.java:201)
  [2] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
  [3] java.security.AccessControlContext.checkPermission 
(AccessControlContext.java:352)
  [4] java.security.AccessController.checkPermission 
(AccessController.java:546)
  [5] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
  [6] java.security.ProtectionDomain.seeAllp (ProtectionDomain.java:295)
  [7] java.security.ProtectionDomain.toString (ProtectionDomain.java:255)
  [8] com.sun.jini.start.AggregatePolicyProvider.implies 
(AggregatePolicyProvider.java:201)
  [9] java.security.ProtectionDomain.implies (ProtectionDomain.java:224)
  [10] java.security.AccessControlContext.checkPermission 
(AccessControlContext.java:352)
  [11] java.security.AccessController.checkPermission 
(AccessController.java:546)
  [12] java.lang.SecurityManager.checkPermission (SecurityManager.java:532)
  [13] java.lang.SecurityManager.checkCreateClassLoader 
(SecurityManager.java:594)
  [14] java.lang.ClassLoader.checkCreateClassLoader (ClassLoader.java:177)
  [15] java.lang.ClassLoader.<init> (ClassLoader.java:225)
  [16] java.security.SecureClassLoader.<init> (SecureClassLoader.java:93)
  [17] java.net.URLClassLoader.<init> (URLClassLoader.java:115)
  [18] 
com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run 
(GetContextTest.java:85)
  [19] com.sun.jini.qa.harness.MasterTest.doTest (MasterTest.java:252)
  [20] com.sun.jini.qa.harness.MasterTest.main (MasterTest.java:142)
no heart without soul:
  [1] java.lang.SecurityManager.checkRead (SecurityManager.java:873)
  [2] java.io.File.exists (File.java:731)
  [3] com.sun.jini.qa.harness.HeartOfTheMachine.hasReasonToLive 
(HeartOfTheMachine.java:56)
  [4] com.sun.jini.qa.harness.HeartOfTheMachine.ticktack 
(HeartOfTheMachine.java:62)
  [5] com.sun.jini.qa.harness.HeartOfTheMachine.access$000 
(HeartOfTheMachine.java:29)
  [6] com.sun.jini.qa.harness.HeartOfTheMachine$1.run 
(HeartOfTheMachine.java:45)
  [7] java.lang.Thread.run (Thread.java:662)
Thread-2:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
Thread-3:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
Thread-4:
  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (PlainSocketImpl.java:408)
  [3] java.net.ServerSocket.implAccept (ServerSocket.java:462)
  [4] java.net.ServerSocket.accept (ServerSocket.java:430)
  [5] com.sun.jini.tool.ClassServer.run (ClassServer.java:396)
RequestHandler:
  [1] java.io.FileInputStream.readBytes (native method)
  [2] java.io.FileInputStream.read (FileInputStream.java:220)
  [3] java.io.BufferedInputStream.fill (BufferedInputStream.java:218)
  [4] java.io.BufferedInputStream.read1 (BufferedInputStream.java:258)
  [5] java.io.BufferedInputStream.read (BufferedInputStream.java:317)
  [6] java.io.ObjectInputStream$PeekInputStream.read 
(ObjectInputStream.java:2,265)
  [7] java.io.ObjectInputStream$PeekInputStream.readFully 
(ObjectInputStream.java:2,278)
  [8] java.io.ObjectInputStream$BlockDataInputStream.readShort 
(ObjectInputStream.java:2,749)
  [9] java.io.ObjectInputStream.readStreamHeader 
(ObjectInputStream.java:779)
  [10] java.io.ObjectInputStream.<init> (ObjectInputStream.java:279)
  [11] com.sun.jini.qa.harness.MasterTest$RequestHandler.run 
(MasterTest.java:323)
  [12] java.lang.Thread.run (Thread.java:662)
main[1] dump this
 this = {
    mainPolicyClassProperty: 
"com.sun.jini.start.AggregatePolicyProvider.mainPolicyClass"
    defaultMainPolicyClass: "net.jini.security.policy.DynamicPolicyProvider"
    trustGetCCL: instance of java.util.WeakHashMap(id=962)
    myDomain: instance of java.security.ProtectionDomain(id=963)
    subPolicies: instance of com.sun.jini.collection.WeakIdentityMap(id=964)
    subPolicyCache: instance of 
com.sun.jini.collection.WeakIdentityMap(id=965)
    mainPolicy: instance of 
net.jini.security.policy.DynamicPolicyProvider(id=966)
    $assertionsDisabled: true
    java.security.Policy.UNSUPPORTED_EMPTY_COLLECTION: instance of 
java.security.Policy$UnsupportedEmptyCollection(id=967)
    java.security.Policy.policy: instance of 
com.sun.jini.start.AggregatePolicyProvider(id=959)
    java.security.Policy.debug: null
    java.security.Policy.pdMapping: instance of 
java.util.WeakHashMap(id=968)
}
main[1] exit


Re: Help needed with concurrency bug

Posted by Peter <ji...@zeus.net.au>.
----- Original message -----
> On 25 December 2011 21:54, Peter Firmstone <ji...@zeus.net.au> wrote:
> > Dan Creswell wrote:
> > > > >
> > > > > Where "bug" is potentially a swallowed exception.
> > > > >
> > > > > Reggie for the most part holds a writeLock for any significant
> > > > > invocation from the client and events are dispatched via a
> > > > > TaskManager. Seems like an unlikely source for problems. Am I right in
> > > > > assuming the test itself is single-threaded? Sure looks like it is?
> > > > >
> > > > > That would suggest to me a problem in the remote comms layer if
> > > > > anywhere. My biggest worry would be that your permissions work is
> > > > > leading to a security exception or similar and it's just being
> > > > > swallowed.
> > > > >
> > > > > Take that worry and combine it with the fact that the last failing
> > > > > test does throw an exception and doesn't touch remote services or
> > > > > indeed the JERI layer, I'd say this is the test to look at first and
> > > > > perhaps we're not looking at an additional bug.
> > > > >
> > > > >
> > > > >
> > > >
> > > > Nope, it's a concurrency bug, TaskManager would create task threads for
> > > > the
> > > > events, the bug goes away when I activate security debug, there are no
> > > > permission failures.
> > > >
> > > >
> > >
> > >
> > > Sure, it's a concurrency bug I just happen to think all the symptoms
> > > point at the new code being the culprit. Activating all that security
> > > debug reduces interleaving and such reducing the chance of e.g. a race
> > > condition occurring.
>
> I did a quick review of your code last night,

Thanks =)

 didn't see anything
> immediately worrying however I did notice the behaviour of elements()
> has changed. I couldn't immediately think of a scenario where that
> would be the problem but, worth thinking a bit more about.
>

The DynamicPolicyProvider did originally add (mutate after publishing) to the ConcurrentPermissions collections after they had been added to the ConcurrentMap cache, but is now only mutated before publishing, replacing if necessary after, it avoids ConcurrentModificationException, but also reduces the possibility of missing Permissions.  That's the theory anyway.

I did find some problems with MergedPolicyProvider, which is part of the qa suite, this has stabilised the debugger, but hasn't fixed the lost events, I'll commit it soon.

The GetContextTest failure is a separate bug, it goes away with the sun policy provider, I'm working on it at present.

Cheers,

Peter.
> > >
> >
> >
> > Well, it's not livelock, it's not deadlock, although in one test I can
> > induce deadlock (no progress, no cpu load) with the debugger, so it isn't a
> > loop, or CAS, it's some kind of synchronization deadlock.
>
> Mmmm, trouble is the debugger itself (or at least its agent) could be
> the problem - they aren't perfect devices, typically.
>
> >
> > Considering I have trouble printing the ProtectionDomain in the debugger,
> > could this be a stale reference, or is there no relation?
>
> Mightn't be stale, could be corrupted as the result of some
> broken/loose locking somewhere. That might relate to your deadlock
> above (did you get a full thread dump from the JVM?) as it mightn't be
> a deadlock but a corruption that brings everything to a halt.
>
> >
> >
> > > And the fact that there are no lost events unless your code is present
> > > can cut both ways but the simplest explanation would be a bug in your
> > > code not a bug in TaskManager which has virtually nothing to do with
> > > security.
> > >
> >
> > If there's a concurrency issue in my code, it's in DynamicPolicyProvider or
> > one of the classes it uses, not ConcurrentPolicyFile, since this bug still
> > occurs when I replace it with Sun's implementation.
>
> Okay, so that helps us zone in a little...
>
> >
> > Peter.
> >


Re: Help needed with concurrency bug

Posted by Dan Creswell <da...@gmail.com>.
On 25 December 2011 21:54, Peter Firmstone <ji...@zeus.net.au> wrote:
> Dan Creswell wrote:
>>>>
>>>> Where "bug" is potentially a swallowed exception.
>>>>
>>>> Reggie for the most part holds a writeLock for any significant
>>>> invocation from the client and events are dispatched via a
>>>> TaskManager. Seems like an unlikely source for problems. Am I right in
>>>> assuming the test itself is single-threaded? Sure looks like it is?
>>>>
>>>> That would suggest to me a problem in the remote comms layer if
>>>> anywhere. My biggest worry would be that your permissions work is
>>>> leading to a security exception or similar and it's just being
>>>> swallowed.
>>>>
>>>> Take that worry and combine it with the fact that the last failing
>>>> test does throw an exception and doesn't touch remote services or
>>>> indeed the JERI layer, I'd say this is the test to look at first and
>>>> perhaps we're not looking at an additional bug.
>>>>
>>>>
>>>>
>>>
>>> Nope, it's a concurrency bug, TaskManager would create task threads for
>>> the
>>> events, the bug goes away when I activate security debug, there are no
>>> permission failures.
>>>
>>>
>>
>>
>> Sure, it's a concurrency bug I just happen to think all the symptoms
>> point at the new code being the culprit. Activating all that security
>> debug reduces interleaving and such reducing the chance of e.g. a race
>> condition occurring.

I did a quick review of your code last night, didn't see anything
immediately worrying however I did notice the behaviour of elements()
has changed. I couldn't immediately think of a scenario where that
would be the problem but, worth thinking a bit more about.

>>
>
>
> Well, it's not livelock, it's not deadlock, although in one test I can
> induce deadlock (no progress, no cpu load) with the debugger, so it isn't a
> loop, or CAS, it's some kind of synchronization deadlock.

Mmmm, trouble is the debugger itself (or at least its agent) could be
the problem - they aren't perfect devices, typically.

>
> Considering I have trouble printing the ProtectionDomain in the debugger,
> could this be a stale reference, or is there no relation?

Mightn't be stale, could be corrupted as the result of some
broken/loose locking somewhere. That might relate to your deadlock
above (did you get a full thread dump from the JVM?) as it mightn't be
a deadlock but a corruption that brings everything to a halt.

>
>
>> And the fact that there are no lost events unless your code is present
>> can cut both ways but the simplest explanation would be a bug in your
>> code not a bug in TaskManager which has virtually nothing to do with
>> security.
>>
>
> If there's a concurrency issue in my code, it's in DynamicPolicyProvider or
> one of the classes it uses, not ConcurrentPolicyFile, since this bug still
> occurs when I replace it with Sun's implementation.

Okay, so that helps us zone in a little...

>
> Peter.
>

Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
Dan Creswell wrote:
>>> Where "bug" is potentially a swallowed exception.
>>>
>>> Reggie for the most part holds a writeLock for any significant
>>> invocation from the client and events are dispatched via a
>>> TaskManager. Seems like an unlikely source for problems. Am I right in
>>> assuming the test itself is single-threaded? Sure looks like it is?
>>>
>>> That would suggest to me a problem in the remote comms layer if
>>> anywhere. My biggest worry would be that your permissions work is
>>> leading to a security exception or similar and it's just being
>>> swallowed.
>>>
>>> Take that worry and combine it with the fact that the last failing
>>> test does throw an exception and doesn't touch remote services or
>>> indeed the JERI layer, I'd say this is the test to look at first and
>>> perhaps we're not looking at an additional bug.
>>>
>>>
>>>       
>> Nope, it's a concurrency bug, TaskManager would create task threads for the
>> events, the bug goes away when I activate security debug, there are no
>> permission failures.
>>
>>     
>
> Sure, it's a concurrency bug I just happen to think all the symptoms
> point at the new code being the culprit. Activating all that security
> debug reduces interleaving and such reducing the chance of e.g. a race
> condition occurring.
>   

Well, it's not livelock, it's not deadlock, although in one test I can 
induce deadlock (no progress, no cpu load) with the debugger, so it 
isn't a loop, or CAS, it's some kind of synchronization deadlock.

Considering I have trouble printing the ProtectionDomain in the 
debugger, could this be a stale reference, or is there no relation?

> And the fact that there are no lost events unless your code is present
> can cut both ways but the simplest explanation would be a bug in your
> code not a bug in TaskManager which has virtually nothing to do with
> security.
>   
If there's a concurrency issue in my code, it's in DynamicPolicyProvider 
or one of the classes it uses, not ConcurrentPolicyFile, since this bug 
still occurs when I replace it with Sun's implementation.

Peter.


Re: Help needed with concurrency bug

Posted by Dan Creswell <da...@gmail.com>.
>> Where "bug" is potentially a swallowed exception.
>>
>> Reggie for the most part holds a writeLock for any significant
>> invocation from the client and events are dispatched via a
>> TaskManager. Seems like an unlikely source for problems. Am I right in
>> assuming the test itself is single-threaded? Sure looks like it is?
>>
>> That would suggest to me a problem in the remote comms layer if
>> anywhere. My biggest worry would be that your permissions work is
>> leading to a security exception or similar and it's just being
>> swallowed.
>>
>> Take that worry and combine it with the fact that the last failing
>> test does throw an exception and doesn't touch remote services or
>> indeed the JERI layer, I'd say this is the test to look at first and
>> perhaps we're not looking at an additional bug.
>>
>>
>
> Nope, it's a concurrency bug, TaskManager would create task threads for the
> events, the bug goes away when I activate security debug, there are no
> permission failures.
>

Sure, it's a concurrency bug I just happen to think all the symptoms
point at the new code being the culprit. Activating all that security
debug reduces interleaving and such reducing the chance of e.g. a race
condition occurring.

And the fact that there are no lost events unless your code is present
can cut both ways but the simplest explanation would be a bug in your
code not a bug in TaskManager which has virtually nothing to do with
security.

> It may actually be a TaskManager bug.

TaskManager does almost all it's heavy work inside of a single global
lock, other than task dispatch (and even that obtains its task under
the global lock) such that I think the possibility of a race that
leaks tasks is very low (simple locking, in a simple class).

>
> Notice the number of security checks being performed, although not used in
> this instance, the new security manager caches Permissions, I'm not entirely
> comfortable with the Comparator, to avoid equals.
>
> See attached.
>
>
>
>
>
> Buildfile: build.xml
>
> james-brown:
>   [delete] Deleting directory
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
>    [mkdir] Created dir:
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
>    [touch] Creating
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul/soul.201112250711018835
>
> run-tests:
>     [java]
>     [java] -----------------------------------------
>     [java] CONFIGURATION FILE:
>     [java]
>     [java]
>  /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/qaHarness.prop
>     [java]
>     [java] -----------------------------------------
>     [java] SETTING UP THE TEST LIST:
>     [java]
>     [java]    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
>     [java]
>     [java] -----------------------------------------
>     [java] GENERAL HARNESS CONFIGURATION INFORMATION:
>     [java]
>     [java]    Date started:
>     [java]       Sun Dec 25 07:11:21 EST 2011
>     [java]    Installation directory of the JSK:
>     [java]
> com.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
>     [java]    Installation directory of the harness:
>     [java]
> com.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
>     [java]    Categories being tested:
>     [java]       categories=No Categories
>     [java] -----------------------------------------
>     [java] ENVIRONMENT PROPERTIES:
>     [java]
>     [java]    JVM information:
>     [java]       Java HotSpot(TM) Server VM, 20.0-b11, 32 bit VM mode
>     [java]       Sun Microsystems Inc.
>     [java]    OS information:
>     [java]       SunOS, 5.10, sparc
>     [java]
>     [java] -----------------------------------------
>     [java] STARTING TO RUN THE TESTS
>     [java]
>     [java]
>     [java] Running
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
>     [java] Time is Sun Dec 25 07:11:22 EST 2011
>     [java] Starting test in separate process with command:
>     [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java
> -Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy
> -Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar -cp
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar
> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> -Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081
> -Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
> -Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar
> -Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar
> -Dcom.sun.jini.qa.harness.runjiniserver=true
> -Dcom.sun.jini.qa.harness.runkitserver=true
> -Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> -Dcom.sun.jini.qa.harness.testhosts=
> -Djava.util.logging.config.file=/home/peter/logging.properties
> -Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.test.port=9082
> -Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> -Djava.security.debug=access com.sun.jini.qa.harness.MasterTest
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/jsk-policy.jar
> read)
>     [java] access: access allowed (java.lang.RuntimePermission
> getProtectionDomain)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.net.jini.security.policy.DynamicPolicyProvider.basePolicyClass)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.net.jini.security.policy.DynamicPolicyProvider.revocation)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/mergedpolicyprovider.jar
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.security.policy read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.policies read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.net.jini.security.policy.PolicyFileProvider.basePolicyClass)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.security.SecurityPermission
> getPolicy)
>     [java] access: access allowed (java.util.PropertyPermission *
> read,write)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.allowSystemProperty)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy
> read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.url.1)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.url.2)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.url.3)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.expandProperties)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.net.preferIPv6Addresses read)
>     [java] access: access allowed (java.lang.RuntimePermission
> loadLibrary.net)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/sparc/libnet.so read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.net.preferIPv4Stack read)
>     [java] access: access allowed (java.util.PropertyPermission impl.prefix
> read)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.spi.nameservice.provider.1 read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.networkaddress.cache.ttl)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.inetaddr.ttl read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.networkaddress.cache.negative.ttl)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.expandProperties)
>     [java] access: access allowed (java.io.FilePermission
> /home/peter/.java.policy read)
>     [java] access: access allowed (java.io.FilePermission
> /home/peter/.java.policy read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.expandProperties)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy
> read)
>     [java] access: access allowed (java.lang.RuntimePermission
> getProtectionDomain)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.net.jini.security.policy.PolicyFileProvider.basePolicyClass)
>     [java] access: access allowed (java.util.PropertyPermission
> java.security.policy read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.security.policy write)
>     [java] access: access allowed (java.security.SecurityPermission
> getPolicy)
>     [java] access: access allowed (java.util.PropertyPermission *
> read,write)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.allowSystemProperty)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy
> read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.url.1)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.url.2)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.url.3)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.expandProperties)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/security/java.policy read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.expandProperties)
>     [java] access: access allowed (java.io.FilePermission
> /home/peter/.java.policy read)
>     [java] access: access allowed (java.io.FilePermission
> /home/peter/.java.policy read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.policy.expandProperties)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy
> read)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> getProtectionDomain)
>     [java] access: access allowed (java.util.PropertyPermission
> java.security.policy write)
>     [java] access: access allowed (java.lang.RuntimePermission
> getProtectionDomain)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.PropertyPermission
> line.separator read)
>     [java] access: access allowed (java.util.PropertyPermission
> line.separator read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.testhosts read)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.1)
>     [java] access: access allowed (java.io.FilePermission
> /usr/lib/libpkcs11.so read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.security.pkcs11.enable-solaris read)
>     [java] access: access allowed (java.util.PropertyPermission java.home
> read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.2)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.3)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.4)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.5)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.6)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.7)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.8)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.9)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.security.provider.10)
>     [java] access: access allowed (java.security.SecurityPermission
> getPolicy)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.security.pkcs11)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/ext/sunpkcs11.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/ext/sunpkcs11.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/ext/sunpkcs11.jar read)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.security.provider)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission
> java.security.egd read)
>     [java] access: access allowed (java.security.SecurityPermission
> getProperty.securerandom.source)
>     [java] access: access allowed (java.io.FilePermission /dev/random read)
>     [java] access: access allowed (java.io.FilePermission /dev/urandom read)
>     [java] access: access allowed (java.io.FilePermission /dev/random read)
>     [java] access: access allowed (java.io.FilePermission /dev/urandom read)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SUN)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.security.preserveOldDCEncoding read)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.security.rsa)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunRsaSign)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.security.rsa.restrictRSAExponent read)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.security.key.serial.interop read)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission os.arch
> read)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SUN)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.security.util)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.security.action)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.security.pkcs11.allowSingleThreadedModules read)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.security.util)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/security/sunpkcs11-solaris.cfg read)
>     [java] access: access allowed (java.util.PropertyPermission os.name
> read)
>     [java] access: access allowed (java.util.PropertyPermission os.arch
> read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/lib/libpkcs11.so read)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> loadLibrary.j2pkcs11)
>     [java] access: access allowed (java.util.PropertyPermission os.arch
> read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/ext/sparc/libj2pkcs11.so read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/ext/sparc/libj2pkcs11.so read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/ext/libj2pkcs11.so read)
>     [java] access: access allowed (java.util.PropertyPermission os.arch
> read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/packages/lib/ext/sparc/libj2pkcs11.so read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/packages/lib/ext/libj2pkcs11.so read)
>     [java] access: access allowed (java.util.PropertyPermission os.arch
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/sparc/libj2pkcs11.so
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext/libj2pkcs11.so
> read)
>     [java] access: access allowed (java.util.PropertyPermission os.arch
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/sparc/libj2pkcs11.so
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext/libj2pkcs11.so
> read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/sparc/libj2pkcs11.so read)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.security.util)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.security.SecurityPermission
> putProviderProperty.SunPKCS11-Solaris)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission getenv.SOUL)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul/soul.201112250711018835
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.discovery.announce read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.testhosts read)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.boot.class.path read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/meta-index read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/meta-index read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/rt.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/sunrsasign.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/jsse.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/jce.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/charsets.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/modules/jdk.boot.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/modules/jdk.boot.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/modules/meta-index read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/modules/meta-index read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/classes read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/classes read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/meta-index read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/meta-index read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/rt.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/sunrsasign.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/jsse.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/jce.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/charsets.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/modules/jdk.boot.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/classes read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/resources.jar read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/rt.jar read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/sunrsasign.jar read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/jsse.jar read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/jce.jar read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/charsets.jar read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/modules/jdk.boot.jar read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/classes read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-resources.jar
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-resources.jar
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-resources.jar
> read)
>     [java] access: access allowed (java.net.NetPermission
> specifyStreamHandler)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar read)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.lang.RuntimePermission
> createSecurityManager)
>     [java] access: access allowed (java.security.SecurityPermission
> getDomainCombiner)
>     [java] access: access allowed (java.lang.RuntimePermission
> getProtectionDomain)
>     [java] access: access allowed (java.security.SecurityPermission
> createAccessControlContext)
>     [java] access: access allowed (java.util.PropertyPermission
> testFailureAnalyzers read)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.callAutoT read)
>     [java] access: access allowed (java.util.PropertyPermission
> user.timezone read)
>     [java] access: access allowed (java.util.PropertyPermission user.country
> read)
>     [java] access: access allowed (java.util.PropertyPermission java.home
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.timezone.ids.oldmapping read)
>     [java] access: access allowed (java.util.PropertyPermission java.home
> read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Queensland read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Queensland read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/ZoneInfoMappings read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/zi/Australia/Brisbane read)
>     [java] access: access allowed (java.util.PropertyPermission
> user.timezone write)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.util.resources)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.util.resources)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.text.resources)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.text.resources)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.text.resources)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.util.resources)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.util.resources)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.util.logging.resources)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.util.logging.resources)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/ext/localedata.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/ext/localedata.jar read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/ext/localedata.jar read)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessClassInPackage.sun.util.logging.resources)
>     [java]
>     [java] TIME: 7:11:27 AM
>     [java]
>     [java] MasterTest.doTest INFO:
>     [java] ============================== CALLING SETUP()
> ==============================
>     [java]
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.startDelay read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runkitserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.serviceMode read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.transient.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.adminName read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.classServer.impl.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.classServer.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.impl.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.impl read)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.classServer.port.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.classServer.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.port.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.classServer.dir.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.classServer.dir read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.dir.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.dir read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.globalvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.ext.dirs read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runjiniserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runkitserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.securityproperties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> harness/trust/dynamic-policy.properties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.testhosts read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.util.logging.config.file read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.port read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> src/com/sun/jini/test/resources/jinitest.policy read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.classServer.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.classServer.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> qaClassServer.type read)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> loadLibrary.net)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/sparc/libnet.so read)
>     [java] access: access allowed (java.net.SocketPermission localhost:9081
> listen,resolve)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission
> line.separator read)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission
> line.separator read)
>     [java] access: access allowed (java.util.PropertyPermission
> line.separator read)
>     [java] access: access allowed (java.util.PropertyPermission
> line.separator read)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] 25/12/2011 7:11:28 AM com.sun.jini.tool.ClassServer run
>     [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runjiniserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.serviceMode read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.transient.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.adminName read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.classServer.impl.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.classServer.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.impl.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.classServer.port.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.classServer.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.port.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.classServer.dir.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.classServer.dir read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.dir.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.dir read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.globalvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.ext.dirs read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runjiniserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runkitserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.securityproperties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> harness/trust/dynamic-policy.properties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.testhosts read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.util.logging.config.file read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.port read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> src/com/sun/jini/test/resources/jinitest.policy read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.classServer.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.classServer.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> jiniClassServer.type read)
>     [java] access: access allowed (java.net.SocketPermission localhost:9080
> listen,resolve)
>     [java] 25/12/2011 7:11:29 AM com.sun.jini.tool.ClassServer run
>     [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.testClassServer read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.serviceMode read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.transient.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.adminName read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.classServer.impl.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.classServer.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.impl.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.classServer.port.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.classServer.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.port.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.classServer.dir.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.classServer.dir read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.dir.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.dir read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.globalvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.ext.dirs read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runjiniserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runkitserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.securityproperties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> harness/trust/dynamic-policy.properties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.testhosts read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.util.logging.config.file read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.port read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> src/com/sun/jini/test/resources/jinitest.policy read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.classServer.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.classServer.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> testClassServer.type read)
>     [java] access: access allowed (java.net.SocketPermission localhost:9082
> listen,resolve)
>     [java] 25/12/2011 7:11:30 AM com.sun.jini.tool.ClassServer run
>     [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.deltaTSrvcLeaseExp read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.deltaTEvntLeaseExp read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.deltaTEvntNotify read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.deltaTListener read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.outputRoot read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.nInstancesPerClass read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.selectMethod read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.rmiCodebase read)
>     [java] access: access allowed (java.util.PropertyPermission HOST read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.actCodebase read)
>     [java] access: access allowed (java.util.PropertyPermission HOST read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission HOST read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.actClasspath read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.spec.lookupservice.policy read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.rmi.server.codebase read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.rmi.server.codebase read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.rmi.server.codebase read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.class.path read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.codebase read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.classpath read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.policyfile read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> harness/policy/defaultreggie.policy read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaultreggie.policy
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.instances read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.serviceMode read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.adminName read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.running.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.running.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.running read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.running.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.running.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.running read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.running.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.running.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.running read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.running.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.running.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.running read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.tojoin.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.tojoin read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.tojoin.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.tojoin read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.membergroups.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.membergroups read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.membergroups.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.membergroups read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.discovery.timeout read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.component.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.component read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.component.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.component read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.port.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.port.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.log.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.transient.log read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.core.lookup.ServiceRegistrar.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.io.serialization.extendedDebugInfo read)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission
> net.jini.discovery.announce read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.testhosts read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.shared read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.serviceMode read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.transient.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.adminName read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.1 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.serverjvm.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.serverjvm read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.serverjvm.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.serverjvm read)
>     [java] access: access allowed (java.util.PropertyPermission java.home
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.codebase.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.codebase read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.codebase.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.codebase read)
>     [java] access: access allowed (java.util.PropertyPermission HOST read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.integrityhash.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.integrityhash read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.integrityhash.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.integrityhash read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.integrityhash read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.policyfile.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.policyfile read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.policyfile.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.policyfile read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> harness/policy/defaultnonactvm.policy read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaultnonactvm.policy
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.globalvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.ext.dirs read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runjiniserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runkitserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.securityproperties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> harness/trust/dynamic-policy.properties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.testhosts read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.util.logging.config.file read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.port read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> src/com/sun/jini/test/resources/jinitest.policy read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.globalvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.ext.dirs read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.port read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runjiniserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.runkitserver read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.securityproperties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> harness/trust/dynamic-policy.properties read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.harness.testhosts read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.util.logging.config.file read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.test.port read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> src/com/sun/jini/test/resources/jinitest.policy read)
>     [java] access: access allowed (java.util.PropertyPermission user.dir
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.serverjvmargs.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.serverjvmargs read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.classpath.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.classpath read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.classpath.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.classpath read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.qa.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> com.sun.jini.jsk.home read)
>     [java] access: access allowed (java.util.PropertyPermission
> globalclasspath read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.impl.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.nonactivatablegroup.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.impl.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.impl read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type.0 read)
>     [java] access: access allowed (java.util.PropertyPermission
> nonActivatableGroup.type read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/bin/java read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/bin/java read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/bin/java execute)
>     [java] access: access allowed (java.lang.RuntimePermission
> writeFileDescriptor)
>     [java] access: access allowed (java.lang.RuntimePermission
> readFileDescriptor)
>     [java] access: access allowed (java.lang.RuntimePermission
> readFileDescriptor)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul/soul.201112250711018835
> read)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.util.PropertyPermission
> java.rmi.server.useCodebaseOnly read)
>     [java] access: access allowed (java.lang.RuntimePermission
> loadLibrary.rmi)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/sparc/librmi.so read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.rmi.server.RMIClassLoaderSpi read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-resources.jar
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-resources.jar
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-resources.jar
> read)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.PropertyPermission
> java.rmi.server.codebase read)
>     [java] access: access allowed (java.lang.RuntimePermission
> getClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.util.PropertyPermission
> java.protocol.handler.pkgs read)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.net.SocketPermission bluto resolve)
>     [java] access: access allowed (java.lang.RuntimePermission
> getClassLoader)
>     [java] access: access allowed (java.security.SecurityPermission
> getPolicy)
>     [java] access: access allowed (java.util.logging.LoggingPermission
> control)
>     [java] access: access allowed (java.util.PropertyPermission
> http.maxRedirects read)
>     [java] access: access allowed (java.util.PropertyPermission java.version
> read)
>     [java] access: access allowed (java.util.PropertyPermission http.agent
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> http.auth.digest.validateProxy read)
>     [java] access: access allowed (java.util.PropertyPermission
> http.auth.digest.validateServer read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.http.errorstream.enableBuffering read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.http.errorstream.timeout read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.http.errorstream.bufferSize read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.http.allowRestrictedHeaders read)
>     [java] access: access allowed (java.util.PropertyPermission
> http.auth.serializeRequests read)
>     [java] access: access allowed (java.util.PropertyPermission
> http.auth.ntlm.domain read)
>     [java] access: access allowed (java.net.NetPermission getCookieHandler)
>     [java] access: access allowed (java.net.NetPermission getResponseCache)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.net.NetPermission getCookieHandler)
>     [java] access: access allowed (java.net.NetPermission getResponseCache)
>     [java] access: access allowed (java.net.SocketPermission bluto:9081
> connect,resolve)
>     [java] access: access allowed (java.util.PropertyPermission
> java.protocol.handler.pkgs read)
>     [java] access: access allowed (java.net.NetPermission getCookieHandler)
>     [java] access: access allowed (java.net.NetPermission getResponseCache)
>     [java] access: access allowed (java.net.NetPermission getCookieHandler)
>     [java] access: access allowed (java.net.NetPermission getResponseCache)
>     [java] access: access allowed (java.util.PropertyPermission java.home
> read)
>     [java] access: access allowed (java.io.FilePermission
> /usr/jdk/instances/jdk1.6.0/jre/lib/net.properties read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.net.useSystemProxies read)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.net.NetPermission getProxySelector)
>     [java] access: access allowed (java.util.PropertyPermission
> http.nonProxyHosts read)
>     [java] access: access allowed (java.util.PropertyPermission
> http.proxyHost read)
>     [java] access: access allowed (java.util.PropertyPermission proxyHost
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> socksProxyHost read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.client.defaultReadTimeout read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.client.defaultConnectTimeout read)
>     [java] access: access allowed (java.util.PropertyPermission
> file.encoding read)
>     [java] access: access allowed (java.util.PropertyPermission
> http.keepAlive read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.http.retryPost read)
>     [java] access: access allowed (java.net.NetPermission getCookieHandler)
>     [java] access: access allowed (java.net.SocketPermission bluto:9081
> connect,resolve)
>     [java] access: access allowed (java.net.SocketPermission bluto resolve)
>     [java] access: access allowed (java.net.SocketPermission 10.1.1.2:9081
> connect,resolve)
>     [java] access: access allowed (java.net.SocketPermission 10.1.1.2:9081
> connect,resolve)
>     [java] access: access allowed (java.net.NetPermission getProxySelector)
>     [java] access: access allowed (java.util.PropertyPermission
> socksProxyHost read)
>     [java] access: access allowed (java.lang.RuntimePermission
> writeFileDescriptor)
>     [java] access: access allowed (java.util.PropertyPermission
> line.separator read)
>     [java] access: access allowed (java.lang.RuntimePermission
> readFileDescriptor)
>     [java] access: access allowed (java.net.SocketPermission 10.1.1.2:34530
> accept,resolve)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.RuntimePermission
> writeFileDescriptor)
>     [java] access: access allowed (java.lang.RuntimePermission
> readFileDescriptor)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/nonactivatablegroup-dl.jar
> read)
>     [java] access: access allowed (java.io.FilePermission
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/nonactivatablegroup-dl.jar
> read)
>     [java] access: access allowed (java.util.PropertyPermission
> sun.net.maxDatagramSockets read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.io.tmpdir read)
>     [java] access: access allowed (java.util.PropertyPermission
> java.io.tmpdir read)
>     [java] access: access allowed (java.io.FilePermission
> /var/tmp/jar_cache8414811218446351715.tmp write)
>     [java] access: access allowed (java.io.FilePermission
> /var/tmp/jar_cache8414811218446351715.tmp delete)
>     [java] access: access allowed (java.io.FilePermission
> /var/tmp/jar_cache8414811218446351715.tmp write)
>     [java] access: access allowed (java.io.FilePermission
> /var/tmp/jar_cache8414811218446351715.tmp read)
>     [java] access: access allowed (java.io.FilePermission
> /var/tmp/jar_cache8414811218446351715.tmp delete)
>     [java] access: access allowed (java.io.FilePermission
> /var/tmp/jar_cache8414811218446351715.tmp read)
>     [java] access: access allowed (java.net.NetPermission getCookieHandler)
>     [java] access: access allowed (java.net.NetPermission getResponseCache)
>     [java] access: access allowed (java.net.NetPermission getCookieHandler)
>     [java] access: access allowed (java.net.NetPermission getResponseCache)
>     [java] access: access allowed (java.net.NetPermission getCookieHandler)
>     [java] access: access allowed (java.net.NetPermission getResponseCache)
>     [java] access: access allowed (java.net.SocketPermission bluto:9081
> connect,resolve)
>     [java] access: access allowed (java.net.NetPermission getCookieHandler)
>     [java] access: access allowed (java.net.NetPermission getResponseCache)
>     [java] access: access allowed (java.net.SocketPermission bluto:9081
> connect,resolve)
>     [java] access: access allowed (java.net.SocketPermission bluto:9081
> connect,resolve)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> createClassLoader)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
>     [java] access: access allowed (java.lang.RuntimePermission
> accessDeclaredMembers)
>     [java] access: access allowed (ja

Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
For the following test:

com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td

I'm having trouble running the debugger:

main[1] threads
Group system:
  (java.lang.ref.Reference$ReferenceHandler)0x124 Reference Handler     
cond. waiting
  (java.lang.ref.Finalizer$FinalizerThread)0x123  Finalizer             
cond. waiting
  (java.lang.Thread)0x122                         Signal Dispatcher     
running
Group main:
  (java.lang.Thread)0x1                           main                  
running (at breakpoint)
  (java.lang.Thread)0x35a                         no heart without soul 
sleeping
  (com.sun.jini.tool.ClassServer)0x3d5            Thread-2              
running
  (com.sun.jini.tool.ClassServer)0x3dd            Thread-3              
running
  (com.sun.jini.tool.ClassServer)0x3de            Thread-4              
running
  (java.lang.Thread)0x3e0                         RequestHandler        
running
main[1] print domain

Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

main[1] print domain
Internal exception during operation:
    Unexpected JDWP Error: 502
main[1] threads
Group system:
  (java.lang.ref.Reference$ReferenceHandler)0x124 Reference Handler     
cond. waiting
  (java.lang.ref.Finalizer$FinalizerThread)0x123  Finalizer             
cond. waiting
  (java.lang.Thread)0x122                         Signal Dispatcher     
running
Group main:
  (java.lang.Thread)0x1                           main                  
running (at breakpoint)
  (java.lang.Thread)0x35a                         no heart without soul 
running
  (com.sun.jini.tool.ClassServer)0x3d5            Thread-2              
running
  (com.sun.jini.tool.ClassServer)0x3dd            Thread-3              
running
  (com.sun.jini.tool.ClassServer)0x3de            Thread-4              
running
  (java.lang.Thread)0x3e0                         RequestHandler        
running
main[1] run
 >
Breakpoint hit: "thread=no heart without soul", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

no heart without soul[1] threads
Group system:
  (java.lang.ref.Reference$ReferenceHandler)0x124 Reference Handler     
cond. waiting
  (java.lang.ref.Finalizer$FinalizerThread)0x123  Finalizer             
cond. waiting
  (java.lang.Thread)0x122                         Signal Dispatcher     
running
Group main:
  (java.lang.Thread)0x1                           main                  
running (at breakpoint)
  (java.lang.Thread)0x35a                         no heart without soul 
running (at breakpoint)
  (com.sun.jini.tool.ClassServer)0x3d5            Thread-2              
running
  (com.sun.jini.tool.ClassServer)0x3dd            Thread-3              
running
  (com.sun.jini.tool.ClassServer)0x3de            Thread-4              
running
  (java.lang.Thread)0x3e0                         RequestHandler        
running
no heart without soul[1] run
 >
Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

main[1] threads
Group system:
  (java.lang.ref.Reference$ReferenceHandler)0x124 Reference Handler     
cond. waiting
  (java.lang.ref.Finalizer$FinalizerThread)0x123  Finalizer             
cond. waiting
  (java.lang.Thread)0x122                         Signal Dispatcher     
running
Group main:
  (java.lang.Thread)0x1                           main                  
running (at breakpoint)
  (java.lang.Thread)0x35a                         no heart without soul 
running
  (com.sun.jini.tool.ClassServer)0x3d5            Thread-2              
running
  (com.sun.jini.tool.ClassServer)0x3dd            Thread-3              
running
  (com.sun.jini.tool.ClassServer)0x3de            Thread-4              
running
  (java.lang.Thread)0x3e0                         RequestHandler        
running
main[1] print domain
Internal exception during operation:
    Unexpected JDWP Error: 502
main[1] run
 >
Breakpoint hit: "thread=main", 
com.sun.jini.start.AggregatePolicyProvider.implies(), line=201 bci=0

main[1] run
 >  domain = "ProtectionDomain  
(file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-tests.jar 
<no signer certificates>)
 sun.misc.Launcher$AppClassLoader@93dee9
 <no principals>
 java.security.Permissions@425eb9 (
 (java.security.SecurityPermission setPolicy)
 (java.security.SecurityPermission getProperty.*)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/* read)
 (java.io.FilePermission 
/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/qa1-start-tests.jar 
read)
 (java.security.AllPermission <all permissions> <all actions>)
 (java.util.PropertyPermission line.separator read)
 (java.util.PropertyPermission java.vm.version read)
 (java.util.PropertyPermission java.vm.specification.version read)
 (java.util.PropertyPermission java.vm.specification.vendor read)
 (java.util.PropertyPermission java.vendor.url read)
 (java.util.PropertyPermission java.vm.name read)
 (java.util.PropertyPermission * read,write)
 (java.util.PropertyPermission os.name read)
 (java.util.PropertyPermission java.vm.vendor read)
 (java.util.PropertyPermission path.separator read)
 (java.util.PropertyPermission os.version read)
 (java.util.PropertyPermission java.specification.name read)
 (java.util.PropertyPermission os.arch read)
 (java.util.PropertyPermission java.class.version read)
 (java.util.PropertyPermission java.version read)
 (java.util.PropertyPermission file.separator read)
 (java.util.PropertyPermission java.vendor read)
 (java.util.PropertyPermission java.vm.specification.name read)
 (java.util.PropertyPermission java.specification.version read)
 (java.util.PropertyPermission java.specification.vendor read)
 (java.lang.RuntimePermission getClassLoader)
 (java.lang.RuntimePermission accessClassInPackage.*)
 (java.lang.RuntimePermission createClassLoader)
 (java.lang.RuntimePermission stopThread)
 (java.lang.RuntimePermission setContextClassLoader)
 (java.lang.RuntimePermission exitVM)
 (java.net.SocketPermission localhost:1024- listen,resolve)
)

"
main[1]



Peter Firmstone wrote:
> Dan Creswell wrote:
>> On 24 December 2011 11:36, Peter Firmstone <ji...@zeus.net.au> wrote:
>>  
>>> I'm experiencing some failing tests:
>>>
>>> run.tests=com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td,\ 
>>>
>>> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td,\
>>> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td,\
>>> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td,\
>>> com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td,\
>>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>>>
>>> Not sure about the last test which is failing a permission check, 
>>> but the
>>> first 5 are dropping events, without there being any security 
>>> exceptions, so
>>> I'm guessing the policy's concurrency has exposed another bug.
>>>     
>>
>> Where "bug" is potentially a swallowed exception.
>>
>> Reggie for the most part holds a writeLock for any significant
>> invocation from the client and events are dispatched via a
>> TaskManager. Seems like an unlikely source for problems. Am I right in
>> assuming the test itself is single-threaded? Sure looks like it is?
>>
>> That would suggest to me a problem in the remote comms layer if
>> anywhere. My biggest worry would be that your permissions work is
>> leading to a security exception or similar and it's just being
>> swallowed.
>>
>> Take that worry and combine it with the fact that the last failing
>> test does throw an exception and doesn't touch remote services or
>> indeed the JERI layer, I'd say this is the test to look at first and
>> perhaps we're not looking at an additional bug.
>>
>>   
> Nope, it's a concurrency bug, TaskManager would create task threads 
> for the events, the bug goes away when I activate security debug, 
> there are no permission failures.
>
> It may actually be a TaskManager bug.
>
> Notice the number of security checks being performed, although not 
> used in this instance, the new security manager caches Permissions, 
> I'm not entirely comfortable with the Comparator, to avoid equals.
>
> See attached.
>
>
>
>


Re: Help needed with concurrency bug

Posted by Peter Firmstone <ji...@zeus.net.au>.
Dan Creswell wrote:
> On 24 December 2011 11:36, Peter Firmstone <ji...@zeus.net.au> wrote:
>   
>> I'm experiencing some failing tests:
>>
>> run.tests=com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td,\
>> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td,\
>> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td,\
>> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td,\
>> com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td,\
>> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>>
>> Not sure about the last test which is failing a permission check, but the
>> first 5 are dropping events, without there being any security exceptions, so
>> I'm guessing the policy's concurrency has exposed another bug.
>>     
>
> Where "bug" is potentially a swallowed exception.
>
> Reggie for the most part holds a writeLock for any significant
> invocation from the client and events are dispatched via a
> TaskManager. Seems like an unlikely source for problems. Am I right in
> assuming the test itself is single-threaded? Sure looks like it is?
>
> That would suggest to me a problem in the remote comms layer if
> anywhere. My biggest worry would be that your permissions work is
> leading to a security exception or similar and it's just being
> swallowed.
>
> Take that worry and combine it with the fact that the last failing
> test does throw an exception and doesn't touch remote services or
> indeed the JERI layer, I'd say this is the test to look at first and
> perhaps we're not looking at an additional bug.
>
>   
Nope, it's a concurrency bug, TaskManager would create task threads for 
the events, the bug goes away when I activate security debug, there are 
no permission failures.

It may actually be a TaskManager bug.

Notice the number of security checks being performed, although not used 
in this instance, the new security manager caches Permissions, I'm not 
entirely comfortable with the Comparator, to avoid equals.

See attached.





Re: Help needed with concurrency bug

Posted by Dan Creswell <da...@gmail.com>.
On 24 December 2011 11:36, Peter Firmstone <ji...@zeus.net.au> wrote:
> I'm experiencing some failing tests:
>
> run.tests=com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td,\
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td,\
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td,\
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td,\
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td,\
> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>
> Not sure about the last test which is failing a permission check, but the
> first 5 are dropping events, without there being any security exceptions, so
> I'm guessing the policy's concurrency has exposed another bug.

Where "bug" is potentially a swallowed exception.

Reggie for the most part holds a writeLock for any significant
invocation from the client and events are dispatched via a
TaskManager. Seems like an unlikely source for problems. Am I right in
assuming the test itself is single-threaded? Sure looks like it is?

That would suggest to me a problem in the remote comms layer if
anywhere. My biggest worry would be that your permissions work is
leading to a security exception or similar and it's just being
swallowed.

Take that worry and combine it with the fact that the last failing
test does throw an exception and doesn't touch remote services or
indeed the JERI layer, I'd say this is the test to look at first and
perhaps we're not looking at an additional bug.

>
> http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/
>
> Any help would be much appreciated ;)
>
> bash-3.00$ ant run-tests
> Buildfile: build.xml
>
> james-brown:
>  [delete] Deleting directory
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
>   [mkdir] Created dir:
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul
>   [touch] Creating
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/soul/soul.201112241952044566
>
> run-tests:
>    [java]
>    [java] -----------------------------------------
>    [java] CONFIGURATION FILE:
>    [java]
>    [java]
>  /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/qaHarness.prop
>    [java]
>    [java] -----------------------------------------
>    [java] SETTING UP THE TEST LIST:
>    [java]
>    [java]    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
>    [java]    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
>    [java]    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
>    [java]    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
>    [java]    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
>    [java]    Adding test:
> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>    [java]
>    [java] -----------------------------------------
>    [java] GENERAL HARNESS CONFIGURATION INFORMATION:
>    [java]
>    [java]    Date started:
>    [java]       Sat Dec 24 19:52:47 EST 2011
>    [java]    Installation directory of the JSK:
>    [java]
> com.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
>    [java]    Installation directory of the harness:
>    [java]
> com.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
>    [java]    Categories being tested:
>    [java]       categories=No Categories
>    [java] -----------------------------------------
>    [java] ENVIRONMENT PROPERTIES:
>    [java]
>    [java]    JVM information:
>    [java]       Java HotSpot(TM) Server VM, 20.0-b11, 32 bit VM mode
>    [java]       Sun Microsystems Inc.
>    [java]    OS information:
>    [java]       SunOS, 5.10, sparc
>    [java]
>    [java] -----------------------------------------
>    [java] STARTING TO RUN THE TESTS
>    [java]
>    [java]
>    [java] Running
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
>    [java] Time is Sat Dec 24 19:52:47 EST 2011
>    [java] Starting test in separate process with command:
>    [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java
> -Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy
> -Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar -cp
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar
> -client
> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> -Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081
> -Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
> -Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar
> -Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar
> -Dcom.sun.jini.qa.harness.runjiniserver=true
> -Dcom.sun.jini.qa.harness.runkitserver=true
> -Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> -Dcom.sun.jini.qa.harness.testhosts=
> -Djava.util.logging.config.file=/home/peter/logging.properties
> -Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.test.port=9082
> -Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> com.sun.jini.qa.harness.MasterTest
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
>    [java]
>    [java] TIME: 7:52:51 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] ============================== CALLING SETUP()
> ==============================
>    [java]
>    [java] 24/12/2011 7:52:52 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
>    [java] 24/12/2011 7:52:52 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
>    [java] 24/12/2011 7:52:53 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
>    [java] NonActGrp-out: 24/12/2011 7:53:06 PM
> com.sun.jini.reggie.RegistrarImpl init
>    [java] NonActGrp-out: INFO: started Reggie:
> c14d2980-a0fa-49e5-b2fc-c9cf521828a4, [],
> ConstrainableLookupLocator[[jini://bluto/], [null]]
>    [java]
>    [java] TIME: 7:53:34 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] =============================== CALLING RUN()
> ===============================
>    [java]
>    [java] com.sun.jini.qa.harness.TestException: # of Events Received (35)
> != # of Events Expected (50)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.test_set00.MultipleEvntLeaseRenewals.verifyNotification(MultipleEvntLeaseRenewals.java:285)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.test_set00.MultipleEvntLeaseRenewals.run(MultipleEvntLeaseRenewals.java:218)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
>    [java]
>    [java] TIME: 7:58:29 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] ============================ CALLING TEARDOWN()
> =============================
>    [java]
>    [java] NonActGrp-out: 24/12/2011 7:58:30 PM
> com.sun.jini.reggie.RegistrarImpl destroy
>    [java] NonActGrp-out: INFO: starting Reggie shutdown
>    [java] NonActGrp-out: 24/12/2011 7:58:30 PM
> com.sun.jini.reggie.RegistrarImpl$DestroyThread run
>    [java] NonActGrp-out: INFO: Reggie shutdown completed
>    [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java] 24/12/2011 7:58:32 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java]
>    [java] TIME: 7:58:33 PM
>    [java]
>    [java] Test process was destroyed and returned code 1
>    [java]
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (35) != # of Events Expected (50)
>    [java]
>    [java]
>    [java] -----------------------------------------
>    [java]
>    [java] Running
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
>    [java] Time is Sat Dec 24 19:58:38 EST 2011
>    [java] Starting test in separate process with command:
>    [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java
> -Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy
> -Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar -cp
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar
> -client
> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> -Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081
> -Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
> -Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar
> -Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar
> -Dcom.sun.jini.qa.harness.runjiniserver=true
> -Dcom.sun.jini.qa.harness.runkitserver=true
> -Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> -Dcom.sun.jini.qa.harness.testhosts=
> -Djava.util.logging.config.file=/home/peter/logging.properties
> -Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.test.port=9082
> -Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> com.sun.jini.qa.harness.MasterTest
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
>    [java]
>    [java] TIME: 7:58:41 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] ============================== CALLING SETUP()
> ==============================
>    [java]
>    [java] 24/12/2011 7:58:42 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
>    [java] 24/12/2011 7:58:42 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
>    [java] 24/12/2011 7:58:43 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
>    [java] NonActGrp-out: 24/12/2011 7:58:58 PM
> com.sun.jini.reggie.RegistrarImpl init
>    [java] NonActGrp-out: INFO: started Reggie:
> db79cb8e-d6b2-47c4-8c98-7519cf555cfe, [],
> ConstrainableLookupLocator[[jini://bluto/], [null]]
>    [java]
>    [java] TIME: 7:59:27 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] =============================== CALLING RUN()
> ===============================
>    [java]
>    [java] com.sun.jini.qa.harness.TestException: # of Events Received (23)
> != # of Events Expected (50)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.QATestUtils.verifyEventVector(QATestUtils.java:473)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.test_set00.NotifyOnAttrAdd.run(NotifyOnAttrAdd.java:183)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
>    [java]
>    [java] TIME: 7:59:37 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] ============================ CALLING TEARDOWN()
> =============================
>    [java]
>    [java] NonActGrp-out: 24/12/2011 7:59:38 PM
> com.sun.jini.reggie.RegistrarImpl destroy
>    [java] NonActGrp-out: INFO: starting Reggie shutdown
>    [java] NonActGrp-out: 24/12/2011 7:59:38 PM
> com.sun.jini.reggie.RegistrarImpl$DestroyThread run
>    [java] NonActGrp-out: INFO: Reggie shutdown completed
>    [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 7:59:40 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java]
>    [java] TIME: 7:59:41 PM
>    [java]
>    [java] Test process was destroyed and returned code 1
>    [java] com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (23) != # of Events Expected (50)
>    [java]
>    [java]
>    [java] -----------------------------------------
>    [java]
>    [java] Running
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
>    [java] Time is Sat Dec 24 19:59:46 EST 2011
>    [java] Starting test in separate process with command:
>    [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java
> -Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy
> -Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar -cp
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar
> -client
> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> -Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081
> -Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
> -Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar
> -Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar
> -Dcom.sun.jini.qa.harness.runjiniserver=true
> -Dcom.sun.jini.qa.harness.runkitserver=true
> -Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> -Dcom.sun.jini.qa.harness.testhosts=
> -Djava.util.logging.config.file=/home/peter/logging.properties
> -Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.test.port=9082
> -Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> com.sun.jini.qa.harness.MasterTest
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
>    [java]
>    [java] TIME: 7:59:49 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] ============================== CALLING SETUP()
> ==============================
>    [java]
>    [java] 24/12/2011 7:59:50 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
>    [java] 24/12/2011 7:59:51 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
>    [java] 24/12/2011 7:59:52 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
>    [java] NonActGrp-out: 24/12/2011 8:00:08 PM
> com.sun.jini.reggie.RegistrarImpl init
>    [java] NonActGrp-out: INFO: started Reggie:
> e0627d4b-f59f-4a98-88f7-27fdfd250a6e, [],
> ConstrainableLookupLocator[[jini://bluto/], [null]]
>    [java]
>    [java] TIME: 8:00:40 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] =============================== CALLING RUN()
> ===============================
>    [java]
>    [java] com.sun.jini.qa.harness.TestException: # of Events Received (24)
> != # of Events Expected (50)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.QATestUtils.verifyEventVector(QATestUtils.java:473)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.test_set00.NotifyOnAttrDel.run(NotifyOnAttrDel.java:203)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
>    [java] MasterTest.doTest INFO:
>    [java] ============================ CALLING TEARDOWN()
> =============================
>    [java]
>    [java] NonActGrp-out: 24/12/2011 8:00:50 PM
> com.sun.jini.reggie.RegistrarImpl destroy
>    [java] NonActGrp-out: INFO: starting Reggie shutdown
>    [java] NonActGrp-out: 24/12/2011 8:00:50 PM
> com.sun.jini.reggie.RegistrarImpl$DestroyThread run
>    [java] NonActGrp-out: INFO: Reggie shutdown completed
>    [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java] 24/12/2011 8:00:52 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java]
>    [java] TIME: 8:00:53 PM
>    [java]
>    [java] Test process was destroyed and returned code 1
>    [java] com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (24) != # of Events Expected (50)
>    [java]
>    [java]
>    [java] -----------------------------------------
>    [java]
>    [java] Running
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
>    [java] Time is Sat Dec 24 20:00:58 EST 2011
>    [java] Starting test in separate process with command:
>    [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java
> -Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy
> -Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar -cp
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar
> -client
> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> -Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081
> -Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
> -Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar
> -Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar
> -Dcom.sun.jini.qa.harness.runjiniserver=true
> -Dcom.sun.jini.qa.harness.runkitserver=true
> -Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> -Dcom.sun.jini.qa.harness.testhosts=
> -Djava.util.logging.config.file=/home/peter/logging.properties
> -Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.test.port=9082
> -Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> com.sun.jini.qa.harness.MasterTest
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
>    [java]
>    [java] TIME: 8:01:01 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] ============================== CALLING SETUP()
> ==============================
>    [java]
>    [java] 24/12/2011 8:01:02 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
>    [java] 24/12/2011 8:01:03 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
>    [java] 24/12/2011 8:01:04 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
>    [java] NonActGrp-out: 24/12/2011 8:01:21 PM
> com.sun.jini.reggie.RegistrarImpl init
>    [java] NonActGrp-out: INFO: started Reggie:
> 4c1e8624-a70c-4cf6-a3fa-95b8bde54936, [],
> ConstrainableLookupLocator[[jini://bluto/], [null]]
>    [java]
>    [java] TIME: 8:01:55 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] =============================== CALLING RUN()
> ===============================
>    [java]
>    [java] com.sun.jini.qa.harness.TestException: # of Events Received (20)
> != # of Events Expected (50)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.QATestUtils.verifyEventVector(QATestUtils.java:473)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.test_set00.NotifyOnAttrMod.run(NotifyOnAttrMod.java:204)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
>    [java]
>    [java] TIME: 8:02:06 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] ============================ CALLING TEARDOWN()
> =============================
>    [java]
>    [java] NonActGrp-out: 24/12/2011 8:02:06 PM
> com.sun.jini.reggie.RegistrarImpl destroy
>    [java] NonActGrp-out: INFO: starting Reggie shutdown
>    [java] NonActGrp-out: 24/12/2011 8:02:06 PM
> com.sun.jini.reggie.RegistrarImpl$DestroyThread run
>    [java] NonActGrp-out: INFO: Reggie shutdown completed
>    [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java] 24/12/2011 8:02:09 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java]
>    [java] TIME: 8:02:10 PM
>    [java]
>    [java] Test process was destroyed and returned code 1
>    [java] com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (20) != # of Events Expected (50)
>    [java]
>    [java]
>    [java] -----------------------------------------
>    [java]
>    [java] Running
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
>    [java] Time is Sat Dec 24 20:02:15 EST 2011
>    [java] Starting test in separate process with command:
>    [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java
> -Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy
> -Djava.rmi.server.codebase=http://bluto:9082/qa1-lookupservice-dl.jar -cp
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar
> -client
> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> -Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081
> -Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
> -Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar
> -Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar
> -Dcom.sun.jini.qa.harness.runjiniserver=true
> -Dcom.sun.jini.qa.harness.runkitserver=true
> -Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> -Dcom.sun.jini.qa.harness.testhosts=
> -Djava.util.logging.config.file=/home/peter/logging.properties
> -Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.test.port=9082
> -Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> com.sun.jini.qa.harness.MasterTest
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
>    [java]
>    [java] TIME: 8:02:17 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] ============================== CALLING SETUP()
> ==============================
>    [java]
>    [java] 24/12/2011 8:02:18 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
>    [java] 24/12/2011 8:02:19 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
>    [java] 24/12/2011 8:02:19 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
>    [java] NonActGrp-out: 24/12/2011 8:02:33 PM
> com.sun.jini.reggie.RegistrarImpl init
>    [java] NonActGrp-out: INFO: started Reggie:
> 26bb9126-c21f-4220-b2fd-9619dbb40538, [],
> ConstrainableLookupLocator[[jini://bluto/], [null]]
>    [java]
>    [java] TIME: 8:03:04 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] =============================== CALLING RUN()
> ===============================
>    [java]
>    [java] com.sun.jini.qa.harness.TestException: # of Events Received (19)
> != # of Events Expected (50)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.QATestUtils.verifyEventVector(QATestUtils.java:473)
>    [java]     at
> com.sun.jini.test.spec.lookupservice.test_set02.NotifyOnAttrSet.run(NotifyOnAttrSet.java:220)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
>    [java] MasterTest.doTest INFO:
>    [java] ============================ CALLING TEARDOWN()
> =============================
>    [java]
>    [java] NonActGrp-out: 24/12/2011 8:03:14 PM
> com.sun.jini.reggie.RegistrarImpl destroy
>    [java] NonActGrp-out: INFO: starting Reggie shutdown
>    [java] NonActGrp-out: 24/12/2011 8:03:15 PM
> com.sun.jini.reggie.RegistrarImpl$DestroyThread run
>    [java] NonActGrp-out: INFO: Reggie shutdown completed
>    [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java] 24/12/2011 8:03:16 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java]
>    [java] TIME: 8:03:17 PM
>    [java]
>    [java] Test process was destroyed and returned code 1
>    [java] com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (19) != # of Events Expected (50)
>    [java]
>    [java]
>    [java] -----------------------------------------
>    [java]
>    [java] Running
> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>    [java] Time is Sat Dec 24 20:03:22 EST 2011
>    [java] Starting test in separate process with command:
>    [java] /usr/jdk/instances/jdk1.6.0/jre/bin/java
> -Djava.security.policy=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.policy
> -Djava.rmi.server.codebase=http://bluto:9082/qa1-start-probe-dl.jar -cp
> /opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar:lib/qa1-start-tests.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-platform.jar:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib/jsk-lib.jar
> -client
> -Djava.ext.dirs=/usr/jdk/instances/jdk1.6.0/jre/lib/ext:/usr/jdk/packages/lib/ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> -Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081
> -Dcom.sun.jini.jsk.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy
> -Dcom.sun.jini.qa.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.qa.harness.harnessJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jiniharness.jar
> -Dcom.sun.jini.qa.harness.testJar=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/jinitests.jar
> -Dcom.sun.jini.qa.harness.runjiniserver=true
> -Dcom.sun.jini.qa.harness.runkitserver=true
> -Djava.security.properties=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties
> -Dcom.sun.jini.qa.harness.testhosts=
> -Djava.util.logging.config.file=/home/peter/logging.properties
> -Dcom.sun.jini.test.home=/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa
> -Dcom.sun.jini.test.port=9082
> -Dcom.sun.jini.qa.harness.policies=file:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/src/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/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib-ext:/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-ext
> com.sun.jini.qa.harness.MasterTest
> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>    [java]
>    [java] TIME: 8:03:25 PM
>    [java]
>    [java] MasterTest.doTest INFO:
>    [java] ============================== CALLING SETUP()
> ==============================
>    [java]
>    [java] 24/12/2011 8:03:26 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9081]
>    [java] 24/12/2011 8:03:26 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/lib-dl/], port 9080]
>    [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer run
>    [java] INFO: ClassServer started
> [[/opt/src/River_Fixed_2nd_Try/peterConcurrentPolicy/qa/lib/], port 9082]
>    [java] MasterTest.doTest INFO:
>    [java] =============================== CALLING RUN()
> ===============================
>    [java]
>    [java] java.security.AccessControlException: access denied
> (java.lang.RuntimePermission A)
>    [java]     at
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
>    [java]     at
> java.security.AccessController.checkPermission(AccessController.java:546)
>    [java]     at
> java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
>    [java]     at
> com.sun.jini.test.impl.start.aggregatepolicyprovider.CheckContextAction.run(CheckContextAction.java:35)
>    [java]     at
> com.sun.jini.start.AggregatePolicyProvider$AggregateSecurityContext$1.run(AggregatePolicyProvider.java:513)
>    [java]     at java.security.AccessController.doPrivileged(Native Method)
>    [java]     at
> com.sun.jini.test.impl.start.aggregatepolicyprovider.RestoreContext$Action.run(RestoreContext.java:30)
>    [java]     at java.security.AccessController.doPrivileged(Native Method)
>    [java]     at
> com.sun.jini.test.impl.start.aggregatepolicyprovider.RestoreContext.run(RestoreContext.java:38)
>    [java]     at
> com.sun.jini.test.impl.start.aggregatepolicyprovider.GetContextTest.run(GetContextTest.java:107)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.doTest(MasterTest.java:252)
>    [java]     at
> com.sun.jini.qa.harness.MasterTest.main(MasterTest.java:142)
>    [java] MasterTest.doTest INFO:
>    [java] ============================ CALLING TEARDOWN()
> =============================
>    [java]
>    [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9082]
>    [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9081]
>    [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java] 24/12/2011 8:03:27 PM com.sun.jini.tool.ClassServer terminate
>    [java] INFO: ClassServer terminated [port 9080]
>    [java]
>    [java] TIME: 8:03:28 PM
>    [java]
>    [java] Test process was destroyed and returned code 1
>    [java]
> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>    [java] Test Failed: Test Failed with an Unexpected Exception:
> java.security.AccessControlException: access denied
> (java.lang.RuntimePermission A)
>    [java]
>    [java]
>    [java] -----------------------------------------
>    [java]
>    [java] SUMMARY =================================
>    [java]
>    [java]
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (35) != # of Events Expected (50)
>    [java]
>    [java] -----------------------------------------
>    [java] com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (23) != # of Events Expected (50)
>    [java]
>    [java] -----------------------------------------
>    [java] com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (24) != # of Events Expected (50)
>    [java]
>    [java] -----------------------------------------
>    [java] com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (20) != # of Events Expected (50)
>    [java]
>    [java] -----------------------------------------
>    [java] com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
>    [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: #
> of Events Received (19) != # of Events Expected (50)
>    [java]
>    [java] -----------------------------------------
>    [java]
> com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
>    [java] Test Failed: Test Failed with an Unexpected Exception:
> java.security.AccessControlException: access denied
> (java.lang.RuntimePermission A)
>    [java]
>    [java] -----------------------------------------
>    [java]
>    [java] # of tests started   = 6
>    [java] # of tests completed = 6
>    [java] # of tests passed    = 0
>    [java] # of tests failed    = 6
>    [java]
>    [java] -----------------------------------------
>    [java]
>    [java]    Date finished:
>    [java]       Sat Dec 24 20:03:33 EST 2011
>    [java]    Time elapsed:
>    [java]       646 seconds
>    [java]
>    [java] Java Result: 1
>