Crash al indexar PDF - IndexOutOfBoundsException en JavaFX
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
- ...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
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)
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).
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.