JabRef / jabref

Graphical Java application for managing BibTeX and biblatex (.bib) databases
https://devdocs.jabref.org
MIT License
3.6k stars 2.57k forks source link

Index out of bounds by deleting comma in title field via biblatex source tab. Might be related to table sort order #8719

Open ThiloteE opened 2 years ago

ThiloteE commented 2 years ago

JabRef version

Latest development branch build (please note build date below)

Operating system

Windows

Details on version and operating system

Windows 10 21H1 Commit 46d378f05d05d03e7b3b8cbae21cd322dd6da33f

Checked with the latest development build

Steps to reproduce the behaviour

How to reproduce:

Delete a comma in the title field. I was not able to come up with a minimum non-working example.

See video:

https://user-images.githubusercontent.com/73715071/165048255-a5bbc7b9-1bef-4f90-ae50-98df397b6174.mp4

Appendix

...

Log File using latest development edition ``` java.lang.IndexOutOfBoundsException: [ fromIndex: 0, toIndex: 2, size: 1 ] at javafx.controls/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.subList(ReadOnlyUnbackedObservableList.java:171) at javafx.base/javafx.collections.ListChangeListener$Change.getAddedSubList(ListChangeListener.java:243) at javafx.controls/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.getAddedElements(SelectedItemsReadOnlyObservableList.java:133) at javafx.controls/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(SelectedItemsReadOnlyObservableList.java:55) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.controls/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(ReadOnlyUnbackedObservableList.java:64) at javafx.controls/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(MultipleSelectionModelBase.java:918) at javafx.controls/javafx.scene.control.ControlUtils.updateSelectedIndices(ControlUtils.java:208) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(TableView.java:3027) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:111) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/javafx.collections.ModifiableObservableListBase.setAll(ModifiableObservableListBase.java:98) at javafx.controls/com.sun.javafx.scene.control.SelectedCellsMap.setAll(SelectedCellsMap.java:173) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.updateSelection(TableView.java:2332) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.lambda$new$2(TableView.java:2214) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:524) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:111) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/javafx.collections.transformation.FilteredList.sourceChanged(FilteredList.java:147) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at com.tobiasdiez.easybind@2.2/com.tobiasdiez.easybind.MappedBackedList.sourceChanged(MappedBackedList.java:69) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at org.jabref@100.0.0/org.jabref.gui.util.UiThreadList.sourceChanged(UiThreadList.java:23) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(FXCollections.java:963) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(FXCollections.java:1217) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/com.sun.javafx.collections.ObservableListWrapper.access$200(ObservableListWrapper.java:45) at javafx.base/com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(ObservableListWrapper.java:75) at javafx.base/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(MapListenerHelper.java:320) at javafx.base/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(MapListenerHelper.java:72) at javafx.base/com.sun.javafx.collections.ObservableMapWrapper.callObservers(ObservableMapWrapper.java:115) at javafx.base/com.sun.javafx.collections.ObservableMapWrapper.put(ObservableMapWrapper.java:169) at org.jabref@100.0.0/org.jabref.model.entry.BibEntry.setField(BibEntry.java:561) at org.jabref@100.0.0/org.jabref.model.entry.BibEntry.setField(BibEntry.java:579) at org.jabref@100.0.0/org.jabref.gui.entryeditor.SourceTab.storeSource(SourceTab.java:309) at org.jabref@100.0.0/org.jabref.gui.entryeditor.SourceTab.bindToEntry(SourceTab.java:239) at org.jabref@100.0.0/org.jabref.gui.entryeditor.EntryEditorTab.notifyAboutFocus(EntryEditorTab.java:42) at org.jabref@100.0.0/org.jabref.gui.entryeditor.EntryEditor.setEntry(EntryEditor.java:342) at java.base/java.util.Optional.ifPresent(Optional.java:178) at org.jabref@100.0.0/org.jabref.gui.LibraryTab.lambda$createMainTable$15(LibraryTab.java:492) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.controls/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(SelectedItemsReadOnlyObservableList.java:91) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.controls/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(ReadOnlyUnbackedObservableList.java:64) at javafx.controls/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(MultipleSelectionModelBase.java:918) at javafx.controls/javafx.scene.control.ControlUtils.updateSelectedIndices(ControlUtils.java:208) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(TableView.java:3027) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.clearAndSelect(TableView.java:2481) at javafx.controls/javafx.scene.control.TableView$TableViewSelectionModel.clearAndSelect(TableView.java:1967) at javafx.controls/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.simpleSelect(TableCellBehaviorBase.java:213) at javafx.controls/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.doSelect(TableCellBehaviorBase.java:195) at javafx.controls/com.sun.javafx.scene.control.behavior.CellBehaviorBase.mousePressed(CellBehaviorBase.java:176) at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274) at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247) at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234) at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.base/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3881) at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1874) at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2607) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449) at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:551) at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:937) at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184) at java.base/java.lang.Thread.run(Thread.java:833) ```
ThiloteE commented 2 years ago

