jabref: Improve DOI import failure dialog. Do not show exception in the gui
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
- DOI in question:
10.1109/REW.2016.24
- Try to get bibliography data from it
Lookup DOI
gives10.1109/rew.2016.039
which works
Appendix
Log File
org.jabref.logic.importer.FetcherException: No DOI data exists
at org.jabref@5.7.19/org.jabref.logic.importer.fetcher.DoiFetcher.performSearchById(Unknown Source)
at org.jabref@5.7.19/org.jabref.gui.mergeentries.FetchAndMergeEntry.lambda$fetchAndMerge$0(Unknown Source)
at org.jabref@5.7.19/org.jabref.gui.util.BackgroundTask$1.call(Unknown Source)
at org.jabref@5.7.19/org.jabref.gui.util.DefaultTaskExecutor$1.call(Unknown Source)
at org.jabref.merged.module@5.7.19/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.1109/REW.2016.24
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.7.19/org.jabref.logic.net.URLDownload.asString(Unknown Source)
at org.jabref@5.7.19/org.jabref.logic.net.URLDownload.asString(Unknown Source)
... 11 more
Caused by: java.io.FileNotFoundException: https://doi.org/10.1109/REW.2016.24
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.7.19/org.jabref.logic.net.URLDownload.openConnection(Unknown Source)
... 13 more
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 22 (22 by maintainers)
@zkl-ai Yes, the Accept Header says: I want to get content in this format. Ideally, the server responds in this format. The problem is that the UrlDownload.asString just gets whatever the serer provides. It does not check the statusCode or the content-type of the returned response. So you need to modify that part to check for stauts code 404
Hello, could you assign this to me? I think this issue is quite interesting.
Thanks for the explanation. I already suspected this. I agree with the proposed route to show a more meaningful error message (which is not an exception) in those cases.
Failing silently will not help users, if the DOI is wrong. I would argue, users should be notified.
Where I stand with you: Make these notifications more pleasing to the eye. Get rid of ugly exceptions. Get rid of info about “unhandled exception occured”. What users should see first is not an “exception”, but rather the info that is of importance, which would be: “No DOI data exists”