Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 60566

Summary: java.lang.Exception: ECLIPSE_CLASSLOADER_GENERATED_EXCEPTION
Product: [Eclipse Project] Platform Reporter: Jean-Michel Lemieux <jean-michel_lemieux>
Component: ResourcesAssignee: Platform-Resources-Inbox <platform-resources-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: gunnar, john.arthorne, pascal
Version: 3.0   
Target Milestone: 3.0 RC1   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Jean-Michel Lemieux CLA 2004-04-30 09:54:25 EDT
I20040428
Started the integration build on an existing workspace. I got the following
exception in my log. 

Threads "Thread[Worker-0,5,main]" and "main" are concurrently trying to start 
bundle org.eclipse.core.resources. Thread "Thread[Worker-0,5,main]" was trying
to load "org.eclipse.core.internal.localstore.CollectSyncStatusVisitor" which
now may have inconsistent values.
java.lang.Exception: ECLIPSE_CLASSLOADER_GENERATED_EXCEPTION
at
org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:104)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:369)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:400)
at
org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:93)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at
org.eclipse.osgi.framework.internal.defaultadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:294)
at
org.eclipse.core.runtime.adaptor.EclipseClassLoader.defineClass(EclipseClassLoader.java:205)
at
org.eclipse.osgi.framework.internal.defaultadaptor.DefaultClassLoader.findClassImpl(DefaultClassLoader.java:283)
at
org.eclipse.osgi.framework.internal.defaultadaptor.DefaultClassLoader.findClass(DefaultClassLoader.java:172)
at
org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.findLocalClass(AbstractClassLoader.java:220)
at
org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:106)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:369)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:400)
at
org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:93)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at
org.eclipse.core.internal.localstore.FileSystemResourceManager.isSynchronized(FileSystemResourceManager.java:366)
at org.eclipse.core.internal.resources.Resource.isSynchronized(Resource.java:1105)
at org.eclipse.core.internal.refresh.PollingMonitor.poll(PollingMonitor.java:141)
at org.eclipse.core.internal.refresh.PollingMonitor.run(PollingMonitor.java:105)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
Comment 1 Pascal Rapicault CLA 2004-04-30 10:20:16 EDT
This indicates a concurrent access to resources.
Moving to core, cc'ing John.
Comment 2 John Arthorne CLA 2004-04-30 11:56:27 EDT
This is going to be a problem.  ResourcesPlugin.startup() forks a job to
initialize the auto-refresh.  It is quite common to fork threads during a
plugin's startup method. Many plugins do this to get around synchronization
issues with startup() (i.e., you can't load executatable extensions during
startup, so a thread is forked to do it instead).
Comment 3 Gunnar Wagenknecht CLA 2004-05-11 03:32:24 EDT
Build I20040506

I got a lot more of those exceptions. Mostly they occure after a crash (hard 
kill of Eclipse because of a deadlock). Maybe the message can provide more 
hints to the problems? However from comment 2 I assume that this is problem in 
the class loader and the exception should not be thrown at all?



!ENTRY org.eclipse.osgi Mai 11, 2004 09:15:12.687
!MESSAGE Threads "Thread[Worker-0,5,main]" and "main" are concurrently trying 
to start  bundle org.eclipse.core.resources. Thread "Thread[Worker-0,5,main]" 
was trying to 
load "org.eclipse.core.internal.localstore.IsSynchronizedVisitor" which now 
may have inconsistent values.
!STACK 0
java.lang.Exception: Generated exception.
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass
(EclipseClassLoader.java:104)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass
(BundleLoader.java:369)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass
(BundleLoader.java:400)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass
(AbstractClassLoader.java:93)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at 
org.eclipse.core.internal.localstore.FileSystemResourceManager.isSynchronized
(FileSystemResourceManager.java:366)
    at org.eclipse.core.internal.resources.Resource.isSynchronized
(Resource.java:1105)
    at org.eclipse.core.internal.refresh.PollingMonitor.poll
(PollingMonitor.java:141)
    at org.eclipse.core.internal.refresh.PollingMonitor.run
(PollingMonitor.java:105)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
!ENTRY org.eclipse.osgi Mai 11, 2004 09:15:17.687
!MESSAGE Threads "Thread[Worker-0,5,main]" and "main" are concurrently trying 
to start  bundle org.eclipse.core.resources. Thread "Thread[Worker-0,5,main]" 
was trying to 
load "org.eclipse.core.internal.localstore.CollectSyncStatusVisitor" which now 
may have inconsistent values.
!STACK 0
java.lang.Exception: Generated exception.
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass
(EclipseClassLoader.java:104)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass
(BundleLoader.java:369)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass
(BundleLoader.java:400)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass
(AbstractClassLoader.java:93)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
    at 
org.eclipse.osgi.framework.internal.defaultadaptor.DefaultClassLoader.defineCla
ss(DefaultClassLoader.java:294)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.defineClass
(EclipseClassLoader.java:205)
    at 
