jabref icon indicating copy to clipboard operation
jabref copied to clipboard

Crash al indexar PDF - IndexOutOfBoundsException en JavaFX

Open yoaqui opened this issue 3 months ago • 3 comments

JabRef version

5.15 (latest release)

Operating system

Windows

Details on version and operating system

No response

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

  • [x] I made a backup of my libraries before testing the latest development version.
  • [x] I have tested the latest development version and the problem persists

Steps to reproduce the behaviour

  1. ...Descripción:

Versión de JabRef: 5.15 Sistema operativo: Windows 10/11 Versión de Java: 23.0.1 Acción que causa el error: Intentar indexar un PDF desde la interfaz. Stack trace: Copia el bloque que compartiste (entre para formato de código). Comportamiento esperado: Indexar el PDF sin cerrar la aplicación. Comportamiento actual: JabRef se cierra inesperadamente. 2. ... 3. ...

Appendix

...

Log File
Paste an excerpt of your log file here

yoaqui avatar Nov 29 '25 01:11 yoaqui

java.lang.IndexOutOfBoundsException: [ fromIndex: 0, toIndex: 2, size: 1 ] at [email protected]/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.subList(Unknown Source) at [email protected]/javafx.collections.ListChangeListener$Change.getAddedSubList(Unknown Source) at [email protected]/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.getAddedElements(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]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.lambda$new$0(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.setAll(Unknown Source) at [email protected]/com.sun.javafx.scene.control.SelectedCellsMap.setAll(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.gui.UpdateTimestampListener.listen(Unknown Source) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at [email protected]/com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Unknown Source) at [email protected]/com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Unknown Source) at [email protected]/com.google.common.eventbus.Subscriber.lambda$dispatchEvent$0(Unknown Source) at [email protected]/com.google.common.util.concurrent.DirectExecutor.execute(Unknown Source) at [email protected]/com.google.common.eventbus.Subscriber.dispatchEvent(Unknown Source) at [email protected]/com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Unknown Source) at [email protected]/com.google.common.eventbus.EventBus.post(Unknown Source) at [email protected]/org.jabref.model.database.BibDatabase.relayEntryChangeEvent(Unknown Source) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at [email protected]/com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Unknown Source) at [email protected]/com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Unknown Source) at [email protected]/com.google.common.eventbus.Subscriber.lambda$dispatchEvent$0(Unknown Source) at [email protected]/com.google.common.util.concurrent.DirectExecutor.execute(Unknown Source) at [email protected]/com.google.common.eventbus.Subscriber.dispatchEvent(Unknown Source) at [email protected]/com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Unknown Source) at [email protected]/com.google.common.eventbus.EventBus.post(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.lambda$setCurrentlyEditedEntry$7(Unknown Source) at [email protected]/com.tobiasdiez.easybind.EasyBind.subscribe(Unknown Source) at [email protected]/org.jabref.gui.entryeditor.EntryEditor.setCurrentlyEditedEntry(Unknown Source) at [email protected]/org.jabref.gui.LibraryTab.lambda$createMainTable$12(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.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]/javafx.scene.control.TableView$TableViewArrayListSelectionModel.clearAndSelect(Unknown Source) at [email protected]/javafx.scene.control.TableView$TableViewSelectionModel.clearAndSelect(Unknown Source) at [email protected]/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.simpleSelect(Unknown Source) at [email protected]/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.doSelect(Unknown Source) at [email protected]/com.sun.javafx.scene.control.behavior.CellBehaviorBase.mousePressed(Unknown Source) at [email protected]/com.sun.javafx.scene.control.inputmap.InputMap.handle(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.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.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)

yoaqui avatar Nov 29 '25 01:11 yoaqui

Comportamiento esperado: Indexar el PDF sin cerrar la aplicación. Comportamiento actual: La aplicación se cierra y muestra el siguiente stack trace: java.lang.IndexOutOfBoundsException: [ fromIndex: 0, toIndex: 2, size: 1 ] at [email protected]/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.subList(Unknown Source) ... (Adjuntar todo el stack trace que compartiste)

Pasos para reproducir:

Abrir JabRef. Intentar indexar un PDF desde la opción correspondiente. La aplicación se cierra.

Notas adicionales:

Probado con Java 23 y Java 17 (LTS). El error ocurre con cualquier PDF. Parece relacionado con la actualización de la interfaz (JavaFX TableView).

yoaqui avatar Nov 29 '25 01:11 yoaqui

This is probably fixed in the latest development build. We need more contributors to work. Please check https://contribute.jabref.org if you find something to contribute. This then frees time on our side to work on the 6.0 release.

koppor avatar Nov 29 '25 09:11 koppor