I also can reproduce when using #8711.

See here:

https://user-images.githubusercontent.com/73715071/165048768-8c078186-af20-4e1b-8f20-cae4717c1440.mp4

...

Log File when using 8711 ``` java.lang.IndexOutOfBoundsException: [ fromIndex: 0, toIndex: 2, size: 1 ] at javafx.controls/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.subList(ReadOnlyUnbackedObservableList.java:171) at javafx.base/javafx.collections.ListChangeListener$Change.getAddedSubList(ListChangeListener.java:243) at javafx.controls/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.getAddedElements(SelectedItemsReadOnlyObservableList.java:133) at javafx.controls/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(SelectedItemsReadOnlyObservableList.java:55) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.controls/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(ReadOnlyUnbackedObservableList.java:64) at javafx.controls/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(MultipleSelectionModelBase.java:918) at javafx.controls/javafx.scene.control.ControlUtils.updateSelectedIndices(ControlUtils.java:208) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(TableView.java:3027) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:111) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/javafx.collections.ModifiableObservableListBase.setAll(ModifiableObservableListBase.java:98) at javafx.controls/com.sun.javafx.scene.control.SelectedCellsMap.setAll(SelectedCellsMap.java:173) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.updateSelection(TableView.java:2332) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.lambda$new$2(TableView.java:2214) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:524) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:111) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/javafx.collections.transformation.FilteredList.sourceChanged(FilteredList.java:147) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at com.tobiasdiez.easybind@2.2/com.tobiasdiez.easybind.MappedBackedList.sourceChanged(MappedBackedList.java:69) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at org.jabref@100.0.0/org.jabref.gui.util.UiThreadList.sourceChanged(UiThreadList.java:23) at javafx.base/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(FXCollections.java:963) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(FXCollections.java:1217) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.base/com.sun.javafx.collections.ObservableListWrapper.access$200(ObservableListWrapper.java:45) at javafx.base/com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(ObservableListWrapper.java:75) at javafx.base/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(MapListenerHelper.java:320) at javafx.base/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(MapListenerHelper.java:72) at javafx.base/com.sun.javafx.collections.ObservableMapWrapper.callObservers(ObservableMapWrapper.java:115) at javafx.base/com.sun.javafx.collections.ObservableMapWrapper.put(ObservableMapWrapper.java:169) at org.jabref@100.0.0/org.jabref.model.entry.BibEntry.setField(BibEntry.java:573) at org.jabref@100.0.0/org.jabref.model.entry.BibEntry.setField(BibEntry.java:591) at org.jabref@100.0.0/org.jabref.gui.entryeditor.SourceTab.storeSource(SourceTab.java:314) at org.jabref@100.0.0/org.jabref.gui.entryeditor.SourceTab.bindToEntry(SourceTab.java:242) at org.jabref@100.0.0/org.jabref.gui.entryeditor.EntryEditorTab.notifyAboutFocus(EntryEditorTab.java:42) at org.jabref@100.0.0/org.jabref.gui.entryeditor.EntryEditor.setEntry(EntryEditor.java:342) at java.base/java.util.Optional.ifPresent(Optional.java:178) at org.jabref@100.0.0/org.jabref.gui.LibraryTab.lambda$createMainTable$15(LibraryTab.java:492) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.controls/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(SelectedItemsReadOnlyObservableList.java:91) at javafx.base/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) at javafx.base/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) at javafx.controls/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(ReadOnlyUnbackedObservableList.java:64) at javafx.controls/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(MultipleSelectionModelBase.java:918) at javafx.controls/javafx.scene.control.ControlUtils.updateSelectedIndices(ControlUtils.java:208) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(TableView.java:3027) at javafx.controls/javafx.scene.control.TableView$TableViewArrayListSelectionModel.clearAndSelect(TableView.java:2481) at javafx.controls/javafx.scene.control.TableView$TableViewSelectionModel.clearAndSelect(TableView.java:1967) at javafx.controls/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.simpleSelect(TableCellBehaviorBase.java:213) at javafx.controls/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.doSelect(TableCellBehaviorBase.java:195) at javafx.controls/com.sun.javafx.scene.control.behavior.CellBehaviorBase.mousePressed(CellBehaviorBase.java:176) at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274) at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247) at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234) at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.base/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3881) at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1874) at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2607) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449) at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:551) at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:937) at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184) at java.base/java.lang.Thread.run(Thread.java:833) ```
ThiloteE commented 2 years ago

This is the library I used.

test-#8673-encoding.bib.txt

Yancy10-1 commented 2 years ago

Hi, I tried to reproduce the bug with your library, but I can not reproduce it. Can you help me a lot?

ThiloteE commented 2 years ago

