river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Patricia Shanahan <p...@acm.org>
Subject Re: Help needed with concurrency bug
Date Tue, 27 Dec 2011 09:56:16 GMT
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