CrossRef / cayenne

MOVED to https://gitlab.com/crossref/rest_api
https://gitlab.com/crossref/rest_api
MIT License
17 stars 9 forks source link

Bibtex citation not working for some IOP DOIs #89

Open ppolischuk opened 5 years ago

ppolischuk commented 5 years ago

IOP is having some more concerns about DOIs related to that hugely hyped black hole picture that was all over the place recently. The BibTeX citation formatting isn’t working for them. 10.3847/2041-8213/ab0ec7 10.3847/2041-8213/ab0c96 10.3847/2041-8213/ab0c57 10.3847/2041-8213/ab0e85 10.3847/2041-8213/ab0f43 10.3847/2041-8213/ab1141

The problem is that the citation formatting service doesn’t work for them. If you ask for BibTeX from it, you get a blank response

curl -LH “Accept: text/bibliography; style=bibtex” http://dx.doi.org/10.3847/2041-8213/ab0c96

and if you ask for some other formats, you get an error message: curl -LH “Accept: text/bibliography; style=harvard1" http://dx.doi.org/10.3847/2041-8213/ab0c96 returns a Java stack trace.

There’s a ‘BibTeX’ button on the article home page on IOPscience that tries to use this functionality, so it’s broken for these articles.

I can also confirm this by using search.crossref.org and trying Actions>Cite for the above DOIs.

afandian commented 5 years ago

Stack trace:

