Project

General

Profile

bug #7665

ConcurrentModificationException when closing Editor

Added by Katja Luther 4 months ago. Updated 4 months ago.

Status:
Resolved
Priority:
Highest
Category:
taxeditor
Target version:
Start date:
08/20/2018
Due date:
% Done:

50%

Severity:
normal
Found in Version:
Tags:

Description

When closing editor a ConcurrentModificationException occurs:

login : w.berendsohn
editor version : 5.2.0
server : api.cybertaxonomy.org (cybertaxonomy.org) / caryo_nepenthaceae
schema version : 5.0.0.0.20180514
os : Windows 10 10.0 amd64
java : 1.8.0_161
org.eclipse.e4.core.di.InjectionException: java.util.ConcurrentModificationException
                at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:65)
                at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:90)
                at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:111)
                at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:344)
                at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:178)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.clearContext(PartRenderingEngine.java:966)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:939)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.disposeWidget(ElementReferenceRenderer.java:112)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:918)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:873)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:873)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
                at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1976)
                at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1598)
                at org.eclipse.ui.internal.WorkbenchWindow.access$16(WorkbenchWindow.java:1540)
                at org.eclipse.ui.internal.WorkbenchWindow$11.run(WorkbenchWindow.java:1626)
                at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
                at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1623)
                at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:1194)
                at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
                at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1176)
                at org.eclipse.ui.internal.Workbench.access$22(Workbench.java:1118)
                at org.eclipse.ui.internal.Workbench$19.run(Workbench.java:1459)
                at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
                at org.eclipse.ui.internal.Workbench.close(Workbench.java:1456)
                at org.eclipse.ui.internal.Workbench.close(Workbench.java:1429)
                at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1594)
                at org.eclipse.ui.internal.WorkbenchWindow.access$16(WorkbenchWindow.java:1540)
                at org.eclipse.ui.internal.WorkbenchWindow$11.run(WorkbenchWindow.java:1626)
                at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
                at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1623)
                at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1637)
                at org.eclipse.ui.internal.WorkbenchWindow$6.close(WorkbenchWindow.java:524)
                at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer$7.shellClosed(WBWRenderer.java:629)
                at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:99)
                at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
                at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4418)
                at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
                at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
                at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088)
                at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:315)
                at org.eclipse.swt.widgets.Decorations.WM_CLOSE(Decorations.java:1728)
                at org.eclipse.swt.widgets.Control.windowProc(Control.java:4801)
                at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
                at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1656)
                at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2199)
                at org.eclipse.swt.widgets.Display.windowProc(Display.java:5110)
                at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
                at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547)
                at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:506)
                at org.eclipse.swt.widgets.Control.windowProc(Control.java:4897)
                at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
                at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1656)
                at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2199)
                at org.eclipse.swt.widgets.Display.windowProc(Display.java:5110)
                at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
                at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547)
                at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:506)
                at org.eclipse.swt.widgets.Control.windowProc(Control.java:4897)
                at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
                at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1656)
                at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2199)
                at org.eclipse.swt.widgets.Display.windowProc(Display.java:5110)
                at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
                at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2552)
                at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3822)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
                at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
                at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
                at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)
                at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
                at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
                at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
                at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
                at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
                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:388)
                at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                at java.lang.reflect.Method.invoke(Unknown Source)
                at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
                at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
                at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
Caused by: java.util.ConcurrentModificationException
                at java.util.HashMap$HashIterator.nextNode(Unknown Source)
                at java.util.HashMap$KeyIterator.next(Unknown Source)
                at eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement.removeElements(AbstractCdmFormElement.java:151)
                at eu.etaxonomy.taxeditor.ui.element.AbstractFormSection.removeElements(AbstractFormSection.java:424)
                at eu.etaxonomy.taxeditor.ui.element.AbstractFormSection.dispose(AbstractFormSection.java:500)
                at eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4.destroySections(AbstractCdmDataViewerE4.java:190)
                at eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4.showEmptyPage(DetailsPartE4.java:118)
                at eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4.selectionChanged(AbstractCdmEditorPartE4.java:152)
                at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                at java.lang.reflect.Method.invoke(Unknown Source)
                at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
                ... 141 m


Related issues

Related to Edit - bug #7112: Ask for saving dirty editors when closing Taxeditor In Progress 12/05/2017

Associated revisions

Revision c7b20ed3 (diff)
Added by Patrick Plitzner 4 months ago

fix #7665 Use iterator to avoid ConcurrentModificationException

History

#1 Updated by Patrick Plitzner 4 months ago

  • Related to bug #7112: Ask for saving dirty editors when closing Taxeditor added

#2 Updated by Andreas Müller 4 months ago

  • Tags set to eclipse4

#3 Updated by Andreas Müller 4 months ago

  • Status changed from New to In Progress
  • Assignee changed from Katja Luther to Patrick Plitzner
  • Priority changed from Priority14 to Highest
  • Target version changed from Unassigned CDM tickets to Release 5.3

use iterator.remove()

#4 Updated by Patrick Plitzner 4 months ago

  • Assignee changed from Patrick Plitzner to Andreas Müller

I could never reproduce this problem, so for reviewing we could just wait test for a while and see if it happens again.

#5 Updated by Patrick Plitzner 4 months ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 50

#6 Updated by Andreas Müller 4 months ago

Patrick Plitzner wrote:

Applied in changeset taxeditor|c7b20ed3c866508182a3d5d1b44b57fc1244b6f8.

Not sure if this works. I thought the remove is on the iterator itself, but it is on it's own elements (which might be part of the loop elements?). But let's see. I agree to wait if it happens again. Anyway, not a critical issue.

I will leave it open until next release.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)