jabref: Unable to add entry using DOI

JabRef version on

JabRef 3.8.2
windows 7 6.1 amd64 
Java 1.8.0_121

Steps to reproduce:

  1. Open JabRef
  2. Click New BibTeX entry button
  3. Select ID type DOI
  4. Paste a DOI (have tried multiple, that have worked in the past also)

After this, the following error message appears: Error while fetching from DOI. Invalid URL

Log is attached below.

Log File
11:14:02.778 [AWT-EventQueue-0] INFO  net.sf.jabref.logic.importer.OpenDatabase - Opening: C:\Users\glennbi\src\master-thesis\thesis\refs\refs.bib
11:14:40.518 [SwingWorker-pool-4-thread-2] WARN  net.sf.jabref.logic.net.URLDownload - Could not copy input
java.io.IOException: Server returned HTTP response code: 406 for URL: https://data.crossref.org/10.1109%2FOCEANSE.2009.5278104
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_121]
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
  at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source) ~[?:1.8.0_121]
  at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source) ~[?:1.8.0_121]
  at net.sf.jabref.logic.net.URLDownload.downloadToString(URLDownload.java:153) [JabRef-3.8.2.jar:?]
  at net.sf.jabref.logic.importer.fetcher.DoiFetcher.performSearchById(DoiFetcher.java:55) [JabRef-3.8.2.jar:?]
  at net.sf.jabref.gui.EntryTypeDialog$FetcherWorker.doInBackground(EntryTypeDialog.java:293) [JabRef-3.8.2.jar:?]
  at net.sf.jabref.gui.EntryTypeDialog$FetcherWorker.doInBackground(EntryTypeDialog.java:276) [JabRef-3.8.2.jar:?]
  at javax.swing.SwingWorker$1.call(Unknown Source) [?:1.8.0_121]
  at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_121]
  at javax.swing.SwingWorker.run(Unknown Source) [?:1.8.0_121]
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_121]
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_121]
  at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
Caused by: java.io.IOException: Server returned HTTP response code: 406 for URL: https://data.crossref.org/10.1109%2FOCEANSE.2009.5278104
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) ~[?:1.8.0_121]
  at java.net.HttpURLConnection.getResponseCode(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source) ~[?:1.8.0_121]
  at net.sf.jabref.logic.net.URLDownload.openConnection(URLDownload.java:126) ~[JabRef-3.8.2.jar:?]
  at net.sf.jabref.logic.net.URLDownload.openConnection(URLDownload.java:134) ~[JabRef-3.8.2.jar:?]
  ... 10 more
11:14:40.518 [SwingWorker-pool-4-thread-2] WARN  net.sf.jabref.JabRefException - No localized message exception message defined. Falling back to getMessage().
net.sf.jabref.logic.importer.FetcherException: Invalid URL
  at net.sf.jabref.logic.importer.fetcher.DoiFetcher.performSearchById(DoiFetcher.java:65) ~[JabRef-3.8.2.jar:?]
  at net.sf.jabref.gui.EntryTypeDialog$FetcherWorker.doInBackground(EntryTypeDialog.java:293) [JabRef-3.8.2.jar:?]
  at net.sf.jabref.gui.EntryTypeDialog$FetcherWorker.doInBackground(EntryTypeDialog.java:276) [JabRef-3.8.2.jar:?]
  at javax.swing.SwingWorker$1.call(Unknown Source) [?:1.8.0_121]
  at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_121]
  at javax.swing.SwingWorker.run(Unknown Source) [?:1.8.0_121]
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_121]
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_121]
  at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
Caused by: java.io.IOException: Server returned HTTP response code: 406 for URL: https://data.crossref.org/10.1109%2FOCEANSE.2009.5278104
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_121]
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
  at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source) ~[?:1.8.0_121]
  at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source) ~[?:1.8.0_121]
  at net.sf.jabref.logic.net.URLDownload.downloadToString(URLDownload.java:153) ~[JabRef-3.8.2.jar:?]
  at net.sf.jabref.logic.importer.fetcher.DoiFetcher.performSearchById(DoiFetcher.java:55) ~[JabRef-3.8.2.jar:?]
  ... 8 more
