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 12:08:20 GMT
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 <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