Bug 483224 - Saving modified java files causes eclipse performance to slow to a crawl
Summary: Saving modified java files causes eclipse performance to slow to a crawl
Status: NEW
Alias: None
Product: AspectJ
Classification: Tools
Component: IDE (show other bugs)
Version: 1.8.7   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Generic inbox for the JDT-APT component CLA
QA Contact: Jay Arthanareeswaran CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-11-29 02:24 EST by Jason Ridge CLA
Modified: 2021-08-25 20:33 EDT (History)
5 users (show)

See Also:


Attachments
Thread dump during the hang (69.79 KB, application/octet-stream)
2015-11-29 02:24 EST, Jason Ridge CLA
no flags Details
Memory snapshot during the hang (229.57 KB, application/octet-stream)
2015-11-29 02:25 EST, Jason Ridge CLA
no flags Details
cpu snapshot during the hang (7.50 KB, application/octet-stream)
2015-11-29 02:25 EST, Jason Ridge CLA
no flags Details
eclipse log file during this time (491.53 KB, application/octet-stream)
2015-11-29 02:31 EST, Jason Ridge CLA
no flags Details
Eclipse configuration file in use (722 bytes, application/octet-stream)
2015-12-01 22:00 EST, Jason Ridge CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Ridge CLA 2015-11-29 02:24:29 EST
Created attachment 258331 [details]
Thread dump during the hang

I can't pin-point what exactly is causing the problem but here is the situation:

1) Spring Java Project (Spring ROO, Spring 4, aspectJ, html, javascript)
2) Changing Java objects (especially annotated objects such as Spring MVC controllers, or Roo domain objects) and saving will eventually lead to a "Deleting aspects..." job as the project build automaticlly.
3) Saving again (possibly a few times) while a build is in progress results in eclipse to start responding slow and progressing to near-hung (meaning a click is processed, but only after mins of duration have passed).

While it appears all the running jobs have stopped I'm able to eventually bring up "Show sleeping and system operations" in the progress view. In this view, I can see a "building workspace (waiting)" which isn't present on the default progress view. Along with this there are decoration calculations, ear lib updates, find node job (waiting), and other sleeping jobs.

I did what I could to capture the state using the Java VisualVM and I'm attaching a tread dump, memory snapshot, and cpu snapshot. I hope it helps, as I've been experiencing this problem over multiple versions of eclipse for about three years. I've just finally made the time to capture additional information to help pinpoint the problem.

If you need more information or would like me to run some other debugging step let me know and I'm sure I can get into the same state quickly enough.
Comment 1 Jason Ridge CLA 2015-11-29 02:25:11 EST
Created attachment 258332 [details]
Memory snapshot during the hang
Comment 2 Jason Ridge CLA 2015-11-29 02:25:36 EST
Created attachment 258333 [details]
cpu snapshot during the hang
Comment 3 Jason Ridge CLA 2015-11-29 02:31:08 EST
Created attachment 258334 [details]
eclipse log file during this time
Comment 4 Walter Harley CLA 2015-11-29 20:22:34 EST
Looking at the log and at that thread dump, it doesn't seem like anything is *wrong* per se - for instance, no deadlock, no stack dives.  No smoking gun.  It just seems like the system is having a hard time scheduling jobs - almost as if the whole process is running out of physical RAM and swapping to virtual, or something like that.

How much memory have you allocated for Eclipse?  If you've got a large project, I wonder whether you might need more; the default settings in eclipse.ini are not very generous.  Conversely if you have allocated more than is physically available, it will also not be happy.

You mentioned that you've encountered the problem over several years and several versions of Eclipse.  Are there any other patterns that you can identify?  For instance, does it happen more with larger projects, or when you are using certain plugins or language features?

If you take a couple of thread dumps a few seconds apart, do the RUNNABLE threads stay the same and at the same spot, or does it move around?
Comment 5 Jason Ridge CLA 2015-12-01 22:00:27 EST
Created attachment 258406 [details]
Eclipse configuration file in use
Comment 6 Jason Ridge CLA 2015-12-01 22:40:19 EST
Added the configuration file I'm currently using. Note that the configuration has varied over the years (lower/higher) as I've tried to see if changing the settings had an impact. 

So far, lower or higher, the slowness still happens.

