Community
Participate
Working Groups
3.0.1 200409010800 (please note VM) I am getting this once in a while. The stack trace shows an IllegalMonitorStateException (usually caused by calling wait/notify on a monitor not owned by the current thread). Looking at the source code bundled with that VM drop, there are no calls to wait/notify. Actually, this class is not supposed to do any synchronization as stated by the Javadoc. So maybe the stack trace is not accurate due to jitting/inlining, and the synchronizaion related code comes from elsewhere (Calendar?). That being said: are you guys sharing a single date format object among multiple threads? That would be wrong. I already had problems with this in the past (Sun's class libraries), and the effect was just corrupted dates being generated. If you don't share them between two or more threads, then this could be a bug in the class library/VM. !SESSION Sep 07, 2004 10:51:11.692 --------------------------------------------- eclipse.buildId=M200409010800 java.fullversion=J2RE 1.4.2 IBM J9 2.2 Windows XP x86-32 j9n142-20040831 (JIT enabled) J9VM - 20040827_2136_lHdSMR JIT - r7_level20040827_1801 BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_CA Command-line arguments: -keyring d:\temp\.keyring -showlocation !ENTRY org.eclipse.core.runtime 4 2 Sep 09, 2004 14:59:16.624 !MESSAGE An internal error occurred during: "CVS Compare 'R3_0' (/org.eclipse.jface, /org.eclipse.jface.text, /org.eclipse.text, /org.eclipse.ui, /org.eclipse.ui.editors, /org.eclipse.ui.ide, /org.eclipse.ui.tests, /org.eclipse.ui.views, /org.eclipse.ui.workbench, /org.eclipse.ui.workbench.texteditor)". !STACK 0 java.lang.IllegalMonitorStateException at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1249) at java.text.DateFormat.parse(DateFormat.java:345) at org.eclipse.team.internal.ccvs.core.util.CVSDateFormatter.entryLineToDate(DateFormat.java) at org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo.setEntryLine(DateFormat.java) at org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo.<init>(Unknown Source) at org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo.<init>(Unknown Source) at org.eclipse.team.internal.ccvs.core.resources.RemoteFile.getSyncInfo(Unknown Source) at org.eclipse.team.internal.ccvs.core.resources.RemoteFile.getTimeStamp(Unknown Source) at org.eclipse.team.internal.ccvs.core.client.AbstractStructureVisitor.sendFile(Unknown Source) at org.eclipse.team.internal.ccvs.core.client.FileStructureVisitor.visitFile(Unknown Source) at org.eclipse.team.internal.ccvs.core.resources.RemoteFile.accept(Unknown Source) at org.eclipse.team.internal.ccvs.core.client.AbstractStructureVisitor.visit(Unknown Source) at org.eclipse.team.internal.ccvs.core.client.Command.sendFileStructure(Unknown Source) at org.eclipse.team.internal.ccvs.core.client.Update.sendLocalResourceState(Unknown Source) at org.eclipse.team.internal.ccvs.core.client.Command.doExecute(Unknown Source) at org.eclipse.team.internal.ccvs.core.client.Update.doExecute(Unknown Source) at org.eclipse.team.internal.ccvs.core.client.Command$1.run(Unknown Source) at org.eclipse.team.internal.ccvs.core.resources.RemoteFolder.run(Unknown Source) at org.eclipse.team.internal.ccvs.core.client.Command.execute(Unknown Source) at org.eclipse.team.internal.ccvs.core.resources.FileContentCachingService.cacheFileContents(Unknown Source) at org.eclipse.team.internal.ccvs.core.resources.FileContentCachingService.buildRemoteTree(Unknown Source) at org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot.getRemoteTree(Unknown Source) at org.eclipse.team.internal.ccvs.core.syncinfo.CVSResourceVariantTree.fetchVariant(Unknown Source) at org.eclipse.team.core.variants.AbstractResourceVariantTree.refresh(Unknown Source) at org.eclipse.team.internal.ccvs.core.syncinfo.CVSResourceVariantTree.refresh(Unknown Source) at org.eclipse.team.core.variants.AbstractResourceVariantTree.refresh(Unknown Source) at org.eclipse.team.core.variants.ResourceVariantTreeSubscriber.refresh(Unknown Source) at org.eclipse.team.core.variants.ResourceVariantTreeSubscriber.refresh(Unknown Source) at org.eclipse.team.internal.ui.synchronize.RefreshSubscriberJob.run(Unknown Source) at org.eclipse.core.internal.jobs.Worker.run(Unknown Source)
After this problem happens, no other RefreshSubscriberJob will be able to run (stays at 0% for ever). Only restarting Eclipse (killing the current instance) allows me to continue working.
This must be a bug in the VM. Access to the dat formatter is synchronized so it is not possible for multiple threads to access the formatter concurrently. I'm not sure what to do with VM bugs so I'll leave it open for now.
We're tracking the potential VM problem with IllegalMonitorStateExceptions in bug 73226.
I just got this one as well.
*** Bug 75321 has been marked as a duplicate of this bug. ***
I just got this on R3.0.1 when I started a CVS compare and had to provide a password before the operation could begin... after I entered the password and pressed OK the error occured.
See comment in bug 73226
*** Bug 88704 has been marked as a duplicate of this bug. ***