Skip to content

Uncaught java.lang.IndexOutOfBoundsException #13635

@ryan-carpenter

Description

@ryan-carpenter

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

  1. Paste a string of semi-colon separated keywords into the keywords field (plain ascii, total of 99 characters)
  2. IndexOutOfBoundsException
  3. Keywords are added as expected
  4. 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)

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions