Bug 575909 - AIOOBE in StyledText.setSelection via StructuredTextViewer.handleDispose
Summary: AIOOBE in StyledText.setSelection via StructuredTextViewer.handleDispose
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.22   Edit
Hardware: All All
: P3 major (vote)
Target Milestone: 4.22 M1   Edit
Assignee: Mickael Istria CLA
QA Contact:
URL:
Whiteboard:
Keywords: regression
Depends on:
Blocks: 466532
  Show dependency tree
 
Reported: 2021-09-10 02:10 EDT by Andrey Loskutov CLA
Modified: 2021-09-10 06:38 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Loskutov CLA 2021-09-10 02:10:32 EDT
Regression from bug 466532.

eclipse.buildId=4.22.0.I20210909-1800
java.version=11.0.10
java.vendor=Red Hat, Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -data /data/4x_platform_workspace -os linux -ws gtk -arch x86_64

org.eclipse.ui
Error
Fri Sep 10 08:06:19 CEST 2021
Unhandled event loop exception

java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 0
	at org.eclipse.swt.custom.StyledText.setSelection(StyledText.java:10317)
	at org.eclipse.swt.custom.StyledText.setSelectionRanges(StyledText.java:10454)
	at org.eclipse.jface.text.TextViewer.setSelectedRanges(TextViewer.java:2307)
	at org.eclipse.jface.text.TextViewer.setSelection(TextViewer.java:2439)
	at org.eclipse.jface.viewers.Viewer.setSelection(Viewer.java:376)
	at org.eclipse.wst.sse.ui.internal.StructuredTextViewer.handleDispose(StructuredTextViewer.java:717)
	at org.eclipse.jface.text.TextViewer.lambda$1(TextViewer.java:1718)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:127)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5884)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1522)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1548)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1531)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1310)
	at org.eclipse.swt.custom.StyledText.handleDispose(StyledText.java:6121)
	at org.eclipse.swt.custom.StyledText.lambda$28(StyledText.java:5931)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5884)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1522)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1548)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1527)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1331)
	at org.eclipse.swt.widgets.Control.release(Control.java:4764)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1567)
	at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:281)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1338)
	at org.eclipse.swt.widgets.Control.release(Control.java:4764)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1567)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1338)
	at org.eclipse.swt.widgets.Control.release(Control.java:4764)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1567)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1338)
	at org.eclipse.swt.widgets.Control.release(Control.java:4764)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1567)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1338)
	at org.eclipse.swt.widgets.Control.release(Control.java:4764)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1567)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1338)
	at org.eclipse.swt.widgets.Control.release(Control.java:4764)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1567)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1338)
	at org.eclipse.swt.widgets.Control.release(Control.java:4764)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1567)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1338)
	at org.eclipse.swt.widgets.Control.release(Control.java:4764)
	at org.eclipse.swt.widgets.Widget.dispose(Widget.java:538)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.disposeWidget(SWTPartRenderer.java:173)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.disposeWidget(ContributedPartRenderer.java:286)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:937)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:860)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:844)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.subscribeTopicToBeRendered(PartRenderingEngine.java:185)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
	at org.eclipse.e4.core.di.internal.extensions.EventObjectSupplier$DIEventHandler.handleEvent(EventObjectSupplier.java:92)
	at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:228)
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
	at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
	at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
	at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
	at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
	at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
	at org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl.setToBeRendered(UIElementImpl.java:314)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.hidePart(PartServiceImpl.java:1400)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.hidePart(PartServiceImpl.java:1330)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.closePart(StackRenderer.java:1182)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$2.mouseUp(StackRenderer.java:1008)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:224)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5884)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1522)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5126)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4576)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1041)
	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.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:136)
	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/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
Comment 1 Andrey Loskutov CLA 2021-09-10 02:13:00 EDT
To reproduce, open pom.xml (XML editor from webtools will be the editor) and close that editor. Four errors will be reported in the log.
Comment 2 Eclipse Genie CLA 2021-09-10 06:18:52 EDT
New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.text/+/185296