IndexOutOfBoundsException while selecting web search result entries in a particular order #11081
Closed
Description
JabRef version
5.12 (latest release)
Operating system
Windows
Details on version and operating system
Windows 11 Home 23H2
Checked with the latest development build (copy version output from About dialog)
- I made a backup of my libraries before testing the latest development version.
- I have tested the latest development version and the problem persists
Steps to reproduce the behaviour
- Go to File -> New library
- On the Web search panel on the bottom left select any source from the dropdown.
- Type any valid query and click Search. You'll see a list of entries as results.
- Precondition: Make sure that for your query, there are at least 3 entries as results.
- Select any two entries one after another, the second entry being "after" the first (in the "downward" order of the list of results).
For example, let's say for 6 consecutive entries as results, we index them as 1, 2, 3, 4, 5 and 6, select entries 3 and 5. - Now, select any result which comes "before" the first entry we selected in step 5 (in "upward" order of the list of results).
For example, select entry 2 (or 1). - You will get the following error: "
Uncaught exception occurred in Thread[#42,JavaFX Application Thread,5,main]
"
Entire stack trace is attached as log in the Appendix.
Appendix
See Log File below for entire stack trace:
Log File
``` java.lang.IndexOutOfBoundsException: [ fromIndex: -1, toIndex: 0, size: 3 ] at org.controlsfx.controls@11.2.0/impl.org.controlsfx.collections.ReadOnlyUnbackedObservableList.subList(ReadOnlyUnbackedObservableList.java:110) at javafx.base@22/javafx.collections.ListChangeListener$Change.getAddedSubList(ListChangeListener.java:243) at org.controlsfx.controls@11.2.0/org.controlsfx.control.CheckBitSetModelBase.lambda$new$2(CheckBitSetModelBase.java:110) at javafx.base@22/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:327) at javafx.base@22/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71) at javafx.base@22/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246) at org.controlsfx.controls@11.2.0/impl.org.controlsfx.collections.ReadOnlyUnbackedObservableList.callObservers(ReadOnlyUnbackedObservableList.java:44) at org.controlsfx.controls@11.2.0/org.controlsfx.control.CheckBitSetModelBase.lambda$new$1(CheckBitSetModelBase.java:99) at javafx.base@22/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:162) at javafx.base@22/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71) at javafx.base@22/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246) at org.controlsfx.controls@11.2.0/impl.org.controlsfx.collections.ReadOnlyUnbackedObservableList.callObservers(ReadOnlyUnbackedObservableList.java:44) at org.controlsfx.controls@11.2.0/org.controlsfx.control.CheckBitSetModelBase.check(CheckBitSetModelBase.java:259) at org.controlsfx.controls@11.2.0/org.controlsfx.control.CheckBitSetModelBase.toggleCheckState(CheckBitSetModelBase.java:249) at org.controlsfx.controls@11.2.0/org.controlsfx.control.CheckBitSetModelBase.toggleCheckState(CheckBitSetModelBase.java:240) at org.jabref@100.0.0/org.jabref.gui.importer.ImportEntriesDialog.lambda$initialize$8(ImportEntriesDialog.java:179) at org.jabref@100.0.0/org.jabref.gui.util.ViewModelListCellFactory$1.lambda$updateItem$0(ViewModelListCellFactory.java:180) at javafx.base@22/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at javafx.base@22/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232) at javafx.base@22/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189) at javafx.base@22/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base@22/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.base@22/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics@22/javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3689) at javafx.graphics@22/javafx.scene.Scene$MouseHandler.process(Scene.java:3994) at javafx.graphics@22/javafx.scene.Scene.processMouseEvent(Scene.java:1891) at javafx.graphics@22/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2709) at javafx.graphics@22/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411) at javafx.graphics@22/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics@22/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450) at javafx.graphics@22/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:430) at javafx.graphics@22/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449) at javafx.graphics@22/com.sun.glass.ui.View.handleMouseEvent(View.java:551) at javafx.graphics@22/com.sun.glass.ui.View.notifyMouse(View.java:937) at javafx.graphics@22/com.sun.glass.ui.win.WinApplication._enterNestedEventLoopImpl(Native Method) at javafx.graphics@22/com.sun.glass.ui.win.WinApplication._enterNestedEventLoop(WinApplication.java:211) at javafx.graphics@22/com.sun.glass.ui.Application.enterNestedEventLoop(Application.java:513) at javafx.graphics@22/com.sun.glass.ui.EventLoop.enter(EventLoop.java:107) at javafx.graphics@22/com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(QuantumToolkit.java:656) at javafx.graphics@22/javafx.stage.Stage.showAndWait(Stage.java:469) at javafx.controls@22/javafx.scene.control.HeavyweightDialog.showAndWait(HeavyweightDialog.java:162) at javafx.controls@22/javafx.scene.control.Dialog.showAndWait(Dialog.java:346) at org.jabref@100.0.0/org.jabref.gui.JabRefDialogService.showCustomDialogAndWait(JabRefDialogService.java:289) at org.jabref@100.0.0/org.jabref.gui.importer.fetcher.WebSearchPaneViewModel.search(WebSearchPaneViewModel.java:168) at org.jabref@100.0.0/org.jabref.gui.importer.fetcher.WebSearchPaneView.lambda$initialize$3(WebSearchPaneView.java:96) at javafx.base@22/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at javafx.base@22/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232) at javafx.base@22/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189) at javafx.base@22/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base@22/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.base@22/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics@22/javafx.scene.Node.fireEvent(Node.java:8917) at javafx.controls@22/javafx.scene.control.Button.fire(Button.java:203) at javafx.controls@22/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:207) at javafx.controls@22/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274) at javafx.base@22/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247) at javafx.base@22/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at javafx.base@22/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232) at javafx.base@22/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189) at javafx.base@22/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base@22/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base@22/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.base@22/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics@22/javafx.scene.Scene$MouseHandler.process(Scene.java:3985) at javafx.graphics@22/javafx.scene.Scene.processMouseEvent(Scene.java:1891) at javafx.graphics@22/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2709) at javafx.graphics@22/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411) at javafx.graphics@22/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics@22/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450) at javafx.graphics@22/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:430) at javafx.graphics@22/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449) at javafx.graphics@22/com.sun.glass.ui.View.handleMouseEvent(View.java:551) at javafx.graphics@22/com.sun.glass.ui.View.notifyMouse(View.java:937) at javafx.graphics@22/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics@22/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184) at java.base/java.lang.Thread.run(Thread.java:1583) ```Metadata
Assignees
Labels
No labels