When the problem starts up, it is always with a project that includes aspects that are normally generated based on annotations from a build process or external tool (such as Spring Roo generating the finder methods for a domain or the toJson methods).

It doesn't seem related to the actual generation, but more around what eclipse does after the files are generated. Deleting and updating aspect references for example.

It feels like there is a process running that is trying to refresh things and gets triggered by a file that is always updating although it is difficult to tell.

Another aspect I forgot to mention is that I have pulled out the jpt plugin/features to get around a very similar problem where eclipse would hang with seemingly unlimited "JPA Project Change Event Handler (waiting)" jobs.

Removed plugins/org.eclipse.jpt.* and features/org.eclipse.jpt.* disabled/features. This stack overflow has most of the info on that problem: http://stackoverflow.com/questions/19649847/eclipse-kepler-jpa-project-change-event-handler-waiting

Might be the same problem - but moved to a different location or reason as well. Removing the jpt plugin stops the very frequent "JPA Project Change Event Handler" issues, but ends up with the one I reported here (which is less frequent, happening when a lot of file saves happen that effect classes with aspects).

I'll do what you mentioned and try and grab a few thread dumps. 

To give an idea on project size there are 492 aspect JS files in the project mostly associated with the 51 domain objects. Of course, quite a few other java files for business logic. 

I'll update with the new dumps soon as I can. Thanks for digging into the problem.
Comment 7 Walter Harley CLA 2015-12-06 17:50:47 EST
I wonder whether this needs to go over to the AspectJ component.  If the issue is not related to the performance of the JDT during the annotation processing itself (e.g., the time it takes to fetch type information or write new files), that suggests it doesn't belong in JDT Annotation Processing Tooling area.
Comment 8 Jason Ridge CLA 2015-12-10 00:51:11 EST
Per suggestion, switching to AspectJ
Comment 9 Jason Ridge CLA 2015-12-10 00:53:40 EST
Moved to AspectJ from suggestion the issue might be within the AspectJ tools. 

I only encounter this problem while running the IDE and eclipse (via Spring Source Tool Suite delivery) about lists aspecJ tools as:

Version: 1.8.7.20150910082200
AspectJ version: 1.8.7.20150910082200
Comment 10 Jason Ridge CLA 2016-01-01 15:52:21 EST
Some update:

I see the slowdown/freeze happen when progress reports "delete and update aspectj markers"

I've switched to AJDT update site http://download.eclipse.org/tools/ajdt/45/dev/update and pulled in the latest. Hopefully this might address some of the issues. I'll report back if I see any change.
Comment 11 Jason Ridge CLA 2016-01-01 15:52:48 EST
Some update:

I see the slowdown/freeze happen when progress reports "delete and update aspectj markers"

I've switched to AJDT update site http://download.eclipse.org/tools/ajdt/45/dev/update and pulled in the latest. Hopefully this might address some of the issues. I'll report back if I see any change.
Comment 12 Andrew Clement CLA 2016-01-05 18:51:18 EST
It is possible you could see more clues in the AJDT Console view - open it using the pull down in the console view then you can turn on extra categories of event. Then go through the process of creating your situation and we might be able to see something in there.
Comment 13 Jason Ridge CLA 2019-08-06 00:31:21 EDT
Updating this with some new information that I discovered today, and could point to this not even related to AspectJ but really just causes due to a build kick-off after Aspects are updated - my reasoning on it might not be AspectJ specificlly is because in the project I decreased the number of aspects to the very minimum needed and experiencing the the non-stop "Find Node Job" processes didn't seem effected by having less.

Note that the "Find Node Job" process seems related to other repeating process problems such as "JPA Project Change Event Handler (waiting)" and "Remote System Explorer" never ending processes. Note that I "think" the "JPA Project Change Event Handler (waiting)" side was fixed, leaving "Find Node Job" as the next thing - but I unfortunantly can't tie them all together to be sure.

In any event, what I did:

1) Open global eclipse settings to: General->Workspace->Build
2) Unchecked "Use default build order" 
3) Removed the "Servers" project that is created when a tomcat server is setup for debugging in eclipse.

Once I hit "Apply and Close" the seemingly non-stop "Find Node Job" processes cleaned up and stopped repeating. Since then, I haven't seen the job processes repeat non-stop.

It was a stackoverflow.com post:
https://stackoverflow.com/questions/1631817/remote-system-explorer-operation-causing-freeze-for-couple-of-seconds