@Yancy10-1 My computer broke and I am operating from a very old laptop currently. I have not installed the programs yet that allow me to create videos.

I am not sure exactly at what step you failed to reproduce, so I am not even sure, if another video or explanation will help. I tried texting you on Gitter. If you want, I can share my screen so we can reproduce the issue. You can text me on gitter your videoconferencing program of choice. Right now, I have Element (Matrix) and Zoom installed.

ThiloteE commented 2 years ago

I can still reproduce with newest development version. The key is to have the entries in the same order as is shown in the video. You can achieve this by clicking on the title column in the maintable multiple times, which will sort the maintable, until they are similar. After they are similar, just do exactly as what is done in the video.

ThiloteE commented 2 years ago

To do:

Other javafx issues that very likely might be related:

https://bugs.openjdk.org/browse/JDK-8248217 https://bugs.openjdk.org/browse/JDK-8090563

ThiloteE commented 2 years ago

Unfortunately, still reproducible with

JabRef 5.8--2022-09-20--7dcdd61 Linux 5.4.0-126-generic amd64 Java 18.0.2.1 JavaFX 19+11

Siedlerchr commented 2 years ago

@ThiloteE Do you have a stack trace?

ThiloteE commented 2 years ago
stack trace ``` java.lang.IndexOutOfBoundsException: [ fromIndex: 0, toIndex: 2, size: 1 ] at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.subList(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeListener$Change.getAddedSubList(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.getAddedElements(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.commit(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.ControlUtils.updateSelectedIndices(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.commit(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.transformation.SortedList.sourceChanged(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.WeakListChangeListener.onChanged(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.commit(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ModifiableObservableListBase.setAll(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.SelectedCellsMap.setAll(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.TableView$TableViewArrayListSelectionModel.updateSelection(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.TableView$TableViewArrayListSelectionModel.lambda$new$2(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.WeakListChangeListener.onChanged(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.commit(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.transformation.SortedList.sourceChanged(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.WeakListChangeListener.onChanged(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.commit(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.transformation.FilteredList.sourceChanged(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.WeakListChangeListener.onChanged(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.commit(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.endChange(Unknown Source) at com.tobiasdiez.easybind@2.2.1-SNAPSHOT/com.tobiasdiez.easybind.MappedBackedList.sourceChanged(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.WeakListChangeListener.onChanged(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref@5.8.106/org.jabref.gui.util.UiThreadList.sourceChanged(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.WeakListChangeListener.onChanged(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.WeakListChangeListener.onChanged(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.WeakListChangeListener.onChanged(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.commit(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ObservableListWrapper.access$200(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ObservableMapWrapper.callObservers(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ObservableMapWrapper.put(Unknown Source) at org.jabref@5.8.106/org.jabref.model.entry.BibEntry.setField(Unknown Source) at org.jabref@5.8.106/org.jabref.model.entry.BibEntry.setField(Unknown Source) at org.jabref@5.8.106/org.jabref.gui.entryeditor.SourceTab.storeSource(Unknown Source) at org.jabref@5.8.106/org.jabref.gui.entryeditor.SourceTab.bindToEntry(Unknown Source) at org.jabref@5.8.106/org.jabref.gui.entryeditor.EntryEditorTab.notifyAboutFocus(Unknown Source) at org.jabref@5.8.106/org.jabref.gui.entryeditor.EntryEditor.setEntry(Unknown Source) at java.base/java.util.Optional.ifPresent(Unknown Source) at org.jabref@5.8.106/org.jabref.gui.LibraryTab.lambda$createMainTable$15(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.commit(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.fireChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.commit(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ListChangeBuilder.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.collections.ObservableListBase.endChange(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.ControlUtils.updateSelectedIndices(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.TableView$TableViewArrayListSelectionModel.clearAndSelect(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.control.TableView$TableViewSelectionModel.clearAndSelect(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.simpleSelect(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.doSelect(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.behavior.CellBehaviorBase.mousePressed(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.event.Event.fireEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.Scene$MouseHandler.process(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.Scene.processMouseEvent(Unknown Source) at org.jabref.merged.module@5.8.106/javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.glass.ui.View.handleMouseEvent(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.glass.ui.View.notifyMouse(Unknown Source) at org.jabref.merged.module@5.8.106/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at org.jabref.merged.module@5.8.106/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) ```
ThiloteE commented 2 years ago

Turns out, the bug only triggers when editing the title field via the "biblatex source" tab. It does not trigger, if changing the title via the "required fields" tab, which might explain why @Yancy10-1 was not able to reproduce.

DvP17 commented 1 year ago

Related bug here (JabRef 5.9, Windows 10, was just scrolling through entries):

jabrefbug

ThiloteE commented 1 year ago

To do:

koppor commented 1 year ago

@DvP17 it would be nice to see the details hidden at "Show Details".