bug #10175
closedIllegalStateException when more than 10 exceptions in UpdateResult
100%
Description
This is because the queue is implemented as an array (https://codechacha.com/en/java-arrayblockingqueue/) and trying to add more items than the initial size throws an illegal state exception:
mail ERS:
Hallo,
hat meine Fehlermeldung (mails von letzter Woche an VL-BGBM-EditSupport) euch erreicht?
Der Fehler ist jetzt wiederaufgetreten, beim Versuch, eines der Duplikate – Alyssum minus Rothm., Syn. von Alyssum simplex Rudolphi – zu löschen.
Viele Grüße, Eckhard
last remote method : https://api.cybertaxonomy.org:443/euromed/remoting/taxon.service last remote request client time : 2022-10-25T11:11:38.314 last remote request response header time : Tue, 25 Oct 2022 09:11:38 GMT client error time : 2022-10-25T11:11:38.399 login : e.raabstraube editor version : 5.33.0 server : api.cybertaxonomy.org (cybertaxonomy.org) / euromed schema version : 5.33.0.0.20220807 os : Windows 10 10.0 amd64 java : 1.8.0_201 org.eclipse.e4.core.di.InjectionException: java.lang.IllegalStateException: Queue full at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:65) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:264) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132) at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:488) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210) at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:433) at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:454) at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem$3.handleEvent(AbstractContributionItem.java:482) 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.Display.runDeferredEvents(Display.java:4236) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3824) 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:20) 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.lang.IllegalStateException: Queue full at java.util.AbstractQueue.add(AbstractQueue.java:98) at java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:312) at eu.etaxonomy.cdm.api.service.UpdateResult.addException(UpdateResult.java:94) at eu.etaxonomy.cdm.api.service.NameServiceImpl.isDeletable(NameServiceImpl.java:1036) at eu.etaxonomy.cdm.api.service.NameServiceImpl.isDeletable(NameServiceImpl.java:1102) at sun.reflect.GeneratedMethodAccessor101812.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) ...
Related issues
Updated by Andreas Müller about 1 year ago
- Related to task #10009: Cleanup dependencies in TaxEditor added
Updated by Andreas Müller about 1 year ago
- Status changed from New to Resolved
- % Done changed from 0 to 70
Applied in changeset cdmlib|31406db107c5c237ef4a2eac0353ac25e00c18b6.
Updated by Andreas Müller about 1 year ago
- Assignee changed from Andreas Müller to Katja Luther
This should be fixed. I replaced ArrayBlockingQueue by CircularFifoQueue from commons-collections4 which is similar to the CircularFifoBuffer used before. Commons-collections is used in TaxEditor anyway so no need for additional dependency.
Please review carefully as fixed on theoretical level.
Updated by Andreas Müller about 1 year ago
- Target version changed from Release 5.43 to Release 5.35
Updated by Andreas Müller about 1 year ago
- Target version changed from Release 5.35 to Release 5.34
Updated by Andreas Müller about 1 year ago
- Status changed from Resolved to Closed
- Assignee changed from Katja Luther to Andreas Müller
- % Done changed from 70 to 100
I tested with Alyssum minus in E+M on test and the problem does not exist anymore.