This is the mail archive of the
java-prs@gcc.gnu.org
mailing list for the Java project.
[Bug libgcj/16662] IllegalMonitorStateException in EventQueue.getNextEvent(): possible hash synchronization bug?
- From: "Hans dot Boehm at hp dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: java-prs at gcc dot gnu dot org
- Date: 5 Aug 2004 00:56:48 -0000
- Subject: [Bug libgcj/16662] IllegalMonitorStateException in EventQueue.getNextEvent(): possible hash synchronization bug?
- References: <20040721214713.16662.mckinlay@redhat.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From Hans dot Boehm at hp dot com 2004-08-05 00:56 -------
I'm looking at this, and trying to remember the intricacies of this code.
It appears that the faulting thread successfully acquired the heavyweight lock
on an object (presumably because the lightweight entry was used for another
object) and then another thread later acquired the lightweight lock on the same
object. This should of course be impossible.
Looking at the code, I noticed that _Jv_ObjectCheckMonitor appears broken. If
the address in the lightweight lock is zero, we may still hold a heavyweight
lock on the object. This can happen since the lightweight lock slots are
shared between objects. Thus it may have been in use when we first tried to
acquire the lock. But I don't know what relies on _Jv_ObjectCheckMonitor. I
would guess it has nothing to do with this problem.
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |Hans dot Boehm at hp dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16662