Caused by: java.io.IOException: Server returned HTTP response code: 406 for URL: https://data.crossref.org/10.1109%2FOCEANSE.2009.5278104
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) ~[?:1.8.0_121]
  at java.net.HttpURLConnection.getResponseCode(Unknown Source) ~[?:1.8.0_121]
  at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source) ~[?:1.8.0_121]
  at net.sf.jabref.logic.net.URLDownload.openConnection(URLDownload.java:126) ~[JabRef-3.8.2.jar:?]
  at net.sf.jabref.logic.net.URLDownload.openConnection(URLDownload.java:134) ~[JabRef-3.8.2.jar:?]
  at net.sf.jabref.logic.net.URLDownload.downloadToString(URLDownload.java:153) ~[JabRef-3.8.2.jar:?]
  at net.sf.jabref.logic.importer.fetcher.DoiFetcher.performSearchById(DoiFetcher.java:55) ~[JabRef-3.8.2.jar:?]
  ... 8 more

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 6
  • Comments: 34 (10 by maintainers)

Most upvoted comments

will there be a fix for 3.8 also?

Also interested. Any fix for 3.8?

The DIO tested was: 10.1038/s41699-019-0102-x and I used JabRef 3.8.2 (my mistake!). With the newest JabRef 4.3.1, the same DOI can be fetched without problems. Thank you for getting back so quickly 😃

I can also confirm the fix in

JabRef 4.0.0-dev--snapshot--2017-06-06--master--5dcdd79ab
Windows 7 6.1 amd64 
Java 1.8.0_121

I can confirm that this has been fixed in: JabRef 4.0.0-dev–snapshot–2017-06-06–master–5dcdd79ab

Sorry for the inconvnenience. The auto build did not trigger correctly. The actual build 5dcdd79 contains the fix

@Siedlerchr, I’m not sure if the protocol used (http vs https) is important in order to solve the issue. For example, by forcing the http version 1.0 protocol and banning SSL/TLS negotiations, I still get bibtex (with the appropriate header).

ninfito@epsilon:> curl --http1.0 --no-ssl --no-tlsv1 --no-sslv2 --no-sslv3 -H "Accept: application/x-bibtex" data.crossref.org/10.1017/s09635483080090855
@article{RAZBOROV_2008,
        doi = {10.1017/s0963548308009085},
        url = {https://doi.org/10.1017%2Fs0963548308009085},
        year = 2008,
        month = {may},
        publisher = {Cambridge University Press ({CUP})},
        volume = {17},
        number = {04},
        author = {ALEXANDER A. RAZBOROV},
        title = {On the Minimal Density of Triangles in Graphs},
        journal = {Combinatorics, Probability and Computing}
}

Thanks for investigating, I will check that out. We already query doi.org for the Doi, however it redirects you to a mirror which is in this case crossref.org

Am 04.06.2017 9:26 nachm. schrieb “ninfito” notifications@github.com:

I noticed (just now) that data.crossref.org works with the appropriate header (without semicolon at the end).

ninfito@epsilon:> curl -LH “Accept: application/x-bibtex” https://data.crossref.org/10.1007/s10878-013-9651-7

@Article https://github.com/article{Haynes_2013, doi = {10.1007/s10878-013-9651-7}, url = {https://doi.org/10.1007%2Fs10878-013-9651-7} https://doi.org/10.1007%2Fs10878-013-9651-7}, year = 2013, month = {aug}, publisher = {Springer Nature}, volume = {30}, number = {3}, pages = {579–595}, author = {Teresa W. Haynes and Michael A. Henning and Lucas C. van der Merwe and Anders Yeo}, title = {Progress on the Murty{\textendash}Simon Conjecture on diameter-2 critical graphs: a survey}, journal = {Journal of Combinatorial Optimization} }

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/JabRef/jabref/issues/2879#issuecomment-306061349, or mute the thread https://github.com/notifications/unsubscribe-auth/AATi5O6mAlc2pV1-eYUya-d83b4lYV0Qks5sAwTNgaJpZM4Nstfe .

Actually why not put a option in the software to choose between doi.org and crossref.