Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Right clicking a group and choosing "remove selected entries from this group" leads to error when {}Bibtex source is selected #8012

Open
2 tasks done
ThiloteE opened this issue Aug 22, 2021 · 15 comments · Fixed by #8821
Labels
bug Confirmed bugs or reports that are very likely to be bugs entry-editor groups

Comments

@ThiloteE
Copy link
Member

ThiloteE commented Aug 22, 2021

JabRef version

Latest development branch build

JabRef 5.4--2021-08-21--644e48d
Windows 10 10.0 amd64
Java 16.0.2
JavaFX 16+8

Operating system

Windows

Details on version and operating system

Windows 10 21H1

Checked with the latest development build

  • 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

  1. create a group
  2. assign at least 2 entries to this group
  3. select one of the entries, but NOT the first entry on top of the list.
  4. enter the entry editor
  5. Select {}Bibtex source
  6. Delete the entry via right click on the group and choose "remove selected entries from this group"

how to reproduce

What happens

the error

  • Error(s)
  • entries vanish. Not just the one that was selected. In the picture attached, i selected the second entry from top to delete, which it did, but the first entry from top also vanished.
  • Groups become unresponsive#
  • When clicking on another group, there will be another error.
  • Entry editor sometimes needs more clicks to open.

Additional notes

  • Deleting the entries via the DEL key on my keyboard did not trigger any errors! Haven't tested that one too much yet, though.
  • Selecting the first entry on top of the list does not trigger any errors
  • The errors only happen when {}bibtex source is selected. Preview and other fields within the entry editor are not affected as far as i am aware.

Appendix

error 1 after delete.txt

error 2 when clicking on another group.txt