{
    "status":"error",
    "message-type":"exception",
    "message-version":"1.0.0",
    "message":{
        "name":"class java.lang.IllegalArgumentException",
        "description":"java.lang.IllegalArgumentException: Could not update items",
        "message":"Could not update items",
        "stack":["de.undercouch.citeproc.CSL.registerCitationItems(CSL.java:285)
cayenne.formats.citation$__GT_citation.invokeStatic(citation.clj:78)
cayenne.formats.citation$__GT_citation.doInvoke(citation.clj:71)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
cayenne.api.transform$eval19358$fn__19359.invoke(transform.clj:67)
clojure.lang.MultiFn.invoke(MultiFn.java:233)
cayenne.api.transform$eval19370$fn__19371.invoke(transform.clj:75)
clojure.lang.MultiFn.invoke(MultiFn.java:233)
cayenne.api.v1.routes$work_transform_resource$fn__23539$fn__23543.invoke(routes.clj:270)
liberator.core$run_handler.invokeStatic(core.clj:190)
liberator.core$run_handler.invoke(core.clj:147)
liberator.core$handle_ok.invokeStatic(core.clj:244)
liberator.core$handle_ok.invoke(core.clj:244)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$multiple_representations_QMARK_.invokeStatic(core.clj:250)
liberator.core$multiple_representations_QMARK_.invoke(core.clj:250)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$put_to_existing_QMARK_.invokeStatic(core.clj:317)
liberator.core$put_to_existing_QMARK_.invoke(core.clj:317)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$post_to_existing_QMARK_.invokeStatic(core.clj:320)
liberator.core$post_to_existing_QMARK_.invoke(core.clj:320)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$method_patch_QMARK_.invokeStatic(core.clj:329)
liberator.core$method_patch_QMARK_.invoke(core.clj:329)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$method_delete_QMARK_.invokeStatic(core.clj:331)
liberator.core$method_delete_QMARK_.invoke(core.clj:331)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$if_modified_since_exists_QMARK_.invokeStatic(core.clj:351)
liberator.core$if_modified_since_exists_QMARK_.invoke(core.clj:351)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$if_none_match_exists_QMARK_.invokeStatic(core.clj:369)
liberator.core$if_none_match_exists_QMARK_.invoke(core.clj:369)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$if_unmodified_since_exists_QMARK_.invokeStatic(core.clj:389)
liberator.core$if_unmodified_since_exists_QMARK_.invoke(core.clj:389)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$if_match_exists_QMARK_.invokeStatic(core.clj:403)
liberator.core$if_match_exists_QMARK_.invoke(core.clj:403)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$exists_QMARK_.invokeStatic(core.clj:406)
liberator.core$exists_QMARK_.invoke(core.clj:406)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$processable_QMARK_.invokeStatic(core.clj:409)
liberator.core$processable_QMARK_.invoke(core.clj:409)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$encoding_available_QMARK_.invokeStatic(core.clj:413)
liberator.core$encoding_available_QMARK_.invoke(core.clj:413)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$accept_encoding_exists_QMARK_.invokeStatic(core.clj:428)
liberator.core$accept_encoding_exists_QMARK_.invoke(core.clj:428)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$accept_charset_exists_QMARK_.invokeStatic(core.clj:441)
liberator.core$accept_charset_exists_QMARK_.invoke(core.clj:441)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$accept_language_exists_QMARK_.invokeStatic(core.clj:455)
liberator.core$accept_language_exists_QMARK_.invoke(core.clj:455)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$media_type_available_QMARK_.invokeStatic(core.clj:465)
liberator.core$media_type_available_QMARK_.invoke(core.clj:465)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$accept_exists_QMARK_.invokeStatic(core.clj:468)
liberator.core$accept_exists_QMARK_.invoke(core.clj:468)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$is_options_QMARK_.invokeStatic(core.clj:485)
liberator.core$is_options_QMARK_.invoke(core.clj:485)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$valid_entity_length_QMARK_.invokeStatic(core.clj:488)
liberator.core$valid_entity_length_QMARK_.invoke(core.clj:488)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$known_content_type_QMARK_.invokeStatic(core.clj:491)
liberator.core$known_content_type_QMARK_.invoke(core.clj:491)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$valid_content_header_QMARK_.invokeStatic(core.clj:493)
liberator.core$valid_content_header_QMARK_.invoke(core.clj:493)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$allowed_QMARK_.invokeStatic(core.clj:496)
liberator.core$allowed_QMARK_.invoke(core.clj:496)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$authorized_QMARK_.invokeStatic(core.clj:499)
liberator.core$authorized_QMARK_.invoke(core.clj:499)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$malformed_QMARK_.invokeStatic(core.clj:502)
liberator.core$malformed_QMARK_.invoke(core.clj:502)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$method_allowed_QMARK_.invokeStatic(core.clj:505)
liberator.core$method_allowed_QMARK_.invoke(core.clj:505)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$uri_too_long_QMARK_.invokeStatic(core.clj:508)
liberator.core$uri_too_long_QMARK_.invoke(core.clj:508)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$known_method_QMARK_.invokeStatic(core.clj:511)
liberator.core$known_method_QMARK_.invoke(core.clj:511)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$service_available_QMARK_.invokeStatic(core.clj:514)
liberator.core$service_available_QMARK_.invoke(core.clj:514)
liberator.core$run_resource.invokeStatic(core.clj:599)
liberator.core$run_resource.invoke(core.clj:597)
cayenne.api.v1.routes$work_transform_resource$fn__23539.invoke(routes.clj:255)
compojure.response$eval22712$fn__22713.invoke(response.clj:47)
compojure.response$eval22634$fn__22635$G__22625__22642.invoke(response.clj:7)
compojure.core$wrap_response$fn__23304.invoke(core.clj:158)
compojure.core$wrap_route_middleware$fn__23288.invoke(core.clj:128)
compojure.core$wrap_route_info$fn__23293.invoke(core.clj:137)
compojure.core$wrap_route_matches$fn__23297.invoke(core.clj:146)
compojure.core$routing$fn__23312.invoke(core.clj:185)
clojure.core$some.invokeStatic(core.clj:2592)
clojure.core$some.invoke(core.clj:2583)
compojure.core$routing.invokeStatic(core.clj:185)
compojure.core$routing.doInvoke(core.clj:182)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
compojure.core$routes$fn__23316.invoke(core.clj:192)
compojure.core$routing$fn__23312.invoke(core.clj:185)
clojure.core$some.invokeStatic(core.clj:2592)
clojure.core$some.invoke(core.clj:2583)
compojure.core$routing.invokeStatic(core.clj:185)
compojure.core$routing.doInvoke(core.clj:182)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
compojure.core$routes$fn__23316.invoke(core.clj:192)
compojure.core$make_context$handler__23382.invoke(core.clj:285)
compojure.core$make_context$fn__23384.invoke(core.clj:293)
compojure.core$routing$fn__23312.invoke(core.clj:185)
clojure.core$some.invokeStatic(core.clj:2592)
clojure.core$some.invoke(core.clj:2583)
compojure.core$routing.invokeStatic(core.clj:185)
compojure.core$routing.doInvoke(core.clj:182)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
compojure.core$routes$fn__23316.invoke(core.clj:192)
compojure.core$routing$fn__23312.invoke(core.clj:185)
clojure.core$some.invokeStatic(core.clj:2592)
clojure.core$some.invoke(core.clj:2583)
compojure.core$routing.invokeStatic(core.clj:185)
compojure.core$routing.doInvoke(core.clj:182)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
compojure.core$routes$fn__23316.invoke(core.clj:192)
ring.middleware.logstash$wrap_logstash$fn__29143.invoke(logstash.clj:110)
ring.middleware.keyword_params$wrap_keyword_params$fn__30014.invoke(keyword_params.clj:36)
ring.middleware.nested_params$wrap_nested_params$fn__30062.invoke(nested_params.clj:89)
ring.middleware.params$wrap_params$fn__29978.invoke(params.clj:67)
cayenne.api.route$wrap_cors$fn__30605.invoke(route.clj:101)
metrics.ring.expose$expose_metrics_as_json$fn__29529.invoke(expose.clj:94)
metrics.ring.instrument$instrument$fn__29545$fn__29546.invoke(instrument.clj:44)
metrics.ring.instrument.proxy$java.lang.Object$Callable$7da976d4.call(Unknown Source)
com.yammer.metrics.core.Timer.time(Timer.java:91)
metrics.ring.instrument$instrument$fn__29545.invoke(instrument.clj:43)
heartbeat.ring$wrap_heartbeat$fn__29231.invoke(ring.clj:18)
cayenne.api.conneg$wrap_accept$fn__21175.invoke(conneg.clj:53)
cayenne.api.route$wrap_exception_handler$fn__30610.invoke(route.clj:110)
cayenne.api.route$wrap_ignore_trailing_slash$fn__30618.invoke(route.clj:136)
org.httpkit.server.HttpHandler.run(RingHandler.java:91)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
"],
"cause":{
    "name":"class de.undercouch.citeproc.script.ScriptRunnerException",
    "description":"de.undercouch.citeproc.script.ScriptRunnerException: Could not call method",
    "stack":["de.undercouch.citeproc.CSL.registerCitationItems(CSL.java:285)
cayenne.formats.citation$__GT_citation.invokeStatic(citation.clj:78)
cayenne.formats.citation$__GT_citation.doInvoke(citation.clj:71)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
cayenne.api.transform$eval19358$fn__19359.invoke(transform.clj:67)
clojure.lang.MultiFn.invoke(MultiFn.java:233)
cayenne.api.transform$eval19370$fn__19371.invoke(transform.clj:75)
clojure.lang.MultiFn.invoke(MultiFn.java:233)
cayenne.api.v1.routes$work_transform_resource$fn__23539$fn__23543.invoke(routes.clj:270)
liberator.core$run_handler.invokeStatic(core.clj:190)
liberator.core$run_handler.invoke(core.clj:147)
liberator.core$handle_ok.invokeStatic(core.clj:244)
liberator.core$handle_ok.invoke(core.clj:244)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$multiple_representations_QMARK_.invokeStatic(core.clj:250)
liberator.core$multiple_representations_QMARK_.invoke(core.clj:250)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$put_to_existing_QMARK_.invokeStatic(core.clj:317)
liberator.core$put_to_existing_QMARK_.invoke(core.clj:317)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$post_to_existing_QMARK_.invokeStatic(core.clj:320)
liberator.core$post_to_existing_QMARK_.invoke(core.clj:320)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$method_patch_QMARK_.invokeStatic(core.clj:329)
liberator.core$method_patch_QMARK_.invoke(core.clj:329)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$method_delete_QMARK_.invokeStatic(core.clj:331)
liberator.core$method_delete_QMARK_.invoke(core.clj:331)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$if_modified_since_exists_QMARK_.invokeStatic(core.clj:351)
liberator.core$if_modified_since_exists_QMARK_.invoke(core.clj:351)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$if_none_match_exists_QMARK_.invokeStatic(core.clj:369)
liberator.core$if_none_match_exists_QMARK_.invoke(core.clj:369)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$if_unmodified_since_exists_QMARK_.invokeStatic(core.clj:389)
liberator.core$if_unmodified_since_exists_QMARK_.invoke(core.clj:389)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$if_match_exists_QMARK_.invokeStatic(core.clj:403)
liberator.core$if_match_exists_QMARK_.invoke(core.clj:403)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$exists_QMARK_.invokeStatic(core.clj:406)
liberator.core$exists_QMARK_.invoke(core.clj:406)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$processable_QMARK_.invokeStatic(core.clj:409)
liberator.core$processable_QMARK_.invoke(core.clj:409)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$encoding_available_QMARK_.invokeStatic(core.clj:413)
liberator.core$encoding_available_QMARK_.invoke(core.clj:413)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$accept_encoding_exists_QMARK_.invokeStatic(core.clj:428)
liberator.core$accept_encoding_exists_QMARK_.invoke(core.clj:428)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$accept_charset_exists_QMARK_.invokeStatic(core.clj:441)
liberator.core$accept_charset_exists_QMARK_.invoke(core.clj:441)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$accept_language_exists_QMARK_.invokeStatic(core.clj:455)
liberator.core$accept_language_exists_QMARK_.invoke(core.clj:455)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$media_type_available_QMARK_.invokeStatic(core.clj:465)
liberator.core$media_type_available_QMARK_.invoke(core.clj:465)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$accept_exists_QMARK_.invokeStatic(core.clj:468)
liberator.core$accept_exists_QMARK_.invoke(core.clj:468)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$is_options_QMARK_.invokeStatic(core.clj:485)
liberator.core$is_options_QMARK_.invoke(core.clj:485)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$valid_entity_length_QMARK_.invokeStatic(core.clj:488)
liberator.core$valid_entity_length_QMARK_.invoke(core.clj:488)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$known_content_type_QMARK_.invokeStatic(core.clj:491)
liberator.core$known_content_type_QMARK_.invoke(core.clj:491)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$valid_content_header_QMARK_.invokeStatic(core.clj:493)
liberator.core$valid_content_header_QMARK_.invoke(core.clj:493)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$allowed_QMARK_.invokeStatic(core.clj:496)
liberator.core$allowed_QMARK_.invoke(core.clj:496)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$authorized_QMARK_.invokeStatic(core.clj:499)
liberator.core$authorized_QMARK_.invoke(core.clj:499)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$malformed_QMARK_.invokeStatic(core.clj:502)
liberator.core$malformed_QMARK_.invoke(core.clj:502)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$method_allowed_QMARK_.invokeStatic(core.clj:505)
liberator.core$method_allowed_QMARK_.invoke(core.clj:505)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$uri_too_long_QMARK_.invokeStatic(core.clj:508)
liberator.core$uri_too_long_QMARK_.invoke(core.clj:508)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$known_method_QMARK_.invokeStatic(core.clj:511)
liberator.core$known_method_QMARK_.invoke(core.clj:511)
liberator.core$decide.invokeStatic(core.clj:103)
liberator.core$decide.invoke(core.clj:91)
liberator.core$service_available_QMARK_.invokeStatic(core.clj:514)
liberator.core$service_available_QMARK_.invoke(core.clj:514)
liberator.core$run_resource.invokeStatic(core.clj:599)
liberator.core$run_resource.invoke(core.clj:597)
cayenne.api.v1.routes$work_transform_resource$fn__23539.invoke(routes.clj:255)
compojure.response$eval22712$fn__22713.invoke(response.clj:47)
compojure.response$eval22634$fn__22635$G__22625__22642.invoke(response.clj:7)
compojure.core$wrap_response$fn__23304.invoke(core.clj:158)
compojure.core$wrap_route_middleware$fn__23288.invoke(core.clj:128)
compojure.core$wrap_route_info$fn__23293.invoke(core.clj:137)
compojure.core$wrap_route_matches$fn__23297.invoke(core.clj:146)
compojure.core$routing$fn__23312.invoke(core.clj:185)
clojure.core$some.invokeStatic(core.clj:2592)
clojure.core$some.invoke(core.clj:2583)
compojure.core$routing.invokeStatic(core.clj:185)
compojure.core$routing.doInvoke(core.clj:182)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
compojure.core$routes$fn__23316.invoke(core.clj:192)
compojure.core$routing$fn__23312.invoke(core.clj:185)
clojure.core$some.invokeStatic(core.clj:2592)
clojure.core$some.invoke(core.clj:2583)
compojure.core$routing.invokeStatic(core.clj:185)
compojure.core$routing.doInvoke(core.clj:182)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
compojure.core$routes$fn__23316.invoke(core.clj:192)
compojure.core$make_context$handler__23382.invoke(core.clj:285)
compojure.core$make_context$fn__23384.invoke(core.clj:293)
compojure.core$routing$fn__23312.invoke(core.clj:185)
clojure.core$some.invokeStatic(core.clj:2592)
clojure.core$some.invoke(core.clj:2583)
compojure.core$routing.invokeStatic(core.clj:185)
compojure.core$routing.doInvoke(core.clj:182)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
compojure.core$routes$fn__23316.invoke(core.clj:192)
compojure.core$routing$fn__23312.invoke(core.clj:185)
clojure.core$some.invokeStatic(core.clj:2592)
clojure.core$some.invoke(core.clj:2583)
compojure.core$routing.invokeStatic(core.clj:185)
compojure.core$routing.doInvoke(core.clj:182)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invokeStatic(core.clj:648)
clojure.core$apply.invoke(core.clj:641)
compojure.core$routes$fn__23316.invoke(core.clj:192)
ring.middleware.logstash$wrap_logstash$fn__29143.invoke(logstash.clj:110)
ring.middleware.keyword_params$wrap_keyword_params$fn__30014.invoke(keyword_params.clj:36)
ring.middleware.nested_params$wrap_nested_params$fn__30062.invoke(nested_params.clj:89)
ring.middleware.params$wrap_params$fn__29978.invoke(params.clj:67)
cayenne.api.route$wrap_cors$fn__30605.invoke(route.clj:101)
metrics.ring.expose$expose_metrics_as_json$fn__29529.invoke(expose.clj:94)
metrics.ring.instrument$instrument$fn__29545$fn__29546.invoke(instrument.clj:44)
metrics.ring.instrument.proxy$java.lang.Object$Callable$7da976d4.call(Unknown Source)
com.yammer.metrics.core.Timer.time(Timer.java:91)
metrics.ring.instrument$instrument$fn__29545.invoke(instrument.clj:43)
heartbeat.ring$wrap_heartbeat$fn__29231.invoke(ring.clj:18)
cayenne.api.conneg$wrap_accept$fn__21175.invoke(conneg.clj:53)
cayenne.api.route$wrap_exception_handler$fn__30610.invoke(route.clj:110)
cayenne.api.route$wrap_ignore_trailing_slash$fn__30618.invoke(route.clj:136)
org.httpkit.server.HttpHandler.run(RingHandler.java:91)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.run
ssmulyan commented 5 years ago

This might need its own issue, but somewhat related example. https://search.crossref.org/?q=10.1002%2Fcphy.c150015#

In the IOP examples, with multiple forward slashes, if I use Actions > Cite on CRMDS, all citation formats are blank.

In this case, for 10.1002/cphy.c150015 only BibTex is blank. The rest of the citation formats work correctly.

The user gave an example of their query and its results.

You could try this command: "curl -L -H "Accept:application/x-bibtex; charset=utf-8" https://doi.org/10.1002/cphy.c150015" Output: {"status":"error","message-type":"exception","message-version":"1.0.0","message":{"name":"class java.lang.NullPointerException","description":"java.lang.NullPointerException","message":null,"stack":[],"cause":null}}%

ppolischuk commented 5 years ago

Update here, more comms coming from @gbilder and @ifarley, but unfortunately at this stage we are not able to unfreeze the cayenne codebase to fix this issue, so we'll need to push back to IOP.

ifarley commented 5 years ago

IOP curious if we have a timetable or a workaround for this issue? I am not aware of either @ppolischuk or @gbilder. I have communicated our decision to keep the freeze in place to IOP. When we have a timetable or a workaround, we'll provide updates here and within Zendesk (ticket 131006 for reference).

afandian commented 5 years ago

Afraid this is something we just have to say "we don't have time for it now, and we don't take that lightly". Could be weeks at least.

ifarley commented 5 years ago

Looks like we have another example of this problem from this DOI - https://doi.org/10.21105/joss.01137. Zendesk ticket 134241 for internal reference.