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

Reply via email to