-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Description
JabRef version
Other (please describe below)
Operating system
GNU / Linux
Details on version and operating system
openSUSE Tumbleweed
Checked with the latest development build (copy version output from About dialog)
- I made a backup of my libraries before testing the latest development version.
- I have tested the latest development version and the problem persists
Steps to reproduce the behaviour
- Paste a string of semi-colon separated keywords into the keywords field (plain ascii, total of 99 characters)
- IndexOutOfBoundsException
- Keywords are added as expected
- Modified library remains unsaved, as expected
Update:
- Removing keywords by clicking on the 'x' also produces the exception.
- Adding keywords in a custom tab or in the 'General' tab has the same result
- The resulting source appears normal. Editing the source also produces the exception.
JabRef 100.0.0
Linux 6.15.7-1-default amd64
Java 24.0.1
JavaFX 24.0.1+4
Appendix
...
Log File
java.lang.IndexOutOfBoundsException: Range [0, 5) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.util.Objects.checkFromToIndex(Objects.java:391)
at [email protected]/com.sun.javafx.collections.ObservableListWrapper.remove(ObservableListWrapper.java:163)
at [email protected]/com.sun.javafx.binding.BidirectionalContentBinding$ListContentBinding.onChanged(BidirectionalContentBinding.java:132)
at [email protected]/com.sun.javafx.binding.ListExpressionHelper$Generic.notifyListeners(ListExpressionHelper.java:591)
at [email protected]/com.sun.javafx.binding.ListExpressionHelper$Generic.fireValueChangedEvent(ListExpressionHelper.java:569)
at [email protected]/com.sun.javafx.binding.ListExpressionHelper.fireValueChangedEvent(ListExpressionHelper.java:107)
at [email protected]/javafx.beans.property.ListPropertyBase.fireValueChangedEvent(ListPropertyBase.java:203)
at [email protected]/javafx.beans.property.ListPropertyBase.lambda$new$0(ListPropertyBase.java:57)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:162)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71)
at [email protected]/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246)
at [email protected]/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
at [email protected]/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:210)
at [email protected]/javafx.collections.ModifiableObservableListBase.setAll(ModifiableObservableListBase.java:102)
at [email protected]/javafx.beans.binding.ListExpression.setAll(ListExpression.java:342)
at org.jabref/org.jabref.gui.util.BindingsHelper.lambda$bindContentBidirectional$0(BindingsHelper.java:110)
at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalListBinding.changed(BindingsHelper.java:315)
at [email protected]/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:386)
at [email protected]/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91)
at [email protected]/javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:104)
at [email protected]/javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:111)
at [email protected]/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145)
at [email protected]/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:50)
at [email protected]/javafx.beans.property.StringProperty.setValue(StringProperty.java:71)
at [email protected]/javafx.beans.property.StringProperty.setValue(StringProperty.java:57)
at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalBinding.updateLocked(BindingsHelper.java:287)
at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalBinding.changedB(BindingsHelper.java:280)
at [email protected]/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:192)
at [email protected]/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91)
at [email protected]/javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:192)
at [email protected]/com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52)
at [email protected]/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(MapListenerHelper.java:318)
at [email protected]/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(MapListenerHelper.java:70)
at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.callObservers(ObservableMapWrapper.java:115)
at [email protected]/com.sun.javafx.collections.ObservableMapWrapper.put(ObservableMapWrapper.java:169)
at org.jabref.jablib/org.jabref.model.entry.BibEntry.setField(BibEntry.java:628)
at org.jabref.jablib/org.jabref.model.entry.BibEntry.setField(BibEntry.java:646)
at org.jabref/org.jabref.gui.fieldeditors.AbstractEditorViewModel.lambda$bindToEntry$0(AbstractEditorViewModel.java:72)
at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalBinding.updateLocked(BindingsHelper.java:287)
at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalBinding.changedA(BindingsHelper.java:276)
at [email protected]/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:386)
at [email protected]/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:91)
at [email protected]/javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:104)
at [email protected]/javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:111)
at [email protected]/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145)
at [email protected]/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:50)
at [email protected]/javafx.beans.property.StringProperty.setValue(StringProperty.java:71)
at [email protected]/javafx.beans.property.StringProperty.setValue(StringProperty.java:57)
at org.jabref/org.jabref.gui.util.BindingsHelper.lambda$bindContentBidirectional$1(BindingsHelper.java:111)
at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalListBinding.onChanged(BindingsHelper.java:327)
at [email protected]/com.sun.javafx.binding.ListExpressionHelper$Generic.notifyListeners(ListExpressionHelper.java:591)
at [email protected]/com.sun.javafx.binding.ListExpressionHelper$Generic.fireValueChangedEvent(ListExpressionHelper.java:569)
at [email protected]/com.sun.javafx.binding.ListExpressionHelper.fireValueChangedEvent(ListExpressionHelper.java:107)
at [email protected]/javafx.beans.property.ListPropertyBase.fireValueChangedEvent(ListPropertyBase.java:203)
at [email protected]/javafx.beans.property.ListPropertyBase.lambda$new$0(ListPropertyBase.java:57)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:162)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71)
at [email protected]/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246)
at [email protected]/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
at [email protected]/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:210)
at [email protected]/javafx.collections.ModifiableObservableListBase.addAll(ModifiableObservableListBase.java:136)
at [email protected]/javafx.beans.binding.ListExpression.addAll(ListExpression.java:267)
at [email protected]/com.sun.javafx.binding.BidirectionalContentBinding$ListContentBinding.onChanged(BidirectionalContentBinding.java:135)
at [email protected]/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:327)
at [email protected]/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71)
at [email protected]/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246)
at [email protected]/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
at [email protected]/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
at [email protected]/javafx.collections.ObservableListBase.endChange(ObservableListBase.java:210)
at [email protected]/javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:200)
at java.base/java.util.AbstractList.add(AbstractList.java:113)
at [email protected]/com.dlsc.gemsfx.TagsField$AddTagCommand.execute(TagsField.java:250)
at [email protected]/com.dlsc.gemsfx.TagsField.execute(TagsField.java:300)
at [email protected]/com.dlsc.gemsfx.TagsField.addTags(TagsField.java:167)
at org.jabref/org.jabref.gui.fieldeditors.KeywordsEditor.lambda$new$8(KeywordsEditor.java:148)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:807)
at org.jabref/org.jabref.gui.fieldeditors.KeywordsEditor.lambda$new$7(KeywordsEditor.java:148)
at [email protected]/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
at [email protected]/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
at [email protected]/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at [email protected]/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at [email protected]/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at [email protected]/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at [email protected]/javafx.scene.Scene.processKeyEvent(Scene.java:2240)
at [email protected]/javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2770)
at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.get(GlassViewEventHandler.java:175)
at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.get(GlassViewEventHandler.java:119)
at [email protected]/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
at [email protected]/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:203)
at [email protected]/com.sun.glass.ui.View.handleKeyEvent(View.java:550)
at [email protected]/com.sun.glass.ui.View.notifyKey(View.java:975)
at [email protected]/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at [email protected]/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$1(GtkApplication.java:240)
at java.base/java.lang.Thread.run(Thread.java:1447)