JabRef / jabref

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

java.lang.ArrayIndexOutOfBoundsException thrown while saving library #11256

Open HoussemNasri opened 5 months ago

HoussemNasri commented 5 months ago

JabRef version

5.13 (latest release)

Operating system

GNU / Linux

Details on version and operating system

JabRef 100.0.0 Linux 5.14.21-150400.24.69-default amd64 Java 21.0.1 JavaFX 22.0.1+7

Checked with the latest development build (copy version output from About dialog)

Steps to reproduce the behaviour

  1. Open a library and make some changes
  2. Close jabref
  3. A "Save before closing" dialog pops up, choose save.
  4. Exception

But I can't reproduce it reliably, it just happens randomly.

Appendix

Log File ``` 2024-04-28 19:42:10 [JavaFX Application Thread] org.jabref.gui.collab.DatabaseChangeMonitor.lambda$fileUpdated$7() ERROR: Error while watching for changes: java.lang.ArrayIndexOutOfBoundsException: Index 11 out of bounds for length 11 at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper$Generic.addListener(ListListenerHelper.java:268) at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper.addListener(ListListenerHelper.java:58) at javafx.base@22.0.1/javafx.collections.ObservableListBase.addListener(ObservableListBase.java:233) at javafx.base@22.0.1/javafx.collections.FXCollections$UnmodifiableObservableListImpl.(FXCollections.java:949) at javafx.base@22.0.1/javafx.collections.FXCollections.unmodifiableObservableList(FXCollections.java:405) at org.jabref@100.0.0/org.jabref.model.TreeNode.getChildren(TreeNode.java:414) at org.jabref@100.0.0/org.jabref.model.groups.GroupTreeNode.equals(GroupTreeNode.java:130) at java.base/java.util.Objects.equals(Objects.java:64) at org.jabref@100.0.0/org.jabref.model.metadata.MetaData.equals(MetaData.java:377) at org.jabref@100.0.0/org.jabref.logic.bibtex.comparator.MetaDataDiff.compare(MetaDataDiff.java:47) at org.jabref@100.0.0/org.jabref.logic.bibtex.comparator.BibDatabaseDiff.(BibDatabaseDiff.java:25) ERROR: Error while watching for changes: java.lang.ArrayIndexOutOfBoundsException: Index 11 out of bounds for length 11 at org.jabref@100.0.0/org.jabref.logic.bibtex.comparator.BibDatabaseDiff.compare(BibDatabaseDiff.java:122) at org.jabref@100.0.0/org.jabref.gui.collab.DatabaseChangeList.compareAndGetChanges(DatabaseChangeList.java:36) at org.jabref@100.0.0/org.jabref.gui.collab.ChangeScanner.scanForChanges(ChangeScanner.java:46) at org.jabref@100.0.0/org.jabref.gui.util.BackgroundTask$1.call(BackgroundTask.java:68) at org.jabref@100.0.0/org.jabref.gui.util.DefaultTaskExecutor$1.call(DefaultTaskExecutor.java:161) at javafx.graphics@22.0.1/javafx.concurrent.Task$TaskCallable.call(Task.java:1399) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) 2024-04-28 19:45:45 [JavaFX Application Thread] org.jabref.gui.JabRefDialogService.notify() INFO: Library saved 2024-04-28 19:45:46 [JavaFX Application Thread] org.jabref.gui.JabRefDialogService.notify() INFO: Library saved 2024-04-28 19:45:46 [JavaFX Application Thread] org.jabref.gui.FallbackExceptionHandler.uncaughtException() ERROR: Uncaught exception occurred in Thread[#39,JavaFX Application Thread,5,main]: java.lang.ArrayIndexOutOfBoundsException: Index 13 out of bounds for length 11 at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper$Generic.addListener(ListListenerHelper.java:268) at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper.addListener(ListListenerHelper.java:58) at javafx.base@22.0.1/javafx.collections.ObservableListBase.addListener(ObservableListBase.java:233) ERROR: Uncaught exception occurred in Thread[#39,JavaFX Application Thread,5,main]: java.lang.ArrayIndexOutOfBoundsException: Index 13 out of bounds for length 11 at javafx.base@22.0.1/javafx.collections.FXCollections$UnmodifiableObservableListImpl.(FXCollections.java:949) at javafx.base@22.0.1/javafx.collections.FXCollections.unmodifiableObservableList(FXCollections.java:405) at org.jabref@100.0.0/org.jabref.model.TreeNode.getChildren(TreeNode.java:414) at org.jabref@100.0.0/org.jabref.model.groups.GroupTreeNode.equals(GroupTreeNode.java:130) at org.jabref@100.0.0/org.jabref.gui.groups.GroupNodeViewModel.equals(GroupNodeViewModel.java:185) at javafx.controls@22.0.1/javafx.scene.control.TreeTableCell.updateItem(TreeTableCell.java:681) at javafx.controls@22.0.1/javafx.scene.control.TreeTableCell.indexChanged(TreeTableCell.java:475) at javafx.controls@22.0.1/javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:128) at javafx.controls@22.0.1/javafx.scene.control.skin.TableRowSkinBase.requestCellUpdate(TableRowSkinBase.java:701) at javafx.controls@22.0.1/javafx.scene.control.skin.TableRowSkinBase.lambda$new$1(TableRowSkinBase.java:167) at javafx.controls@22.0.1/com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$2(LambdaMultiplePropertyChangeListenerHandler.java:95) at javafx.base@22.0.1/javafx.beans.WeakInvalidationListener.invalidated(WeakInvalidationListener.java:82) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:147) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147) at javafx.controls@22.0.1/javafx.scene.control.Cell.setItem(Cell.java:404) at javafx.controls@22.0.1/javafx.scene.control.Cell.updateItem(Cell.java:694) at org.jabref@100.0.0/org.jabref.gui.util.ViewModelTreeTableRowFactory$1.updateItem(ViewModelTreeTableRowFactory.java:136) at javafx.controls@22.0.1/javafx.scene.control.TreeTableRow.updateItem(TreeTableRow.java:423) at javafx.controls@22.0.1/javafx.scene.control.TreeTableRow.indexChanged(TreeTableRow.java:298) at javafx.controls@22.0.1/javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:128) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1814) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow.addLeadingCells(VirtualFlow.java:2107) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1325) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow$5.invalidated(VirtualFlow.java:897) at javafx.base@22.0.1/javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:148) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow.setCellCount(VirtualFlow.java:912) at javafx.controls@22.0.1/javafx.scene.control.skin.TreeTableViewSkin.updateItemCount(TreeTableViewSkin.java:354) at javafx.controls@22.0.1/javafx.scene.control.skin.TreeTableViewSkin.setRoot(TreeTableViewSkin.java:326) at javafx.controls@22.0.1/javafx.scene.control.skin.TreeTableViewSkin.lambda$new$14(TreeTableViewSkin.java:134) at javafx.controls@22.0.1/com.sun.javafx.scene.control.ListenerHelper$4.changed(ListenerHelper.java:212) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:372) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase$Listener.invalidated(ObjectPropertyBase.java:234) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:147) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:192) at javafx.base@22.0.1/com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:147) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147) at javafx.base@22.0.1/javafx.beans.property.ObjectProperty.setValue(ObjectProperty.java:78) at org.jabref@100.0.0/org.jabref.gui.groups.GroupTreeViewModel.onActiveDatabaseChanged(GroupTreeViewModel.java:155) at com.tobiasdiez.easybind@2.2.1-SNAPSHOT/com.tobiasdiez.easybind.EasyBind.lambda$subscribe$1(EasyBind.java:493) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:372) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147) at org.jabref@100.0.0/org.jabref.gui.StateManager.setActiveDatabase(StateManager.java:164) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrame.lambda$initBindings$7(JabRefFrame.java:338) at com.tobiasdiez.easybind@2.2.1-SNAPSHOT/com.tobiasdiez.easybind.EasyBind.lambda$subscribe$1(EasyBind.java:493) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:372) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(ReadOnlyObjectPropertyBase.java:80) at javafx.base@22.0.1/javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:102) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147) at javafx.controls@22.0.1/javafx.scene.control.SelectionModel.setSelectedItem(SelectionModel.java:105) at javafx.controls@22.0.1/javafx.scene.control.TabPane$TabPaneSelectionModel.select(TabPane.java:652) at javafx.controls@22.0.1/javafx.scene.control.TabPane$TabPaneSelectionModel.select(TabPane.java:670) at javafx.controls@22.0.1/javafx.scene.control.TabPane$TabPaneSelectionModel.findNearestAvailableTab(TabPane.java:726) at javafx.controls@22.0.1/javafx.scene.control.TabPane$TabPaneSelectionModel.lambda$new$0(TabPane.java:611) at javafx.base@22.0.1/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:327) at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71) at javafx.base@22.0.1/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246) at javafx.base@22.0.1/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base@22.0.1/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base@22.0.1/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:210) at javafx.base@22.0.1/javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:228) at javafx.base@22.0.1/javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:216) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrame.closeTabs(JabRefFrame.java:492) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrameViewModel.close(JabRefFrameViewModel.java:117) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrame.close(JabRefFrame.java:464) at org.jabref@100.0.0/org.jabref.gui.JabRefGUI.onCloseRequest(JabRefGUI.java:192) at javafx.base@22.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at javafx.base@22.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232) at javafx.base@22.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189) at javafx.base@22.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base@22.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base@22.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base@22.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.base@22.0.1/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics@22.0.1/com.sun.javafx.stage.WindowPeerListener.closing(WindowPeerListener.java:100) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:147) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:40) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.lambda$handleWindowEvent$4(GlassWindowEventHandler.java:178) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:430) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:176) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.handleWindowEvent(Window.java:1259) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.notifyClose(Window.java:1164) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:264) at java.base/java.lang.Thread.run(Thread.java:1583) 2024-04-28 19:45:46 [JavaFX Application Thread] org.jabref.gui.FallbackExceptionHandler.uncaughtException() ERROR: Uncaught exception occurred in Thread[#39,JavaFX Application Thread,5,main]: java.lang.ArrayIndexOutOfBoundsException: Index 14 out of bounds for length 11 at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper$Generic.addListener(ListListenerHelper.java:268) at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper.addListener(ListListenerHelper.java:58) at javafx.base@22.0.1/javafx.collections.ObservableListBase.addListener(ObservableListBase.java:233) at javafx.base@22.0.1/javafx.collections.FXCollections$UnmodifiableObservableListImpl.(FXCollections.java:949) at javafx.base@22.0.1/javafx.collections.FXCollections.unmodifiableObservableList(FXCollections.java:405) at org.jabref@100.0.0/org.jabref.model.TreeNode.getChildren(TreeNode.java:414) at org.jabref@100.0.0/org.jabref.model.groups.GroupTreeNode.equals(GroupTreeNode.java:130) at org.jabref@100.0.0/org.jabref.gui.groups.GroupNodeViewModel.equals(GroupNodeViewModel.java:185) at javafx.controls@22.0.1/javafx.scene.control.TreeTableCell.updateItem(TreeTableCell.java:681) at javafx.controls@22.0.1/javafx.scene.control.TreeTableCell.indexChanged(TreeTableCell.java:475) at javafx.controls@22.0.1/javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:128) at javafx.controls@22.0.1/javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:525) at javafx.controls@22.0.1/javafx.scene.control.skin.TreeTableRowSkin.updateCells(TreeTableRowSkin.java:280) at javafx.controls@22.0.1/javafx.scene.control.skin.TableRowSkinBase.checkState(TableRowSkinBase.java:645) at javafx.controls@22.0.1/javafx.scene.control.skin.TableRowSkinBase.computePrefHeight(TableRowSkinBase.java:575) at javafx.controls@22.0.1/javafx.scene.control.Control.computePrefHeight(Control.java:581) at javafx.graphics@22.0.1/javafx.scene.Parent.prefHeight(Parent.java:1041) at javafx.graphics@22.0.1/javafx.scene.layout.Region.prefHeight(Region.java:1552) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow.resizeCell(VirtualFlow.java:2001) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow.addLeadingCells(VirtualFlow.java:2108) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1325) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow$5.invalidated(VirtualFlow.java:897) at javafx.base@22.0.1/javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:148) at javafx.controls@22.0.1/javafx.scene.control.skin.VirtualFlow.setCellCount(VirtualFlow.java:912) at javafx.controls@22.0.1/javafx.scene.control.skin.TreeTableViewSkin.updateItemCount(TreeTableViewSkin.java:354) at javafx.controls@22.0.1/javafx.scene.control.skin.TreeTableViewSkin.setRoot(TreeTableViewSkin.java:326) at javafx.controls@22.0.1/javafx.scene.control.skin.TreeTableViewSkin.lambda$new$14(TreeTableViewSkin.java:134) at javafx.controls@22.0.1/com.sun.javafx.scene.control.ListenerHelper$4.changed(ListenerHelper.java:212) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:372) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase$Listener.invalidated(ObjectPropertyBase.java:234) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:147) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:192) at javafx.base@22.0.1/com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:147) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147) ERROR: Uncaught exception occurred in Thread[#39,JavaFX Application Thread,5,main]: java.lang.ArrayIndexOutOfBoundsException: Index 14 out of bounds for length 11 at javafx.base@22.0.1/javafx.beans.property.ObjectProperty.setValue(ObjectProperty.java:78) at org.jabref@100.0.0/org.jabref.gui.groups.GroupTreeViewModel.onActiveDatabaseChanged(GroupTreeViewModel.java:155) at com.tobiasdiez.easybind@2.2.1-SNAPSHOT/com.tobiasdiez.easybind.EasyBind.lambda$subscribe$1(EasyBind.java:493) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:372) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147) at org.jabref@100.0.0/org.jabref.gui.StateManager.setActiveDatabase(StateManager.java:164) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrame.lambda$initBindings$7(JabRefFrame.java:338) at com.tobiasdiez.easybind@2.2.1-SNAPSHOT/com.tobiasdiez.easybind.EasyBind.lambda$subscribe$1(EasyBind.java:493) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:372) at javafx.base@22.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91) at javafx.base@22.0.1/javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(ReadOnlyObjectPropertyBase.java:80) at javafx.base@22.0.1/javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:102) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113) at javafx.base@22.0.1/javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147) at javafx.controls@22.0.1/javafx.scene.control.SelectionModel.setSelectedItem(SelectionModel.java:105) at javafx.controls@22.0.1/javafx.scene.control.TabPane$TabPaneSelectionModel.select(TabPane.java:652) at javafx.controls@22.0.1/javafx.scene.control.TabPane$TabPaneSelectionModel.select(TabPane.java:670) at javafx.controls@22.0.1/javafx.scene.control.TabPane$TabPaneSelectionModel.findNearestAvailableTab(TabPane.java:726) at javafx.controls@22.0.1/javafx.scene.control.TabPane$TabPaneSelectionModel.lambda$new$0(TabPane.java:611) at javafx.base@22.0.1/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:327) at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71) at javafx.base@22.0.1/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246) at javafx.base@22.0.1/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482) at javafx.base@22.0.1/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541) at javafx.base@22.0.1/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:210) at javafx.base@22.0.1/javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:228) at javafx.base@22.0.1/javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:216) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrame.closeTabs(JabRefFrame.java:492) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrameViewModel.close(JabRefFrameViewModel.java:117) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrame.close(JabRefFrame.java:464) at org.jabref@100.0.0/org.jabref.gui.JabRefGUI.onCloseRequest(JabRefGUI.java:192) at javafx.base@22.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at javafx.base@22.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232) at javafx.base@22.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189) at javafx.base@22.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base@22.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base@22.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base@22.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.base@22.0.1/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics@22.0.1/com.sun.javafx.stage.WindowPeerListener.closing(WindowPeerListener.java:100) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:147) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:40) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.lambda$handleWindowEvent$4(GlassWindowEventHandler.java:178) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:430) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:176) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.handleWindowEvent(Window.java:1259) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.notifyClose(Window.java:1164) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:264) at java.base/java.lang.Thread.run(Thread.java:1583) 2024-04-28 19:45:46 [JavaFX Application Thread] org.jabref.gui.LibraryTab.onClosed() ERROR: Problem when shutting down backup manager: java.lang.ArrayIndexOutOfBoundsException: Index 15 out of bounds for length 11 at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper$Generic.addListener(ListListenerHelper.java:268) ERROR: Problem when shutting down backup manager: java.lang.ArrayIndexOutOfBoundsException: Index 15 out of bounds for length 11 at javafx.base@22.0.1/com.sun.javafx.collections.ListListenerHelper.addListener(ListListenerHelper.java:58) at javafx.base@22.0.1/javafx.collections.ObservableListBase.addListener(ObservableListBase.java:233) at javafx.base@22.0.1/javafx.collections.FXCollections$UnmodifiableObservableListImpl.(FXCollections.java:949) at javafx.base@22.0.1/javafx.collections.FXCollections.unmodifiableObservableList(FXCollections.java:405) at org.jabref@100.0.0/org.jabref.model.TreeNode.getChildren(TreeNode.java:414) at org.jabref@100.0.0/org.jabref.logic.exporter.GroupSerializer.serializeTree(GroupSerializer.java:109) at org.jabref@100.0.0/org.jabref.logic.exporter.MetaDataSerializer.serializeGroups(MetaDataSerializer.java:149) at org.jabref@100.0.0/org.jabref.logic.exporter.MetaDataSerializer.lambda$getSerializedStringMap$8(MetaDataSerializer.java:74) at java.base/java.util.Optional.ifPresent(Optional.java:178) at org.jabref@100.0.0/org.jabref.logic.exporter.MetaDataSerializer.getSerializedStringMap(MetaDataSerializer.java:73) at org.jabref@100.0.0/org.jabref.logic.exporter.BibDatabaseWriter.writeMetaData(BibDatabaseWriter.java:232) at org.jabref@100.0.0/org.jabref.logic.exporter.BibDatabaseWriter.savePartOfDatabase(BibDatabaseWriter.java:210) at org.jabref@100.0.0/org.jabref.logic.exporter.BibDatabaseWriter.saveDatabase(BibDatabaseWriter.java:157) at org.jabref@100.0.0/org.jabref.gui.autosaveandbackup.BackupManager.performBackup(BackupManager.java:275) at java.base/java.util.Optional.ifPresent(Optional.java:178) at org.jabref@100.0.0/org.jabref.gui.autosaveandbackup.BackupManager.shutdown(BackupManager.java:369) 2024-04-28 19:45:46 [JavaFX Application Thread] org.jabref.gui.StateManager.setActiveDatabase() INFO: No open database detected at org.jabref@100.0.0/org.jabref.gui.autosaveandbackup.BackupManager.lambda$shutdown$3(BackupManager.java:131) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at org.jabref@100.0.0/org.jabref.gui.autosaveandbackup.BackupManager.shutdown(BackupManager.java:131) at org.jabref@100.0.0/org.jabref.gui.LibraryTab.onClosed(LibraryTab.java:846) at javafx.base@22.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at javafx.base@22.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232) at javafx.base@22.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189) at javafx.base@22.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base@22.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base@22.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.base@22.0.1/javafx.event.Event.fireEvent(Event.java:198) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrame.closeTabs(JabRefFrame.java:493) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrameViewModel.close(JabRefFrameViewModel.java:117) at org.jabref@100.0.0/org.jabref.gui.frame.JabRefFrame.close(JabRefFrame.java:464) at org.jabref@100.0.0/org.jabref.gui.JabRefGUI.onCloseRequest(JabRefGUI.java:192) at javafx.base@22.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at javafx.base@22.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232) at javafx.base@22.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189) at javafx.base@22.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base@22.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base@22.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base@22.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base@22.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.base@22.0.1/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics@22.0.1/com.sun.javafx.stage.WindowPeerListener.closing(WindowPeerListener.java:100) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:147) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:40) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.lambda$handleWindowEvent$4(GlassWindowEventHandler.java:178) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:430) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:176) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.handleWindowEvent(Window.java:1259) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.notifyClose(Window.java:1164) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:264) at java.base/java.lang.Thread.run(Thread.java:1583) 2024-04-28 19:45:46 [JavaFX Application Thread] org.jabref.gui.FallbackExceptionHandler.uncaughtException() ERROR: Uncaught exception occurred in Thread[#39,JavaFX Application Thread,5,main]: java.lang.IllegalArgumentException: Key not associated with a running event loop: javafx.scene.control.HeavyweightDialog$1@58551adb at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.exitNestedEventLoop(QuantumToolkit.java:672) at javafx.graphics@22.0.1/javafx.stage.Stage.doVisibleChanged(Stage.java:1205) at javafx.graphics@22.0.1/javafx.stage.Stage$1.doVisibleChanged(Stage.java:190) at javafx.graphics@22.0.1/com.sun.javafx.stage.StageHelper.visibleChangedImpl(StageHelper.java:63) at javafx.graphics@22.0.1/com.sun.javafx.stage.WindowHelper.visibleChanged(WindowHelper.java:77) at javafx.graphics@22.0.1/javafx.stage.Window$12.invalidated(Window.java:1214) ERROR: Uncaught exception occurred in Thread[#39,JavaFX Application Thread,5,main]: java.lang.IllegalArgumentException: Key not associated with a running event loop: javafx.scene.control.HeavyweightDialog$1@58551adb at javafx.base@22.0.1/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110) at javafx.base@22.0.1/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145) at javafx.graphics@22.0.1/javafx.stage.Window.setShowing(Window.java:1241) at javafx.graphics@22.0.1/javafx.stage.Window.hide(Window.java:1266) at javafx.graphics@22.0.1/com.sun.javafx.stage.WindowPeerListener.closed(WindowPeerListener.java:112) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:144) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:40) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.lambda$handleWindowEvent$4(GlassWindowEventHandler.java:178) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:430) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:176) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.handleWindowEvent(Window.java:1259) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.notifyDestroy(Window.java:1173) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkWindow._close(Native Method) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.close(Window.java:311) at javafx.graphics@22.0.1/com.sun.glass.ui.Application.terminate(Application.java:395) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$exit$14(QuantumToolkit.java:852) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithRenderLock(QuantumToolkit.java:448) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.exit(QuantumToolkit.java:848) at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.lambda$tkExit$16(PlatformImpl.java:623) at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:483) at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:456) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:455) at javafx.graphics@22.0.1/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:264) at java.base/java.lang.Thread.run(Thread.java:1583) 2024-04-28 19:45:46 [JavaFX Application Thread] org.jabref.gui.FallbackExceptionHandler.uncaughtException() ERROR: Uncaught exception occurred in Thread[#39,JavaFX Application Thread,5,main]: java.lang.IllegalArgumentException: Key not associated with a running event loop: javafx.scene.control.HeavyweightDialog$1@13cc9cd9 at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.exitNestedEventLoop(QuantumToolkit.java:672) at javafx.graphics@22.0.1/javafx.stage.Stage.doVisibleChanged(Stage.java:1205) at javafx.graphics@22.0.1/javafx.stage.Stage$1.doVisibleChanged(Stage.java:190) at javafx.graphics@22.0.1/com.sun.javafx.stage.StageHelper.visibleChangedImpl(StageHelper.java:63) at javafx.graphics@22.0.1/com.sun.javafx.stage.WindowHelper.visibleChanged(WindowHelper.java:77) at javafx.graphics@22.0.1/javafx.stage.Window$12.invalidated(Window.java:1214) at javafx.base@22.0.1/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110) at javafx.base@22.0.1/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145) at javafx.graphics@22.0.1/javafx.stage.Window.setShowing(Window.java:1241) at javafx.graphics@22.0.1/javafx.stage.Window.hide(Window.java:1266) at javafx.graphics@22.0.1/com.sun.javafx.stage.WindowPeerListener.closed(WindowPeerListener.java:112) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:144) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:40) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.lambda$handleWindowEvent$4(GlassWindowEventHandler.java:178) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:430) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:176) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.handleWindowEvent(Window.java:1259) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.notifyDestroy(Window.java:1173) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkWindow._close(Native Method) at javafx.graphics@22.0.1/com.sun.glass.ui.Window.close(Window.java:311) at javafx.graphics@22.0.1/com.sun.glass.ui.Application.terminate(Application.java:395) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$exit$14(QuantumToolkit.java:852) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithRenderLock(QuantumToolkit.java:448) at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.exit(QuantumToolkit.java:848) at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.lambda$tkExit$16(PlatformImpl.java:623) at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:483) at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:456) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:455) at javafx.graphics@22.0.1/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at javafx.graphics@22.0.1/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) ERROR: Uncaught exception occurred in Thread[#39,JavaFX Application Thread,5,main]: java.lang.IllegalArgumentException: Key not associated with a running event loop: javafx.scene.control.HeavyweightDialog$1@13cc9cd9 ```
Siedlerchr commented 5 months ago

Seems like something is wrong with the group diff