Log File ``` Uncaught exception occured in Thread[JavaFX Application Thread,5,main]

java.lang.UnsupportedOperationException
at java.base/java.util.Collections$UnmodifiableList.add(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.nextRemove(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.nextRemove(Unknown Source)
at [email protected]/javafx.collections.transformation.SortedList.removeFromMapping(Unknown Source)
at [email protected]/javafx.collections.transformation.SortedList.addRemove(Unknown Source)
at [email protected]/javafx.collections.transformation.SortedList.sourceChanged(Unknown Source)
at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/javafx.collections.transformation.FilteredList.sourceChanged(Unknown Source)
at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/com.tobiasdiez.easybind.MappedBackedList.sourceChanged(Unknown Source)
at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/org.jabref.gui.util.UiThreadList.sourceChanged(Unknown Source)
at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/com.sun.javafx.collections.ObservableListWrapper.access$200(Unknown Source)
at [email protected]/com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(Unknown Source)
at [email protected]/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.callObservers(Unknown Source)
at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.put(Unknown Source)
at [email protected]/org.jabref.model.entry.BibEntry.setField(Unknown Source)
at [email protected]/org.jabref.model.entry.BibEntry.setField(Unknown Source)
at [email protected]/org.jabref.gui.entryeditor.SourceTab.storeSource(Unknown Source)
at [email protected]/org.jabref.gui.entryeditor.SourceTab.bindToEntry(Unknown Source)
at [email protected]/org.jabref.gui.entryeditor.EntryEditorTab.notifyAboutFocus(Unknown Source)
at [email protected]/org.jabref.gui.entryeditor.EntryEditor.setEntry(Unknown Source)
at java.base/java.util.Optional.ifPresent(Unknown Source)
at [email protected]/org.jabref.gui.LibraryTab.lambda$createMainTable$15(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(Unknown Source)
at [email protected]/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(Unknown Source)
at [email protected]/javafx.scene.control.ControlUtils.updateSelectedIndices(Unknown Source)
at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/javafx.collections.transformation.SortedList.sourceChanged(Unknown Source)
at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/javafx.collections.ModifiableObservableListBase.add(Unknown Source)
at java.base/java.util.AbstractList.add(Unknown Source)
at [email protected]/com.sun.javafx.scene.control.SelectedCellsMap.add(Unknown Source)
at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.select(Unknown Source)
at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.select(Unknown Source)
at [email protected]/javafx.scene.control.MultipleSelectionModelBase.shiftSelection(Unknown Source)
at [email protected]/javafx.scene.control.MultipleSelectionModelBase.shiftSelection(Unknown Source)
at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.updateSelection(Unknown Source)
at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.lambda$new$2(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/javafx.collections.transformation.SortedList.sourceChanged(Unknown Source)
at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/javafx.collections.transformation.FilteredList.sourceChanged(Unknown Source)
at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/com.tobiasdiez.easybind.MappedBackedList.sourceChanged(Unknown Source)
at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/org.jabref.gui.util.UiThreadList.sourceChanged(Unknown Source)
at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(Unknown Source)
at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
at [email protected]/com.sun.javafx.collections.ObservableListWrapper.access$200(Unknown Source)
at [email protected]/com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(Unknown Source)
at [email protected]/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(Unknown Source)
at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.callObservers(Unknown Source)
at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.put(Unknown Source)
at [email protected]/org.jabref.model.entry.BibEntry.setField(Unknown Source)
at [email protected]/org.jabref.model.entry.BibEntry.setField(Unknown Source)
at [email protected]/org.jabref.model.groups.WordKeywordGroup.remove(Unknown Source)
at [email protected]/org.jabref.model.groups.GroupTreeNode.removeEntriesFromGroup(Unknown Source)
at [email protected]/org.jabref.gui.groups.GroupTreeViewModel.removeSelectedEntries(Unknown Source)
at [email protected]/org.jabref.gui.groups.GroupTreeView.lambda$createContextMenuForGroup$27(Unknown Source)
at [email protected]/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at [email protected]/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at [email protected]/javafx.event.Event.fireEvent(Unknown Source)
at [email protected]/javafx.scene.control.MenuItem.fire(Unknown Source)
at [email protected]/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.doSelect(Unknown Source)
at [email protected]/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.lambda$createChildren$12(Unknown Source)
at [email protected]/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at [email protected]/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at [email protected]/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at [email protected]/javafx.event.Event.fireEvent(Unknown Source)
at [email protected]/javafx.scene.Scene$MouseHandler.process(Unknown Source)
at [email protected]/javafx.scene.Scene.processMouseEvent(Unknown Source)
at [email protected]/javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source)
at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source)
at [email protected]/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source)
at [email protected]/com.sun.glass.ui.View.handleMouseEvent(Unknown Source)
at [email protected]/com.sun.glass.ui.View.notifyMouse(Unknown Source)
at [email protected]/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at [email protected]/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)

</details>


@ThiloteE
Copy link
Member Author

Very likely related to #7999

@ThiloteE ThiloteE changed the title Deleting an entry via right click "remove selected entries from this group" leads to error when {}Bibtex source is selected Deleting an entry via right clicking the group and choosing "remove selected entries from this group" leads to error when {}Bibtex source is selected Aug 22, 2021
@Siedlerchr Siedlerchr added entry-editor bug Confirmed bugs or reports that are very likely to be bugs labels Aug 22, 2021
@Siedlerchr
Copy link
Member

Siedlerchr commented Aug 22, 2021

This is interesting, seems like the wrong list is updated:
//Edit: This only happens when you have entry editor open at bibtex source

java.lang.UnsupportedOperationException
at java.base/java.util.Collections$UnmodifiableList.add(Unknown Source)

@Siedlerchr
Copy link
Member

Okay, I debugged a bit and I think the problem is that When the entry is removed from the group some FieldChangeEvent is fired.
Now, as the entry editor source tab is still open it still has the old entry and tries to storeSource() that before displaying the new one. Then at some point setfield is called and it inits a new Event chain and this leads to inconsistencies in the Observable Map.


19:16:20.929 [JavaFX Application Thread] ERROR org.jabref.gui.FallbackExceptionHandler - Uncaught exception occurred in Thread[JavaFX Application Thread,5,main]
java.lang.ArrayIndexOutOfBoundsException: arraycopy: length -1 is negative
	at java.lang.System.arraycopy(Native Method) ~[?:?]
	at javafx.collections.transformation.SortedList.removeFromMapping(SortedList.java:364) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.SortedList.addRemove(SortedList.java:398) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:108) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.FilteredList.sourceChanged(FilteredList.java:147) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at com.tobiasdiez.easybind.MappedBackedList.sourceChanged(MappedBackedList.java:69) ~[easybind-2.2.jar:?]
	at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at org.jabref.gui.util.UiThreadList.sourceChanged(UiThreadList.java:23) ~[main_/:?]
	at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(FXCollections.java:963) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(FXCollections.java:1217) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ObservableListWrapper.access$200(ObservableListWrapper.java:45) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(ObservableListWrapper.java:75) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(MapListenerHelper.java:320) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(MapListenerHelper.java:72) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ObservableMapWrapper.callObservers(ObservableMapWrapper.java:115) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ObservableMapWrapper.put(ObservableMapWrapper.java:173) ~[javafx-base-16-mac.jar:?]
	at org.jabref.model.entry.BibEntry.setField(BibEntry.java:563) ~[main_/:?]
	at org.jabref.model.entry.BibEntry.setField(BibEntry.java:581) ~[main_/:?]
	at org.jabref.gui.entryeditor.SourceTab.storeSource(SourceTab.java:307) ~[main_/:?]
	at org.jabref.gui.entryeditor.SourceTab.bindToEntry(SourceTab.java:237) ~[main_/:?]
	at org.jabref.gui.entryeditor.EntryEditorTab.notifyAboutFocus(EntryEditorTab.java:42) ~[main_/:?]
	at org.jabref.gui.entryeditor.EntryEditor.lambda$7(EntryEditor.java:341) ~[main_/:?]
	at com.tobiasdiez.easybind.EasyBind.subscribe(EasyBind.java:492) ~[easybind-2.2.jar:?]
	at org.jabref.gui.entryeditor.EntryEditor.setEntry(EntryEditor.java:338) ~[main_/:?]
	at java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
	at org.jabref.gui.LibraryTab.lambda$19(LibraryTab.java:494) ~[main_/:?]
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(SelectedItemsReadOnlyObservableList.java:89) ~[javafx-controls-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(ReadOnlyUnbackedObservableList.java:64) ~[javafx-controls-16-mac.jar:?]
	at javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(MultipleSelectionModelBase.java:896) ~[javafx-controls-16-mac.jar:?]
	at javafx.scene.control.ControlUtils.updateSelectedIndices(ControlUtils.java:202) ~[javafx-controls-16-mac.jar:?]
	at javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(TableView.java:3023) ~[javafx-controls-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:111) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:162) ~[javafx-base-16-mac.jar:?]
	at java.util.AbstractList.add(AbstractList.java:111) ~[?:?]
	at com.sun.javafx.scene.control.SelectedCellsMap.add(SelectedCellsMap.java:118) ~[javafx-controls-16-mac.jar:?]
	at javafx.scene.control.TableView$TableViewArrayListSelectionModel.select(TableView.java:2505) ~[javafx-controls-16-mac.jar:?]
	at javafx.scene.control.TableView$TableViewArrayListSelectionModel.select(TableView.java:2481) ~[javafx-controls-16-mac.jar:?]
	at javafx.scene.control.MultipleSelectionModelBase.shiftSelection(MultipleSelectionModelBase.java:240) ~[javafx-controls-16-mac.jar:?]
	at javafx.scene.control.MultipleSelectionModelBase.shiftSelection(MultipleSelectionModelBase.java:186) ~[javafx-controls-16-mac.jar:?]
	at javafx.scene.control.TableView$TableViewArrayListSelectionModel.updateSelection(TableView.java:2350) ~[javafx-controls-16-mac.jar:?]
	at javafx.scene.control.TableView$TableViewArrayListSelectionModel.lambda$new$2(TableView.java:2211) ~[javafx-controls-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:111) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.FilteredList.sourceChanged(FilteredList.java:147) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at com.tobiasdiez.easybind.MappedBackedList.sourceChanged(MappedBackedList.java:69) ~[easybind-2.2.jar:?]
	at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at org.jabref.gui.util.UiThreadList.sourceChanged(UiThreadList.java:23) ~[main_/:?]
	at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(FXCollections.java:963) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(FXCollections.java:1217) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) ~[javafx-base-16-mac.jar:?]
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ObservableListWrapper.access$200(ObservableListWrapper.java:45) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(ObservableListWrapper.java:75) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(MapListenerHelper.java:320) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(MapListenerHelper.java:72) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ObservableMapWrapper.callObservers(ObservableMapWrapper.java:115) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.collections.ObservableMapWrapper.remove(ObservableMapWrapper.java:185) ~[javafx-base-16-mac.jar:?]
	at org.jabref.model.entry.BibEntry.clearField(BibEntry.java:609) ~[main_/:?]
	at org.jabref.model.entry.BibEntry.clearField(BibEntry.java:590) ~[main_/:?]
	at org.jabref.model.entry.BibEntry.setField(BibEntry.java:551) ~[main_/:?]
	at org.jabref.model.entry.BibEntry.setField(BibEntry.java:581) ~[main_/:?]
	at org.jabref.model.groups.WordKeywordGroup.remove(WordKeywordGroup.java:94) ~[main_/:?]
	at org.jabref.model.groups.GroupTreeNode.removeEntriesFromGroup(GroupTreeNode.java:303) ~[main_/:?]
	at org.jabref.gui.groups.GroupTreeViewModel.removeSelectedEntries(GroupTreeViewModel.java:355) ~[main_/:?]
	at org.jabref.gui.groups.GroupTreeView.lambda$36(GroupTreeView.java:366) ~[main_/:?]
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) ~[javafx-base-16-mac.jar:?]
	at javafx.event.Event.fireEvent(Event.java:198) ~[javafx-base-16-mac.jar:?]
	at javafx.scene.control.MenuItem.fire(MenuItem.java:459) ~[javafx-controls-16-mac.jar:?]
	at com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1385) ~[javafx-controls-16-mac.jar:?]
	at com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.lambda$createChildren$12(ContextMenuContent.java:1338) ~[javafx-controls-16-mac.jar:?]
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) ~[javafx-base-16-mac.jar:?]
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) ~[javafx-base-16-mac.jar:?]
	at javafx.event.Event.fireEvent(Event.java:198) ~[javafx-base-16-mac.jar:?]
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3856) ~[javafx-graphics-16-mac.jar:?]
	at javafx.scene.Scene.processMouseEvent(Scene.java:1851) ~[javafx-graphics-16-mac.jar:?]
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584) ~[javafx-graphics-16-mac.jar:?]
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409) ~[javafx-graphics-16-mac.jar:?]
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299) ~[javafx-graphics-16-mac.jar:?]
	at java.security.AccessController.doPrivileged(AccessController.java:391) ~[?:?]
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447) ~[javafx-graphics-16-mac.jar:?]
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412) [javafx-graphics-16-mac.jar:?]
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446) [javafx-graphics-16-mac.jar:?]
	at com.sun.glass.ui.View.handleMouseEvent(View.java:556) [javafx-graphics-16-mac.jar:?]
	at com.sun.glass.ui.View.notifyMouse(View.java:942) [javafx-graphics-16-mac.jar:?]
	at com.sun.glass.ui.mac.MacView.notifyMouse(MacView.java:127) [javafx-graphics-16-mac.jar:?]

@ThiloteE
Copy link
Member Author

ThiloteE commented Sep 8, 2021

I appreciate your effort. I would help you, but i have zero knowledge about Java. I am having fun posting bugs so far though xD

@ThiloteE ThiloteE changed the title Deleting an entry via right clicking the group and choosing "remove selected entries from this group" leads to error when {}Bibtex source is selected Right clicking a group and choosing "remove selected entries from this group" leads to error when {}Bibtex source is selected Sep 8, 2021
@ThiloteE
Copy link
Member Author

ThiloteE commented Sep 9, 2021

Maybe JavaFX17 has this fixed?

IndexOutOfBoundsException when sorting a TreeTableView: https://bugs.openjdk.java.net/browse/JDK-8256283

@ThiloteE
Copy link
Member Author

Actually no. Bug still persists in

JabRef 5.4--2021-09-10--6c145fc
Windows 10 10.0 amd64
Java 16.0.2
JavaFX 17+18

log.txt

BUT there seem to be quite a few JavaFX bugs out there in regards to tree-table-view selection issues, so there is a high chance it might be one of the other ones.
The following link is the overall tracker: https://bugs.openjdk.java.net/browse/JDK-8248217

"The TreeTableView's selection of TreeItems is not correctly updated and sometimes throws Exceptions while updating the selection, in few scenarios like when,

  1. a TreeItem is added or removed
  2. one or more TreeItems are added from children list of a parent TreeItem and remaining are set as children.
  3. a the selected TreeItem is removed.
  4. one or more TreeItems are removed from children list of a parent TreeItem and remaining are set as children.
  5. Above four scenarios are followed by sorting the TreeTableView.

There are multiple issue reported already. This issue is kind of an Umbrella to all similar issues."

@ThiloteE
Copy link
Member Author

I am not familiar enough with coding to judge if it is a Java issue or actual Jabref code.

@Siedlerchr
Copy link
Member

I think this bug is more related to JabRef, coming from saving/replacing the old entry editor's source tab content with the new one.

at org.jabref.model.entry.BibEntry.setField(BibEntry.java:563) ~[main_/:?]
at org.jabref.model.entry.BibEntry.setField(BibEntry.java:581) ~[main_/:?]
at org.jabref.gui.entryeditor.SourceTab.storeSource(SourceTab.java:307) ~[main_/:?]
at org.jabref.gui.entryeditor.SourceTab.bindToEntry(SourceTab.java:237) ~[main_/:?]

@ThiloteE
Copy link
Member Author

ThiloteE commented Nov 7, 2021

Unfortunately can still be reproduced in

JabRef 5.4--2021-11-07--d11ba36
Windows 10 10.0 amd64
Java 16.0.2
JavaFX 17.0.1+1

...

Log File
java.lang.ArrayIndexOutOfBoundsException: arraycopy: length -1 is negative
	at java.base/java.lang.System.arraycopy(Native Method)
	at [email protected]/javafx.collections.transformation.SortedList.removeFromMapping(Unknown Source)
	at [email protected]/javafx.collections.transformation.SortedList.addRemove(Unknown Source)
	at [email protected]/javafx.collections.transformation.SortedList.sourceChanged(Unknown Source)
	at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/javafx.collections.transformation.FilteredList.sourceChanged(Unknown Source)
	at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/com.tobiasdiez.easybind.MappedBackedList.sourceChanged(Unknown Source)
	at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/org.jabref.gui.util.UiThreadList.sourceChanged(Unknown Source)
	at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableListWrapper.access$200(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(Unknown Source)
	at [email protected]/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.callObservers(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.put(Unknown Source)
	at [email protected]/org.jabref.model.entry.BibEntry.setField(Unknown Source)
	at [email protected]/org.jabref.model.entry.BibEntry.setField(Unknown Source)
	at [email protected]/org.jabref.gui.entryeditor.SourceTab.storeSource(Unknown Source)
	at [email protected]/org.jabref.gui.entryeditor.SourceTab.bindToEntry(Unknown Source)
	at [email protected]/org.jabref.gui.entryeditor.EntryEditorTab.notifyAboutFocus(Unknown Source)
	at [email protected]/org.jabref.gui.entryeditor.EntryEditor.setEntry(Unknown Source)
	at java.base/java.util.Optional.ifPresent(Unknown Source)
	at [email protected]/org.jabref.gui.LibraryTab.lambda$createMainTable$15(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(Unknown Source)
	at [email protected]/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(Unknown Source)
	at [email protected]/javafx.scene.control.ControlUtils.updateSelectedIndices(Unknown Source)
	at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/javafx.collections.transformation.SortedList.sourceChanged(Unknown Source)
	at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/javafx.collections.ModifiableObservableListBase.add(Unknown Source)
	at java.base/java.util.AbstractList.add(Unknown Source)
	at [email protected]/com.sun.javafx.scene.control.SelectedCellsMap.add(Unknown Source)
	at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.select(Unknown Source)
	at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.select(Unknown Source)
	at [email protected]/javafx.scene.control.MultipleSelectionModelBase.shiftSelection(Unknown Source)
	at [email protected]/javafx.scene.control.MultipleSelectionModelBase.shiftSelection(Unknown Source)
	at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.updateSelection(Unknown Source)
	at [email protected]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.lambda$new$2(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/javafx.collections.transformation.SortedList.sourceChanged(Unknown Source)
	at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/javafx.collections.transformation.FilteredList.sourceChanged(Unknown Source)
	at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/com.tobiasdiez.easybind.MappedBackedList.sourceChanged(Unknown Source)
	at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/org.jabref.gui.util.UiThreadList.sourceChanged(Unknown Source)
	at [email protected]/javafx.collections.transformation.TransformationList.lambda$getListener$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(Unknown Source)
	at [email protected]/javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.fireChange(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.commit(Unknown Source)
	at [email protected]/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
	at [email protected]/javafx.collections.ObservableListBase.endChange(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableListWrapper.access$200(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(Unknown Source)
	at [email protected]/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.callObservers(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.remove(Unknown Source)
	at [email protected]/org.jabref.model.entry.BibEntry.clearField(Unknown Source)
	at [email protected]/org.jabref.model.entry.BibEntry.clearField(Unknown Source)
	at [email protected]/org.jabref.model.entry.BibEntry.setField(Unknown Source)
	at [email protected]/org.jabref.model.entry.BibEntry.setField(Unknown Source)
	at [email protected]/org.jabref.model.groups.WordKeywordGroup.remove(Unknown Source)
	at [email protected]/org.jabref.model.groups.GroupTreeNode.removeEntriesFromGroup(Unknown Source)
	at [email protected]/org.jabref.gui.groups.GroupTreeViewModel.removeSelectedEntries(Unknown Source)
	at [email protected]/org.jabref.gui.groups.GroupTreeView.lambda$createContextMenuForGroup$28(Unknown Source)
	at [email protected]/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
	at [email protected]/javafx.event.Event.fireEvent(Unknown Source)
	at [email protected]/javafx.scene.control.MenuItem.fire(Unknown Source)
	at [email protected]/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.doSelect(Unknown Source)
	at [email protected]/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.lambda$createChildren$12(Unknown Source)
	at [email protected]/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
	at [email protected]/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
	at [email protected]/javafx.event.Event.fireEvent(Unknown Source)
	at [email protected]/javafx.scene.Scene$MouseHandler.process(Unknown Source)
	at [email protected]/javafx.scene.Scene.processMouseEvent(Unknown Source)
	at [email protected]/javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source)
	at [email protected]/com.sun.glass.ui.View.handleMouseEvent(Unknown Source)
	at [email protected]/com.sun.glass.ui.View.notifyMouse(Unknown Source)
	at [email protected]/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at [email protected]/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

@ThiloteE
Copy link
Member Author

Can still be reproduced even after the sidepane refactor.

JabRef 5.4--2021-12-18--1c7da01
Windows 10 10.0 amd64
Java 16.0.2
JavaFX 17.0.1+1

@Yancy10-1
Copy link

Hello, I'd like to have a try to solve this problem. Could you give me some suggestions?

@ThiloteE
Copy link
Member Author

If you manage to solve this issue, I will be very happy! Not sure if this is the best issue for beginners, but if you think you will manage or your course (I assume you are a student) requires you to solve something similar, sure go ahead!

As a general advice: check out https://github.com/JabRef/jabref/blob/main/CONTRIBUTING.md for a start. Also, https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace is also worth checking out. Feel free to ask if you have any questions here on GitHub or also at JabRef's Gitter chat.

Try to open a (draft) pull request early on, so that people can see you are working on the issue and so that they can see the direction the pull request is heading towards. This way, you will likely receive valuable feedback.

@Siedlerchr
Copy link
Member

Still an issue. One of the underlying problems from debugging. Problem with deleting from Observable lists

java.lang.ArrayIndexOutOfBoundsException: arraycopy: length -1 is negative
	at java.base/java.lang.System.arraycopy(Native Method)
	at javafx.base@18/javafx.collections.transformation.SortedList.updateUnsorted(SortedList.java:258)
	at javafx.base@18/javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:113)
	at javafx.base@18/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at javafx.base@18/javafx.collections.transformation.FilteredList.sourceChanged(FilteredList.java:147)
	at javafx.base@18/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at [email protected]/com.tobiasdiez.easybind.MappedBackedList.sourceChanged(MappedBackedList.java:69)
	at javafx.base@18/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at org.jabref/org.jabref.gui.util.UiThreadList.sourceChanged(UiThreadList.java:23)
	at javafx.base@18/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(FXCollections.java:963)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(FXCollections.java:1217)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at javafx.base@18/com.sun.javafx.collections.ObservableListWrapper.access$200(ObservableListWrapper.java:45)
	at javafx.base@18/com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(ObservableListWrapper.java:75)
	at javafx.base@18/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(MapListenerHelper.java:320)
	at javafx.base@18/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(MapListenerHelper.java:72)
	at javafx.base@18/com.sun.javafx.collections.ObservableMapWrapper.callObservers(ObservableMapWrapper.java:115)
	at javafx.base@18/com.sun.javafx.collections.ObservableMapWrapper.put(ObservableMapWrapper.java:173)
	at org.jabref/org.jabref.model.entry.BibEntry.setField(BibEntry.java:561)
	at org.jabref/org.jabref.model.entry.BibEntry.setField(BibEntry.java:579)
	at org.jabref/org.jabref.gui.entryeditor.SourceTab.storeSource(SourceTab.java:309)
	at org.jabref/org.jabref.gui.entryeditor.SourceTab.bindToEntry(SourceTab.java:239)
	at org.jabref/org.jabref.gui.entryeditor.EntryEditorTab.notifyAboutFocus(EntryEditorTab.java:42)
	at org.jabref/org.jabref.gui.entryeditor.EntryEditor.setEntry(EntryEditor.java:342)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at org.jabref/org.jabref.gui.LibraryTab.lambda$19(LibraryTab.java:492)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at javafx.controls@18/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(SelectedItemsReadOnlyObservableList.java:91)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at javafx.controls@18/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(ReadOnlyUnbackedObservableList.java:64)
	at javafx.controls@18/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(MultipleSelectionModelBase.java:918)
	at javafx.controls@18/javafx.scene.control.ControlUtils.updateSelectedIndices(ControlUtils.java:208)
	at javafx.controls@18/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(TableView.java:3027)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at javafx.base@18/javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:111)
	at javafx.base@18/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at javafx.base@18/javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:162)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at javafx.controls@18/com.sun.javafx.scene.control.SelectedCellsMap.add(SelectedCellsMap.java:118)
	at javafx.controls@18/javafx.scene.control.TableView$TableViewArrayListSelectionModel.select(TableView.java:2509)
	at javafx.controls@18/javafx.scene.control.TableView$TableViewArrayListSelectionModel.select(TableView.java:2485)
	at javafx.controls@18/javafx.scene.control.MultipleSelectionModelBase.shiftSelection(MultipleSelectionModelBase.java:250)
	at javafx.controls@18/javafx.scene.control.MultipleSelectionModelBase.shiftSelection(MultipleSelectionModelBase.java:196)
	at javafx.controls@18/javafx.scene.control.TableView$TableViewArrayListSelectionModel.updateSelection(TableView.java:2353)
	at javafx.controls@18/javafx.scene.control.TableView$TableViewArrayListSelectionModel.lambda$new$2(TableView.java:2214)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:114)
	at javafx.base@18/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at javafx.base@18/javafx.collections.transformation.FilteredList.sourceChanged(FilteredList.java:147)
	at javafx.base@18/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at [email protected]/com.tobiasdiez.easybind.MappedBackedList.sourceChanged(MappedBackedList.java:69)
	at javafx.base@18/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at org.jabref/org.jabref.gui.util.UiThreadList.sourceChanged(UiThreadList.java:23)
	at javafx.base@18/javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(FXCollections.java:963)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.FXCollections$SynchronizedObservableList.lambda$new$0(FXCollections.java:1217)
	at javafx.base@18/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at javafx.base@18/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.base@18/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:239)
	at javafx.base@18/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:485)
	at javafx.base@18/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.base@18/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:211)
	at javafx.base@18/com.sun.javafx.collections.ObservableListWrapper.access$200(ObservableListWrapper.java:45)
	at javafx.base@18/com.sun.javafx.collections.ObservableListWrapper$1$1.invalidated(ObservableListWrapper.java:75)
	at javafx.base@18/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(MapListenerHelper.java:320)
	at javafx.base@18/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(MapListenerHelper.java:72)
	at javafx.base@18/com.sun.javafx.collections.ObservableMapWrapper.callObservers(ObservableMapWrapper.java:115)
	at javafx.base@18/com.sun.javafx.collections.ObservableMapWrapper.remove(ObservableMapWrapper.java:185)
	at org.jabref/org.jabref.model.entry.BibEntry.clearField(BibEntry.java:607)
	at org.jabref/org.jabref.model.entry.BibEntry.clearField(BibEntry.java:588)
	at org.jabref/org.jabref.model.entry.BibEntry.setField(BibEntry.java:549)
	at org.jabref/org.jabref.model.entry.BibEntry.setField(BibEntry.java:579)
	at org.jabref/org.jabref.model.groups.WordKeywordGroup.remove(WordKeywordGroup.java:94)
	at org.jabref/org.jabref.model.groups.GroupTreeNode.removeEntriesFromGroup(GroupTreeNode.java:303)
	at org.jabref/org.jabref.gui.groups.GroupTreeViewModel.removeSelectedEntries(GroupTreeViewModel.java:355)
	at org.jabref/org.jabref.gui.groups.GroupTreeView.lambda$38(GroupTreeView.java:435)
	at javafx.base@18/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at javafx.base@18/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at javafx.base@18/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base@18/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@18/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@18/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.base@18/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.controls@18/javafx.scene.control.MenuItem.fire(MenuItem.java:459)
	at javafx.controls@18/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1385)
	at javafx.controls@18/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.lambda$createChildren$12(ContextMenuContent.java:1338)
	at javafx.base@18/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
	at javafx.base@18/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at javafx.base@18/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at javafx.base@18/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base@18/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base@18/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@18/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@18/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.base@18/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics@18/javafx.scene.Scene$MouseHandler.process(Scene.java:3881)
	at javafx.graphics@18/javafx.scene.Scene.processMouseEvent(Scene.java:1874)
	at javafx.graphics@18/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2607)
	at javafx.graphics@18/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411)
	at javafx.graphics@18/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at javafx.graphics@18/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450)
	at javafx.graphics@18/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
	at javafx.graphics@18/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449)
	at javafx.graphics@18/com.sun.glass.ui.View.handleMouseEvent(View.java:551)
	at javafx.graphics@18/com.sun.glass.ui.View.notifyMouse(View.java:937)
	at javafx.graphics@18/com.sun.glass.ui.mac.MacView.notifyMouse(MacView.java:127)

@koppor koppor reopened this Jun 6, 2022
@ThiloteE
Copy link
Member Author

ThiloteE commented Jun 7, 2022

Short summary of issue:

Status: Issue is not fixed.

Pull-Request Status Regression(s)
#8821 initially seemed promising and was merged into main , but was reverted because of regressions as described in #8859
#8711 was closed because of regressions as shown in video at comment #8711 (comment)

@ThiloteE
Copy link
Member Author

ThiloteE commented Jun 7, 2022

New debugging info was mentioned in #8859, but a solution or a proposal how this could be dealt with has not yet been found.

Quoting #8859 (comment) here for convencience:

Hi team, I have done some researches on this issue again and would like to share my findings here.

After digging much deeper of this issue, I have found that the cause of UnsupportedOperationExpection is due to inconsistency of modifying ObservableMap from FXCollections. For some reason, only the steps to reproduce issue in #8012 trigger ObservableMap to be immutable and throw exception if any methods try to modify it.

000

Both remove() and put() which modifies the ObservableMap. If immutable, both the methods will throw exception.

111 222

Additional information: Apologize that I have to raise my findings from technical perspective here instead of creating a new PR as I could not find a solution for this issue just yet.

Quoting #8859 (comment) here for convencience:

Thanks for the detailed analysis! I think the problem is that you somewhere have a SortedList which is immutable. And I suspect it's the SortedList of the mainTable which triggers somehow a listener on the selectedItems changes

@koppor koppor moved this to Done in Prioritization Nov 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Confirmed bugs or reports that are very likely to be bugs entry-editor groups
Projects
Archived in project
4 participants