org.eclipse.osgi.framework.internal.defaultadaptor.DefaultClassLoader.findClass
Impl(DefaultClassLoader.java:283)
    at 
org.eclipse.osgi.framework.internal.defaultadaptor.DefaultClassLoader.findClass
(DefaultClassLoader.java:172)
    at 
org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.findLocalClass
(AbstractClassLoader.java:220)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass
(EclipseClassLoader.java:106)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass
(BundleLoader.java:369)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass
(BundleLoader.java:400)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass
(AbstractClassLoader.java:93)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at 
org.eclipse.core.internal.localstore.FileSystemResourceManager.isSynchronized
(FileSystemResourceManager.java:366)
    at org.eclipse.core.internal.resources.Resource.isSynchronized
(Resource.java:1105)
    at org.eclipse.core.internal.refresh.PollingMonitor.poll
(PollingMonitor.java:141)
    at org.eclipse.core.internal.refresh.PollingMonitor.run
(PollingMonitor.java:105)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
!ENTRY org.eclipse.osgi Mai 11, 2004 09:15:32.968
!MESSAGE Threads "Thread[Worker-3,5,main]" and "Worker-0" are concurrently 
trying to start  bundle net.sourceforge.eclipseccase. Thread "Thread[Worker-
3,5,main]" was trying to 
load "net.sourceforge.eclipseccase.StateCacheFactory$3" which now may have 
inconsistent values.
!STACK 0
java.lang.Exception: Generated exception.
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass
(EclipseClassLoader.java:104)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass
(BundleLoader.java:369)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass
(BundleLoader.java:400)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass
(AbstractClassLoader.java:93)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at net.sourceforge.eclipseccase.StateCacheFactory.isAffectedBy
(StateCacheFactory.java:494)
    at net.sourceforge.eclipseccase.StateCacheFactory.resourceChanged
(StateCacheFactory.java:401)
    at org.eclipse.core.internal.events.NotificationManager$2.run
(NotificationManager.java:268)
    at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:604)
    at org.eclipse.core.runtime.Platform.run(Platform.java:545)
    at org.eclipse.core.internal.events.NotificationManager.notify
(NotificationManager.java:260)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges
(NotificationManager.java:148)
    at org.eclipse.core.internal.resources.Workspace.broadcastChanges
(Workspace.java:159)
    at org.eclipse.core.internal.resources.Workspace.endOperation
(Workspace.java:884)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild
(AutoBuildJob.java:157)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:189)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
!ENTRY org.eclipse.osgi Mai 11, 2004 09:15:37.968
!MESSAGE Threads "Thread[Worker-3,5,main]" and "Worker-0" are concurrently 
trying to start  bundle net.sourceforge.eclipseccase. Thread "Thread[Worker-
3,5,main]" was trying to 
load "net.sourceforge.eclipseccase.StateCacheFactory$2" which now may have 
inconsistent values.
!STACK 0
java.lang.Exception: Generated exception.
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass
(EclipseClassLoader.java:104)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass
(BundleLoader.java:369)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass
(BundleLoader.java:400)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass
(AbstractClassLoader.java:93)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at net.sourceforge.eclipseccase.StateCacheFactory.resourceChanged
(StateCacheFactory.java:403)
    at org.eclipse.core.internal.events.NotificationManager$2.run
(NotificationManager.java:268)
    at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:604)
    at org.eclipse.core.runtime.Platform.run(Platform.java:545)
    at org.eclipse.core.internal.events.NotificationManager.notify
(NotificationManager.java:260)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges
(NotificationManager.java:148)
    at org.eclipse.core.internal.resources.Workspace.broadcastChanges
(Workspace.java:159)
    at org.eclipse.core.internal.resources.Workspace.endOperation
(Workspace.java:884)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild
(AutoBuildJob.java:157)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:189)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)

Comment 4 Pascal Rapicault CLA 2004-05-11 09:11:19 EDT
This kind of message indicates race conditions to startup a plugin. It is 
therefore not a problem in the classloader but in the plugin that is indicated.

What you get here is as much information as you can get, and represents all the 
information available to the runtime at this moment.
The stack trace is generated so the people who are "pointed out" in the 
messages can get more context on what is going on.




The problem is reported by the classloader but is actually a contention in the 
activation of the resource plugin.
Comment 5 John Arthorne CLA 2004-05-26 10:15:06 EDT
*** Bug 64035 has been marked as a duplicate of this bug. ***
Comment 6 John Arthorne CLA 2004-05-26 10:15:29 EDT
*** Bug 64036 has been marked as a duplicate of this bug. ***
Comment 7 John Arthorne CLA 2004-05-27 11:58:29 EDT
Fixed. This was caused by the autorefresh polling job starting concurrently with
the resources plugin startup. Note that this is not actually a problem - there
is no reason why other threads cannot run concurrently with the resources plugin
startup sequence. To avoid the exception in the log, I have added a ten second
delay to the first execution of the polling job. This will make it much less
likely that it will conflict with the resources plugin startup.