In that post, someone recommended "Go to the preferences ,and remove the project 'RemoteSystemsTempFiles'; Path: Windows -> preferences -> Workspace -> Build Order, uncheck 'use default build order', remove the project ,apply . Maybe your question will be solved." 

While my system didn't have the RemoteSystemsTempFiles project listed, my co-worker's did. We removed it but it didn't seem to have any real effect. So, just trying things out I removed Servers on my system when I encountered the repeating "Find Node Job" 
process. It had the immediate effect of stopping the repeating process and not showing it again.

The hunch, is that it might be during the build process a "Publish to server" action or something similar to that is happening and due to the large amount of files being pushed over (note that the project has a lot of static HTML/JS/CSS files in it) it causes the triggering of a "change" and re-build. So, the process might not be "non-stop", but just taking a VERY long time (a theory someone had when looking at a stack dump).

In any event, I wanted to update this issue with this information and then try and see where the bug should travel from here (and maybe even close for AspectJ as it might not be directly related). Instead, it might be a part of or an addition to these other defects reported (the JPA one is flagged as fixed btw):

https://bugs.eclipse.org/bugs/show_bug.cgi?id=386171
https://bugs.eclipse.org/bugs/show_bug.cgi?id=417032

Hope this helps in anyway. I can always create a new bug write up somewhere if that seems like the best action from here. Wish I could help debug this, but I'm not setup to debug eclipse at the moment and time isn't easy to come by. If I can do anything else, let me know.



https://stackoverflow.com/questions/19649847/eclipse-jpa-project-change-event-handler-waiting
https://bugs.eclipse.org/bugs/show_bug.cgi?id=386171
Comment 14 Jason Ridge CLA 2019-08-06 00:34:07 EDT
(In reply to Jason Ridge from comment #13)
> Updating this with some new information that I discovered today, and could
> point to this not even related to AspectJ but really just causes due to a
> build kick-off after Aspects are updated - my reasoning on it might not be
> AspectJ specificlly is because in the project I decreased the number of
> aspects to the very minimum needed and experiencing the the non-stop "Find
> Node Job" processes didn't seem effected by having less.
> 
> Note that the "Find Node Job" process seems related to other repeating
> process problems such as "JPA Project Change Event Handler (waiting)" and
> "Remote System Explorer" never ending processes. Note that I "think" the
> "JPA Project Change Event Handler (waiting)" side was fixed, leaving "Find
> Node Job" as the next thing - but I unfortunantly can't tie them all
> together to be sure.
> 
> In any event, what I did:
> 
> 1) Open global eclipse settings to: General->Workspace->Build
> 2) Unchecked "Use default build order" 
> 3) Removed the "Servers" project that is created when a tomcat server is
> setup for debugging in eclipse.
> 
> Once I hit "Apply and Close" the seemingly non-stop "Find Node Job"
> processes cleaned up and stopped repeating. Since then, I haven't seen the
> job processes repeat non-stop.
> 
> It was a stackoverflow.com post:
> https://stackoverflow.com/questions/1631817/remote-system-explorer-operation-
> causing-freeze-for-couple-of-seconds
> 
> In that post, someone recommended "Go to the preferences ,and remove the
> project 'RemoteSystemsTempFiles'; Path: Windows -> preferences -> Workspace
> -> Build Order, uncheck 'use default build order', remove the project ,apply
> . Maybe your question will be solved." 
> 
> While my system didn't have the RemoteSystemsTempFiles project listed, my
> co-worker's did. We removed it but it didn't seem to have any real effect.
> So, just trying things out I removed Servers on my system when I encountered
> the repeating "Find Node Job" 
> process. It had the immediate effect of stopping the repeating process and
> not showing it again.
> 
> The hunch, is that it might be during the build process a "Publish to
> server" action or something similar to that is happening and due to the
> large amount of files being pushed over (note that the project has a lot of
> static HTML/JS/CSS files in it) it causes the triggering of a "change" and
> re-build. So, the process might not be "non-stop", but just taking a VERY
> long time (a theory someone had when looking at a stack dump).
> 
> In any event, I wanted to update this issue with this information and then
> try and see where the bug should travel from here (and maybe even close for
> AspectJ as it might not be directly related). Instead, it might be a part of
> or an addition to these other defects reported (the JPA one is flagged as
> fixed btw):
> 
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=386171
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=417032
> 
> Hope this helps in anyway. I can always create a new bug write up somewhere
> if that seems like the best action from here. Wish I could help debug this,
> but I'm not setup to debug eclipse at the moment and time isn't easy to come
> by. If I can do anything else, let me know.
> 
> 
> 
> https://stackoverflow.com/questions/19649847/eclipse-jpa-project-change-
> event-handler-waiting
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=386171

