diff --git a/orcid-core/src/main/java/org/orcid/core/utils/v3/identifiers/resolvers/PubMedResolver.java b/orcid-core/src/main/java/org/orcid/core/utils/v3/identifiers/resolvers/PubMedResolver.java index c2ca1adf5fb..b7dfdbb567a 100644 --- a/orcid-core/src/main/java/org/orcid/core/utils/v3/identifiers/resolvers/PubMedResolver.java +++ b/orcid-core/src/main/java/org/orcid/core/utils/v3/identifiers/resolvers/PubMedResolver.java @@ -206,17 +206,26 @@ private WorkExtended getWork(JSONObject json) throws JSONException, ParseExcepti for (int i = 0; i < urls.length(); i++) { JSONObject url = urls.getJSONObject(i); // Look for html or doi links - String urlType = url.getString("documentStyle"); - String availability = url.getString("availability"); + String urlType = null; + if (url.has("documentStyle")) { + urlType = url.getString("documentStyle"); + } + String availability = null; + if (url.has("availability")) { + availability = url.getString("availability"); + } + // If we find the html link, use it and stop // searching - if (urlType.equals("html")) { - if(availability == null || availability.equals("Free") || availability.equals("Open access")) { + if (urlType != null) { + if (urlType.equals("html")) { + if(availability == null || availability.equals("Free") || availability.equals("Open access")) { + work.setUrl(new Url(url.getString("url"))); + break; + } + } else if (urlType.equals("doi")) { work.setUrl(new Url(url.getString("url"))); - break; } - } else if (urlType.equals("doi")) { - work.setUrl(new Url(url.getString("url"))); } } }