Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IllegalArgumentException: URI is not absolute #12186

Open
2 tasks done
ytzemih opened this issue Nov 12, 2024 · 11 comments · May be fixed by #12246
Open
2 tasks done

IllegalArgumentException: URI is not absolute #12186

ytzemih opened this issue Nov 12, 2024 · 11 comments · May be fixed by #12246
Labels
bug Confirmed bugs or reports that are very likely to be bugs good first issue An issue intended for project-newcomers. Varies in difficulty.

Comments

@ytzemih
Copy link

ytzemih commented Nov 12, 2024

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)

  • 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. I've just been using global search.

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 [email protected]/org.jabref.logic.importer.util.FileFieldParser.convert(Unknown Source)
	at [email protected]/org.jabref.logic.importer.util.FileFieldParser.parse(Unknown Source)
	at [email protected]/org.jabref.logic.importer.util.FileFieldParser.parse(Unknown Source)
	at java.base/java.util.Optional.map(Unknown Source)
	at [email protected]/com.tobiasdiez.easybind.optional.PreboundOptionalBinding$1.computeValue(Unknown Source)
	at [email protected]/com.tobiasdiez.easybind.optional.PreboundOptionalBinding$1.computeValue(Unknown Source)
	at [email protected]/javafx.beans.binding.ObjectBinding.get(Unknown Source)
	at [email protected]/javafx.beans.binding.ObjectExpression.getValue(Unknown Source)
	at [email protected]/com.tobiasdiez.easybind.optional.PreboundOptionalBinding$3.computeValue(Unknown Source)
	at [email protected]/javafx.beans.binding.ObjectBinding.get(Unknown Source)
	at [email protected]/javafx.beans.binding.ObjectExpression.getValue(Unknown Source)
	at [email protected]/javafx.scene.control.TableCell.updateItem(Unknown Source)
	at [email protected]/javafx.scene.control.TableCell.indexChanged(Unknown Source)
	at [email protected]/javafx.scene.control.IndexedCell.updateIndex(Unknown Source)
	at [email protected]/javafx.scene.control.skin.TableRowSkinBase.updateCells(Unknown Source)
	at [email protected]/javafx.scene.control.skin.TableRowSkinBase.checkState(Unknown Source)
	at [email protected]/javafx.scene.control.skin.TableRowSkinBase.computePrefHeight(Unknown Source)
	at [email protected]/javafx.scene.control.Control.computePrefHeight(Unknown Source)
	at [email protected]/javafx.scene.Parent.prefHeight(Unknown Source)
	at [email protected]/javafx.scene.layout.Region.prefHeight(Unknown Source)
	at [email protected]/javafx.scene.control.skin.VirtualFlow.resizeCell(Unknown Source)
	at [email protected]/javafx.scene.control.skin.VirtualFlow.getCell(Unknown Source)
	at [email protected]/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(Unknown Source)
	at [email protected]/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(Unknown Source)
	at [email protected]/javafx.scene.control.skin.VirtualFlow.recalculateAndImproveEstimatedSize(Unknown Source)
	at [email protected]/javafx.scene.control.skin.VirtualFlow.recalculateAndImproveEstimatedSize(Unknown Source)
	at [email protected]/javafx.scene.control.skin.VirtualFlow.recalculateEstimatedSize(Unknown Source)
	at [email protected]/javafx.scene.control.skin.VirtualFlow.layoutChildren(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Parent.layout(Unknown Source)
	at [email protected]/javafx.scene.Scene.doLayoutPass(Unknown Source)
	at [email protected]/javafx.scene.Scene$ScenePulseListener.pulse(Unknown Source)
	at [email protected]/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at [email protected]/com.sun.javafx.tk.Toolkit.runPulse(Unknown Source)
	at [email protected]/com.sun.javafx.tk.Toolkit.firePulse(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(Unknown Source)
	at [email protected]/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
	at [email protected]/com.sun.glass.ui.gtk.GtkApplication.enterNestedEventLoopImpl(Native Method)
	at [email protected]/com.sun.glass.ui.gtk.GtkApplication._enterNestedEventLoop(Unknown Source)
	at [email protected]/com.sun.glass.ui.Application.enterNestedEventLoop(Unknown Source)
	at [email protected]/com.sun.glass.ui.EventLoop.enter(Unknown Source)
	at [email protected]/com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(Unknown Source)
	at [email protected]/javafx.stage.Stage.showAndWait(Unknown Source)
	at [email protected]/javafx.scene.control.HeavyweightDialog.showAndWait(Unknown Source)
	at [email protected]/javafx.scene.control.Dialog.showAndWait(Unknown Source)
	at [email protected]/org.jabref.gui.JabRefDialogService.showConfirmationDialogAndWait(Unknown Source)
	at [email protected]/org.jabref.gui.search.GlobalSearchBar.lambda$initSearchModifierButtons$8(Unknown Source)
	at [email protected]/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(Unknown Source)
	at [email protected]/javafx.beans.property.BooleanPropertyBase.markInvalid(Unknown Source)
	at [email protected]/javafx.beans.property.BooleanPropertyBase.set(Unknown Source)
	at [email protected]/javafx.scene.control.ToggleButton.setSelected(Unknown Source)
	at [email protected]/org.jabref.gui.search.GlobalSearchBar.lambda$initSearchModifierButtons$14(Unknown Source)
	at [email protected]/com.sun.javafx.collections.SetListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.SetListenerHelper.fireValueChangedEvent(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableSetWrapper.callObservers(Unknown Source)
	at [email protected]/com.sun.javafx.collections.ObservableSetWrapper.remove(Unknown Source)
	at [email protected]/org.jabref.logic.search.SearchPreferences.setSearchFlag(Unknown Source)
	at [email protected]/org.jabref.gui.search.GlobalSearchBar.lambda$initSearchModifierButtons$9(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.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.Node.fireEvent(Unknown Source)
	at [email protected]/javafx.scene.control.ToggleButton.fire(Unknown Source)
	at [email protected]/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(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.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.gtk.GtkApplication._runLoop(Native Method)
	at [email protected]/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
@Siedlerchr
Copy link
Member

It seems to be related to a value in the file field somewhere that cannot be parsed to an URL

@ytzemih
Copy link
Author

ytzemih commented Nov 12, 2024

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.

@koppor koppor added this to the 6.x milestone Nov 12, 2024
@Siedlerchr Siedlerchr added the bug Confirmed bugs or reports that are very likely to be bugs label Nov 12, 2024
@github-project-automation github-project-automation bot moved this to Normal priority in Prioritization Nov 12, 2024
@github-project-automation github-project-automation bot moved this to Free to take in Good First Issues Nov 12, 2024
@Siedlerchr Siedlerchr added the good first issue An issue intended for project-newcomers. Varies in difficulty. label Nov 12, 2024
@koppor koppor moved this from Normal priority to High priority in Prioritization Nov 12, 2024
@koppor koppor removed this from the 6.x milestone Nov 12, 2024
@ytzemih
Copy link
Author

ytzemih commented Nov 13, 2024

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:

  1. Edit the file field of an entry
  2. Add file link
  3. Copy the URL from the snippet into the "Link" field
  4. Choose filetype URL
  5. Press "add"

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.

@koppor
Copy link
Member

koppor commented Nov 16, 2024

After #12156 is merged, we can work on this.

@yash-agrawal03
Copy link

/assign-me

Copy link
Contributor

👋 Hey @yash-agrawal03, thank you for your interest in this issue! 🎉

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! 🚀

⏳ Please note, you will be automatically unassigned if the issue isn't closed within 90 days (by 21 February 2025). A maintainer can also add the "📌 Pinned"" label to prevent automatic unassignment.

@github-actions github-actions bot added the 📍 Assigned Assigned by assign-issue-action (or manually assigned) label Nov 23, 2024
@yash-agrawal03
Copy link

@koppor by when is the pr #12156 expected to close? I have to wait for that PR to get closed right?

@koppor
Copy link
Member

koppor commented Nov 25, 2024

@yash-agrawal03 I worked on it, it is merged now.

@yash-agrawal03
Copy link

Thank-You koppor, I will start working on this issue.

@subhramit subhramit moved this from Free to take to Assigned in Good First Issues Nov 30, 2024
@koppor
Copy link
Member

koppor commented Dec 10, 2024

/unassign @yash-agrawal03

@koppor koppor moved this from Assigned to Free to take in Good First Issues Dec 10, 2024
Copy link
Contributor

👋 Hey @yash-agrawal03, you've been automatically unassigned from this issue due to inactivity.

Note

If you'd like to be re-assigned, just leave another comment or ask a maintainer to assign you again.
If you're still actively working on the issue, let us know by commenting, and we can pin it to prevent automatic unassignment.

@github-actions github-actions bot removed the 📍 Assigned Assigned by assign-issue-action (or manually assigned) label Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Confirmed bugs or reports that are very likely to be bugs good first issue An issue intended for project-newcomers. Varies in difficulty.
Projects
Status: Free to take
Status: High priority
Development

Successfully merging a pull request may close this issue.

4 participants