river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Firmstone <j...@zeus.net.au>
Subject Re: Help needed with concurrency bug
Date Tue, 27 Dec 2011 13:36:57 GMT
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 <jini@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
>>>>>
>>>>>     
>>>>
>>>>   
>>>
>>>
>>
>>
>
>


Mime
View raw message