I forgot to mention, this was done in the Spring Source Tool Suite 4 based on Eclipse Platform, Version: 4.12.0.v20190605-1801, Build id: I20190605-1800
Comment 15 Jason Ridge CLA 2021-08-25 20:32:34 EDT
Have the Error Log report for a long UI freeze to see if this helps in identifying the cause. The UI freeze varies a bit depending upon source files being saved, however, the delay is always far longer than should be expected.

This always happens after CTRL+CLICK into an object in my source file that is in a library (the .class file file is opened instead of the .java file).

UI freeze of 21s at 19:20:41.206

Sample at 19:21:01.623 (+2.992s)
Thread 'main' tid=1 (RUNNABLE)
Stack Trace
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:135)
	at org.eclipse.core.internal.resources.MarkerManager.visitorFindMarkers(MarkerManager.java:611)
	at org.eclipse.core.internal.resources.MarkerManager.doFindMarkers(MarkerManager.java:290)
	at org.eclipse.core.internal.resources.MarkerManager.findMarkers(MarkerManager.java:274)
	at org.eclipse.core.internal.resources.Resource.findMarkers(Resource.java:988)
	at de.tobject.findbugs.reporter.MarkerUtil.getMarkers(MarkerUtil.java:998)
	at de.tobject.findbugs.builder.WorkItem.getMarkers(WorkItem.java:307)
	at de.tobject.findbugs.builder.WorkItem.getMarkerCount(WorkItem.java:282)
	at de.tobject.findbugs.decorators.ResourceBugCountDecorator.decorateText(ResourceBugCountDecorator.java:56)
	at org.eclipse.ui.internal.decorators.FullDecoratorDefinition.decorateText(FullDecoratorDefinition.java:128)
	at org.eclipse.ui.internal.decorators.FullTextDecoratorRunnable.run(FullTextDecoratorRunnable.java:26)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.decorators.DecoratorManager.safeDecorateText(DecoratorManager.java:456)
	at org.eclipse.ui.internal.decorators.DecoratorManager.decorateText(DecoratorManager.java:420)
	at org.eclipse.ui.internal.decorators.DecoratorManager$ManagedWorkbenchLabelDecorator.decorateText(DecoratorManager.java:150)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.getStyledText(DecoratingStyledCellLabelProvider.java:205)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider._update(DelegatingStyledCellLabelProvider.java:109)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.update(DelegatingStyledCellLabelProvider.java:112)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.update(DecoratingStyledCellLabelProvider.java:134)
	at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:144)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:959)
	at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:126)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$107/0x0000000800dc5c40.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1037)
	at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:427)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$107/0x0000000800dc5c40.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2111)
	at org.eclipse.jface.viewers.StructuredViewer.internalUpdate(StructuredViewer.java:2094)
	at org.eclipse.jface.viewers.StructuredViewer.update(StructuredViewer.java:2035)
	at org.eclipse.jface.viewers.ColumnViewer.update(ColumnViewer.java:545)
	at org.eclipse.jface.viewers.StructuredViewer.update(StructuredViewer.java:1979)
	at org.eclipse.jface.viewers.StructuredViewer.handleLabelProviderChanged(StructuredViewer.java:1158)
	at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.handleLabelProviderChanged(ProblemTreeViewer.java:206)
	at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged(ContentViewer.java:95)
	at org.eclipse.jface.viewers.BaseLabelProvider$1.run(BaseLabelProvider.java:75)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$107/0x0000000800dc5c40.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.BaseLabelProvider.fireLabelProviderChanged(BaseLabelProvider.java:72)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider$$Lambda$508/0x0000000801301e08.labelProviderChanged(Unknown Source)
	at org.eclipse.ui.internal.decorators.DecoratorManager$1.run(DecoratorManager.java:347)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.decorators.DecoratorManager.fireListener(DecoratorManager.java:344)
	at org.eclipse.ui.internal.decorators.DecorationScheduler$3.runInUIThread(DecorationScheduler.java:525)
	at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95)
	at org.eclipse.ui.progress.UIJob$$Lambda$1131/0x0000000801aa5630.run(Unknown Source)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4001)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3629)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1157)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
	at org.eclipse.ui.internal.Workbench$$Lambda$195/0x0000000800eacdc8.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base@16.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@16.0.1/java.lang.reflect.Method.invoke(Method.java:567)
	at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:654)
	at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at app//org.eclipse.equinox.launcher.Main.run(Main.java:1462)

Sample at 19:20:58.631 (+4.400s)
Thread 'main' tid=1 (RUNNABLE)
Stack Trace
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:135)
	at org.eclipse.core.internal.resources.MarkerManager.visitorFindMarkers(MarkerManager.java:611)
	at org.eclipse.core.internal.resources.MarkerManager.doFindMarkers(MarkerManager.java:290)
	at org.eclipse.core.internal.resources.MarkerManager.findMarkers(MarkerManager.java:274)
	at org.eclipse.core.internal.resources.Resource.findMarkers(Resource.java:988)
	at de.tobject.findbugs.reporter.MarkerUtil.getMarkers(MarkerUtil.java:998)
	at de.tobject.findbugs.builder.WorkItem.getMarkers(WorkItem.java:307)
	at de.tobject.findbugs.builder.WorkItem.getMarkerCount(WorkItem.java:282)
	at de.tobject.findbugs.decorators.ResourceBugCountDecorator.decorateText(ResourceBugCountDecorator.java:56)
	at org.eclipse.ui.internal.decorators.FullDecoratorDefinition.decorateText(FullDecoratorDefinition.java:128)
	at org.eclipse.ui.internal.decorators.FullTextDecoratorRunnable.run(FullTextDecoratorRunnable.java:26)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.decorators.DecoratorManager.safeDecorateText(DecoratorManager.java:456)
	at org.eclipse.ui.internal.decorators.DecoratorManager.decorateText(DecoratorManager.java:420)
	at org.eclipse.ui.internal.decorators.DecoratorManager$ManagedWorkbenchLabelDecorator.decorateText(DecoratorManager.java:150)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.getStyledText(DecoratingStyledCellLabelProvider.java:205)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider._update(DelegatingStyledCellLabelProvider.java:109)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.update(DelegatingStyledCellLabelProvider.java:112)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.update(DecoratingStyledCellLabelProvider.java:134)
	at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:144)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:959)
	at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:126)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$107/0x0000000800dc5c40.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1037)
	at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:427)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$107/0x0000000800dc5c40.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2111)
	at org.eclipse.jface.viewers.StructuredViewer.internalUpdate(StructuredViewer.java:2094)
	at org.eclipse.jface.viewers.StructuredViewer.update(StructuredViewer.java:2035)
	at org.eclipse.jface.viewers.ColumnViewer.update(ColumnViewer.java:545)
	at org.eclipse.jface.viewers.StructuredViewer.update(StructuredViewer.java:1979)
	at org.eclipse.jface.viewers.StructuredViewer.handleLabelProviderChanged(StructuredViewer.java:1158)
	at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.handleLabelProviderChanged(ProblemTreeViewer.java:206)
	at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged(ContentViewer.java:95)
	at org.eclipse.jface.viewers.BaseLabelProvider$1.run(BaseLabelProvider.java:75)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$107/0x0000000800dc5c40.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.BaseLabelProvider.fireLabelProviderChanged(BaseLabelProvider.java:72)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider$$Lambda$508/0x0000000801301e08.labelProviderChanged(Unknown Source)
	at org.eclipse.ui.internal.decorators.DecoratorManager$1.run(DecoratorManager.java:347)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.decorators.DecoratorManager.fireListener(DecoratorManager.java:344)
	at org.eclipse.ui.internal.decorators.DecorationScheduler$3.runInUIThread(DecorationScheduler.java:525)
	at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95)
	at org.eclipse.ui.progress.UIJob$$Lambda$1131/0x0000000801aa5630.run(Unknown Source)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4001)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3629)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1157)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
	at org.eclipse.ui.internal.Workbench$$Lambda$195/0x0000000800eacdc8.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base@16.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@16.0.1/java.lang.reflect.Method.invoke(Method.java:567)
	at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:654)
	at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at app//org.eclipse.equinox.launcher.Main.run(Main.java:1462)

