Bug 550987 - UI freeze in org.eclipse.jface.text.source.AnnotationPainter.invalidateTextPresentation
Summary: UI freeze in org.eclipse.jface.text.source.AnnotationPainter.invalidateTextPr...
Status: ASSIGNED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Text (show other bugs)
Version: 4.13   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Paul Pazderski CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-09-11 15:17 EDT by Lars Vogel CLA
Modified: 2020-11-30 05:52 EST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lars Vogel CLA 2019-09-11 15:17:09 EDT
In my brand new Eclipse 4.14 I got the following UI freeze.

Stack Trace
	at org.eclipse.jface.text.TextPresentation.applyStyleRange(TextPresentation.java:342)
	at org.eclipse.jface.text.TextPresentation.mergeStyleRange(TextPresentation.java:252)
	at org.eclipse.jface.text.source.AnnotationPainter.applyTextPresentation(AnnotationPainter.java:1023)
	at org.eclipse.jface.text.TextViewer.changeTextPresentation(TextViewer.java:4724)
	at org.eclipse.jface.text.presentation.PresentationReconciler.applyTextRegionCollection(PresentationReconciler.java:562)
	at org.eclipse.jface.text.presentation.PresentationReconciler.processDamage(PresentationReconciler.java:551)
	at org.eclipse.jface.text.presentation.PresentationReconciler.access$3(PresentationReconciler.java:547)
	at org.eclipse.jface.text.presentation.PresentationReconciler$InternalListener.textChanged(PresentationReconciler.java:215)
	at org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2687)
	at org.eclipse.jface.text.TextViewer.invalidateTextPresentation(TextViewer.java:3331)
	at org.eclipse.jface.text.source.AnnotationPainter.invalidateTextPresentation(AnnotationPainter.java:970)
	at org.eclipse.jface.text.source.AnnotationPainter.updatePainting(AnnotationPainter.java:952)
	at org.eclipse.jface.text.source.AnnotationPainter.lambda$0(AnnotationPainter.java:1075)
	at org.eclipse.jface.text.source.AnnotationPainter$$Lambda$921/0x0000000801e44440.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:4851)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4403)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:633)
	at org.eclipse.ui.internal.Workbench$$Lambda$106/0x0000000801352040.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base@12.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@12.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base@12.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@12.0.1/java.lang.reflect.Method.invoke(Method.java:567)
	at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
	at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
	at app//org.eclipse.equinox.launcher.Main.run(Main.java:1468)
	at app//org.eclipse.equinox.launcher.Main.main(Main.java:1441)
Comment 1 Lars Vogel CLA 2019-09-11 15:17:53 EDT
Adding Paul and Thomas, who worked IIRC is similar areas in the past.
Comment 2 Lars Vogel CLA 2019-11-27 07:26:10 EST
Paul, is it OK to set the target for 4.15 M1?
Comment 3 Paul Pazderski CLA 2019-11-27 07:47:33 EST
(In reply to Lars Vogel from comment #2)
> Paul, is it OK to set the target for 4.15 M1?

Yes.
Comment 4 Paul Pazderski CLA 2020-01-03 06:37:58 EST
Not everything ready for 4.15 M1. But I start with some related changes. One is more unit tests increasing coverage of TextPresentation from 53% -> 96%.
Comment 5 Eclipse Genie CLA 2020-01-03 06:38:27 EST
New Gerrit change created: https://git.eclipse.org/r/155160