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

IEEE fetcher produces FetcherException when rate is exceeded #6376

Closed
1 task done
MootezSaaD opened this issue Apr 29, 2020 · 2 comments
Closed
1 task done

IEEE fetcher produces FetcherException when rate is exceeded #6376

MootezSaaD opened this issue Apr 29, 2020 · 2 comments

Comments

@MootezSaaD
Copy link
Contributor

  • I have tested the latest development version from http://builds.jabref.org/master/ and the problem persists
    When performing a web search using IEEEXplore, JabRef throws a FetcherException. When I tried to make the request manually, this was the response header:
HTTP/1.1 403 Forbidden
Content-Type: text/xml
Date: Wed, 29 Apr 2020 20:52:01 GMT
Retry-After: 11279
Server: Mashery Proxy
X-Error-Detail-Header: Account Over Rate Limit
X-Mashery-Error-Code: ERR_403_DEVELOPER_OVER_RATE
X-Mashery-Responder: prod-j-worker-us-east-1d-62.mashery.com
Content-Length: 28
Connection: keep-alive
X-DNS-Prefetch-Control: off

So from the error code, I guess the API key has reached its rate limit?
Since this issue is related more to IEEEXplore, I think displaying an alert could be better for the end-user.

Log File

org.jabref.logic.importer.FetcherException: A network error occurred
at org.jabref/org.jabref.logic.importer.SearchBasedParserFetcher.performSearch(SearchBasedParserFetcher.java:80)
at org.jabref/org.jabref.gui.importer.fetcher.WebSearchPaneViewModel.lambda$search$1(WebSearchPaneViewModel.java:94)
at org.jabref/org.jabref.gui.util.BackgroundTask$1.call(BackgroundTask.java:47)
at org.jabref/org.jabref.gui.util.DefaultTaskExecutor$1.call(DefaultTaskExecutor.java:142)
at javafx.graphics/javafx.concurrent.Task$TaskCallable.call(Task.java:1425)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://ieeexploreapi.ieee.org/api/v1/search/articles?apikey=88e6y7nucfkqtp5vay7rytja&querytext=10.1109%2FSEAA.2010.29
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1977)
at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1972)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:554)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1971)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1539)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1523)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
at org.jabref/org.jabref.logic.net.URLDownload.asInputStream(URLDownload.java:262)
at org.jabref/org.jabref.logic.importer.SearchBasedParserFetcher.performSearch(SearchBasedParserFetcher.java:69)
... 10 more
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://ieeexploreapi.ieee.org/api/v1/search/articles?apikey=88e6y7nucfkqtp5vay7rytja&querytext=10.1109%2FSEAA.2010.29
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1927)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1523)
at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)
at org.jabref/org.jabref.logic.net.URLDownload.openConnection(URLDownload.java:319)
at org.jabref/org.jabref.logic.net.URLDownload.asInputStream(URLDownload.java:254)
... 11 more

@MootezSaaD MootezSaaD changed the title IEEE fetcher produces FetcherException IEEE fetcher produces FetcherException when rate is exceeded Apr 29, 2020
@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2020

This issue has been inactive for half a year. Since JabRef is constantly evolving this issue may not be relevant any longer and it will be closed in two weeks if no further activity occurs.

As part of an effort to ensure that the JabRef team is focusing on important and valid issues, we would like to ask if you could update the issue if it still persists. This could be in the following form:

  • If there has been a longer discussion, add a short summary of the most important points as a new comment (if not yet existing).
  • Provide further steps or information on how to reproduce this issue.
  • Upvote the initial post if you like to see it implemented soon. Votes are not the only metric that we use to determine the requests that are implemented, however, they do factor into our decision-making process.
  • If all information is provided and still up-to-date, then just add a short comment that the issue is still relevant.

Thank you for your contribution!

@koppor
Copy link
Member

koppor commented May 20, 2021

We hit the fetcher limit of IEEE. Only 200 calls/day (see https://devdocs.jabref.org/advanced-reading/fetchers). We are working on a solution that each user can put his own key (#7720 (comment))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants