Hi, I have possible bug report with threading and nested locks. When two threads are nested on the same lock and one (or both) of them sleeps inside the nest, an IllegalMonitorStateException will be thrown. The lock in question is allocated as a fast lock, however, when the sleep method is called it enters the slow lock code, and gets corrupted.
A simple test program is included below This program works under Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24), Java HotSpot(TM) Client VM (build 1.3.1- b24, mixed mode). It fails under kaffe-1.0.6. -----------------------------Program start--------------------------- /*************************************************************** COPYRIGHT NOTICE This file remains the intellectual property of: DCT Limited www.dctl.com Unit 5, Windmill Business Village Brooklands Close Sunbury-Upon-Thames, TW19 7DY All rights reserved. Copyright DCT Limited: 2002 ***************************************************************/ public class NestedLocks { public LockObj lock = new LockObj(); public NestedLocks() { new SecondThread().start(); synchronized(lock) { debug("(1) Got lock: " + lock); synchronized(lock) { debug("(2) Got lock: " + lock); try { Thread.sleep(500); } catch (InterruptedException ie) { debug("Sleep interrupted: "+ie); } debug("Slept for 500 ms"); } debug("(2) Released lock"); } debug("(1) Released lock"); } public void debug(String s) { System.out.println(s); } public static void main(String [] args) { new NestedLocks(); } /********* SECOND THREAD **********/ class SecondThread extends Thread { public void run() { synchronized(lock) { debug("T2:(1) Got lock: " + lock); try { Thread.sleep(500); } catch (InterruptedException ie) { debug("Sleep interrupted: "+ie); } debug("Slept for 500 ms"); } debug("T2:(1) Released lock"); } } } class LockObj { static int count = 0; int id; public LockObj() { id = count++; } public String toString() { return ("LOCK#"+id); } } --------------------------------------------------------------------- -- Paul Hounslow DCT Limited Email: [EMAIL PROTECTED] Tel: +44 1932 766515 Fax: +44 1932 782811 Web: http://www.dctl.com/ _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe