diff --git a/src/main/java/edu/harvard/iq/dataverse/dataset/DatasetUtil.java b/src/main/java/edu/harvard/iq/dataverse/dataset/DatasetUtil.java index a33caa9f890..4e0a89183da 100644 --- a/src/main/java/edu/harvard/iq/dataverse/dataset/DatasetUtil.java +++ b/src/main/java/edu/harvard/iq/dataverse/dataset/DatasetUtil.java @@ -561,7 +561,7 @@ public static String getLicenseURI(DatasetVersion dsv) { public static String getLicenseIcon(DatasetVersion dsv) { License license = dsv.getTermsOfUseAndAccess().getLicense(); - return license != null ? license.getIconUrl().toString() : null; + return license != null && license.getIconUrl() != null ? license.getIconUrl().toString() : null; } public static String getLicenseDescription(DatasetVersion dsv) { diff --git a/src/main/java/edu/harvard/iq/dataverse/license/License.java b/src/main/java/edu/harvard/iq/dataverse/license/License.java index a780bf1c625..a51214837e2 100644 --- a/src/main/java/edu/harvard/iq/dataverse/license/License.java +++ b/src/main/java/edu/harvard/iq/dataverse/license/License.java @@ -84,7 +84,11 @@ public License(String name, String shortDescription, URI uri, URI iconUrl, boole this.name = name; this.shortDescription = shortDescription; this.uri = uri.toASCIIString(); - this.iconUrl = iconUrl.toASCIIString(); + if (iconUrl != null) { + this.iconUrl = iconUrl.toASCIIString(); + } else { + this.iconUrl = null; + } this.active = active; isDefault = false; } @@ -118,6 +122,9 @@ public void setUri(URI uri) { } public URI getIconUrl() { + if (iconUrl == null) { + return null; + } try { return new URI(iconUrl); } catch (URISyntaxException e) { @@ -134,7 +141,11 @@ public void setShortDescription(String shortDescription) { } public void setIconUrl(URI iconUrl) { - this.iconUrl = iconUrl.toASCIIString(); + if (iconUrl != null) { + this.iconUrl = iconUrl.toASCIIString(); + } else { + this.iconUrl = null; + } } public boolean isActive() { @@ -166,7 +177,7 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; License license = (License) o; - return active == license.active && id.equals(license.id) && name.equals(license.name) && shortDescription.equals(license.shortDescription) && uri.equals(license.uri) && iconUrl.equals(license.iconUrl); + return active == license.active && id.equals(license.id) && name.equals(license.name) && shortDescription.equals(license.shortDescription) && uri.equals(license.uri) && Objects.equals(iconUrl, license.iconUrl); } @Override diff --git a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java index ccde79bf233..ed3460b6759 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java @@ -798,7 +798,7 @@ public static JsonObjectBuilder json(License license) { .add("name", license.getName()) .add("shortDescription", license.getShortDescription()) .add("uri", license.getUri().toString()) - .add("iconUrl", license.getIconUrl().toString()) + .add("iconUrl", license.getIconUrl() == null ? null : license.getIconUrl().toString()) .add("active", license.isActive()) .add("isDefault", license.isDefault()); }