Sample at 19:20:54.231 (+13.025s)
Thread 'main' tid=1 (RUNNABLE)
Stack Trace
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)
	at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:135)
	at org.eclipse.core.internal.resources.MarkerManager.visitorFindMarkers(MarkerManager.java:611)
	at org.eclipse.core.internal.resources.MarkerManager.doFindMarkers(MarkerManager.java:290)
	at org.eclipse.core.internal.resources.MarkerManager.findMarkers(MarkerManager.java:274)
	at org.eclipse.core.internal.resources.Resource.findMarkers(Resource.java:988)
	at de.tobject.findbugs.reporter.MarkerUtil.getMarkers(MarkerUtil.java:998)
	at de.tobject.findbugs.builder.WorkItem.getMarkers(WorkItem.java:307)
	at de.tobject.findbugs.builder.WorkItem.getMarkerCount(WorkItem.java:282)
	at de.tobject.findbugs.decorators.ResourceBugCountDecorator.decorateText(ResourceBugCountDecorator.java:56)
	at org.eclipse.ui.internal.decorators.FullDecoratorDefinition.decorateText(FullDecoratorDefinition.java:128)
	at org.eclipse.ui.internal.decorators.FullTextDecoratorRunnable.run(FullTextDecoratorRunnable.java:26)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.decorators.DecoratorManager.safeDecorateText(DecoratorManager.java:456)
	at org.eclipse.ui.internal.decorators.DecoratorManager.decorateText(DecoratorManager.java:420)
	at org.eclipse.ui.internal.decorators.DecoratorManager$ManagedWorkbenchLabelDecorator.decorateText(DecoratorManager.java:150)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.getStyledText(DecoratingStyledCellLabelProvider.java:205)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider._update(DelegatingStyledCellLabelProvider.java:109)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.update(DelegatingStyledCellLabelProvider.java:112)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.update(DecoratingStyledCellLabelProvider.java:134)
	at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:144)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:959)
	at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:126)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$107/0x0000000800dc5c40.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1037)
	at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:427)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$107/0x0000000800dc5c40.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2111)
	at org.eclipse.jface.viewers.StructuredViewer.internalUpdate(StructuredViewer.java:2094)
	at org.eclipse.jface.viewers.StructuredViewer.update(StructuredViewer.java:2035)
	at org.eclipse.jface.viewers.ColumnViewer.update(ColumnViewer.java:545)
	at org.eclipse.jface.viewers.StructuredViewer.update(StructuredViewer.java:1979)
	at org.eclipse.jface.viewers.StructuredViewer.handleLabelProviderChanged(StructuredViewer.java:1158)
	at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.handleLabelProviderChanged(ProblemTreeViewer.java:206)
	at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged(ContentViewer.java:95)
	at org.eclipse.jface.viewers.BaseLabelProvider$1.run(BaseLabelProvider.java:75)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$107/0x0000000800dc5c40.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.BaseLabelProvider.fireLabelProviderChanged(BaseLabelProvider.java:72)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider$$Lambda$508/0x0000000801301e08.labelProviderChanged(Unknown Source)
	at org.eclipse.ui.internal.decorators.DecoratorManager$1.run(DecoratorManager.java:347)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.decorators.DecoratorManager.fireListener(DecoratorManager.java:344)
	at org.eclipse.ui.internal.decorators.DecorationScheduler$3.runInUIThread(DecorationScheduler.java:525)
	at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95)
	at org.eclipse.ui.progress.UIJob$$Lambda$1131/0x0000000801aa5630.run(Unknown Source)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4001)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3629)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1157)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
	at org.eclipse.ui.internal.Workbench$$Lambda$195/0x0000000800eacdc8.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base@16.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@16.0.1/java.lang.reflect.Method.invoke(Method.java:567)
	at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:654)
	at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at app//org.eclipse.equinox.launcher.Main.run(Main.java:1462)

If you think any other info would be useful let me know and how to get it (if not obvious).
Comment 16 Jason Ridge CLA 2021-08-25 20:33:57 EDT
OOPS - posted this to the wrong report. Please ignore the UI freeze information.