jabref: Exception for DOI search in case DOI contains masked characters

JabRef version

5.6 (latest release)

Operating system

Windows

Details on version and operating system

Windows 10

Checked with the latest development build

  • 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

Similar issue to #8786 in case of a DOI search (masked underscore) in DOI.

Appendix

Log File
org.jabref.logic.importer.FetcherException: No DOI data exists
	at org.jabref@5.6.60000/org.jabref.logic.importer.fetcher.DoiFetcher.performSearchById(Unknown Source)
	at org.jabref@5.6.60000/org.jabref.gui.mergeentries.FetchAndMergeEntry.lambda$fetchAndMerge$0(Unknown Source)
	at org.jabref@5.6.60000/org.jabref.gui.util.BackgroundTask$1.call(Unknown Source)
	at org.jabref@5.6.60000/org.jabref.gui.util.DefaultTaskExecutor$1.call(Unknown Source)
	at org.jabref.merged.module@5.6.60000/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: https://doi.org/10.18726/2018%7B%5Ctextunderscore%7D3
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
	at org.jabref@5.6.60000/org.jabref.logic.net.URLDownload.asString(Unknown Source)
	at org.jabref@5.6.60000/org.jabref.logic.net.URLDownload.asString(Unknown Source)
	... 11 more
Caused by: java.io.FileNotFoundException: https://doi.org/10.18726/2018%7B%5Ctextunderscore%7D3
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.base/java.net.HttpURLConnection.getResponseCode(Unknown Source)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
	at org.jabref@5.6.60000/org.jabref.logic.net.URLDownload.openConnection(Unknown Source)
	... 13 more

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 15 (15 by maintainers)

Commits related to this issue

Most upvoted comments

Thanks for your reply ! The issue becomes more clear after disscussion. I will work on it. Also, I will pay attention to the progress of https://github.com/JabRef/jabref/issues/8786 and https://github.com/JabRef/jabref/issues/8743

@fly-ing-fish That’s a good start. Additionally, I would also integrate this directly into the DOI.parse method as well, so that even if the user has a DOI in that format, fetching will work.

And @claell is right, for the message the other issue. We try to be a bit more user-friendly. The exception should not be shown to the user in the dialog, but instead just be logged.

Regarding step 3: That should be solved by #8743.