Open ytzemih opened 1 week ago
It seems to be related to a value in the file field somewhere that cannot be parsed to an URL
That makes sense, though, I haven't seen these exceptions before. Perhaps, the URI parser is now less relaxed? Ok, I'll try to check the file fields and see whether I can find something odd.
Alright, I can replicate this exception with the following MWE:
@InProceedings{Test,
author = {Test},
title = {Test},
file = {A test:www.yahoo.com/abc/cde.htm:URL},
}
It is derived from an entry existing in my DB, so not constructed. The repair amounts to adding a http://
.
Alternatively, you can stimulate this exception with:
I suppose that the exception will pop up wherever the URL parser is used. I've had some incomplete URLs in my DB files, but JR 6 now complains.
After https://github.com/JabRef/jabref/pull/12156/ is merged, we can work on this.
JabRef version
Latest development branch build (please note build date below)
Operating system
GNU / Linux
Details on version and operating system
JabRef 6.0--2024-11-05--4705977 Linux 6.1.0-26-amd64 amd64 Java 21.0.5 JavaFX 23.0.1+4
Checked with the latest development build (copy version output from About dialog)
Steps to reproduce the behaviour
Unfortunately, I can't quite reproduce this issue, although I've had this exception a few times already. It appears to be related to when I use search, the entry list when a group is selected. Also, it seems to happen after JR has been running for a while.
Appendix
...
Log File
``` java.lang.IllegalArgumentException: URI is not absolute at java.base/java.net.URL.of(Unknown Source) at java.base/java.net.URI.toURL(Unknown Source) at org.jabref@6.0.6556/org.jabref.logic.importer.util.FileFieldParser.convert(Unknown Source) at org.jabref@6.0.6556/org.jabref.logic.importer.util.FileFieldParser.parse(Unknown Source) at org.jabref@6.0.6556/org.jabref.logic.importer.util.FileFieldParser.parse(Unknown Source) at java.base/java.util.Optional.map(Unknown Source) at com.tobiasdiez.easybind@2.2.1-SNAPSHOT/com.tobiasdiez.easybind.optional.PreboundOptionalBinding$1.computeValue(Unknown Source) at com.tobiasdiez.easybind@2.2.1-SNAPSHOT/com.tobiasdiez.easybind.optional.PreboundOptionalBinding$1.computeValue(Unknown Source) at javafx.base@23.0.1/javafx.beans.binding.ObjectBinding.get(Unknown Source) at javafx.base@23.0.1/javafx.beans.binding.ObjectExpression.getValue(Unknown Source) at com.tobiasdiez.easybind@2.2.1-SNAPSHOT/com.tobiasdiez.easybind.optional.PreboundOptionalBinding$3.computeValue(Unknown Source) at javafx.base@23.0.1/javafx.beans.binding.ObjectBinding.get(Unknown Source) at javafx.base@23.0.1/javafx.beans.binding.ObjectExpression.getValue(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.TableCell.updateItem(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.TableCell.indexChanged(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.IndexedCell.updateIndex(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.TableRowSkinBase.updateCells(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.TableRowSkinBase.checkState(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.TableRowSkinBase.computePrefHeight(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.Control.computePrefHeight(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.prefHeight(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.layout.Region.prefHeight(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.VirtualFlow.resizeCell(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.VirtualFlow.getCell(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.VirtualFlow.recalculateAndImproveEstimatedSize(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.VirtualFlow.recalculateAndImproveEstimatedSize(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.VirtualFlow.recalculateEstimatedSize(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.skin.VirtualFlow.layoutChildren(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Parent.layout(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Scene.doLayoutPass(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Scene$ScenePulseListener.pulse(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.Toolkit.runPulse(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.Toolkit.firePulse(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(Unknown Source) at javafx.graphics@23.0.1/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source) at javafx.graphics@23.0.1/com.sun.glass.ui.gtk.GtkApplication.enterNestedEventLoopImpl(Native Method) at javafx.graphics@23.0.1/com.sun.glass.ui.gtk.GtkApplication._enterNestedEventLoop(Unknown Source) at javafx.graphics@23.0.1/com.sun.glass.ui.Application.enterNestedEventLoop(Unknown Source) at javafx.graphics@23.0.1/com.sun.glass.ui.EventLoop.enter(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(Unknown Source) at javafx.graphics@23.0.1/javafx.stage.Stage.showAndWait(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.HeavyweightDialog.showAndWait(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.Dialog.showAndWait(Unknown Source) at org.jabref@6.0.6556/org.jabref.gui.JabRefDialogService.showConfirmationDialogAndWait(Unknown Source) at org.jabref@6.0.6556/org.jabref.gui.search.GlobalSearchBar.lambda$initSearchModifierButtons$8(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source) at javafx.base@23.0.1/javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(Unknown Source) at javafx.base@23.0.1/javafx.beans.property.BooleanPropertyBase.markInvalid(Unknown Source) at javafx.base@23.0.1/javafx.beans.property.BooleanPropertyBase.set(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.ToggleButton.setSelected(Unknown Source) at org.jabref@6.0.6556/org.jabref.gui.search.GlobalSearchBar.lambda$initSearchModifierButtons$14(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.collections.SetListenerHelper$Generic.fireValueChangedEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.collections.SetListenerHelper.fireValueChangedEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.collections.ObservableSetWrapper.callObservers(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.collections.ObservableSetWrapper.remove(Unknown Source) at org.jabref@6.0.6556/org.jabref.logic.search.SearchPreferences.setSearchFlag(Unknown Source) at org.jabref@6.0.6556/org.jabref.gui.search.GlobalSearchBar.lambda$initSearchModifierButtons$9(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) at javafx.base@23.0.1/javafx.event.Event.fireEvent(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Node.fireEvent(Unknown Source) at javafx.controls@23.0.1/javafx.scene.control.ToggleButton.fire(Unknown Source) at javafx.controls@23.0.1/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(Unknown Source) at javafx.controls@23.0.1/com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) at javafx.base@23.0.1/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) at javafx.base@23.0.1/javafx.event.Event.fireEvent(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Scene$MouseHandler.process(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Scene.processMouseEvent(Unknown Source) at javafx.graphics@23.0.1/javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source) at javafx.graphics@23.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source) at javafx.graphics@23.0.1/com.sun.glass.ui.View.handleMouseEvent(Unknown Source) at javafx.graphics@23.0.1/com.sun.glass.ui.View.notifyMouse(Unknown Source) at javafx.graphics@23.0.1/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at javafx.graphics@23.0.1/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) ```