diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDao.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDao.java index 9b0458109..6ba1b1134 100644 --- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDao.java +++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDao.java @@ -643,7 +643,7 @@ public class JenaBaseDao extends JenaBaseDaoCon { if (existingValue == null ) { model.add(res, prop, model.createResource(uri)); - } else if (!(existingValue.getURI()).equals(uri)) { + } else if (!isEqual(uri, existingValue)) { model.removeAll(res, prop, null); model.add(res, prop, model.createResource(uri)); } @@ -651,6 +651,15 @@ public class JenaBaseDao extends JenaBaseDaoCon { } } + private boolean isEqual(String uri, Resource existingValue) { + if (existingValue.asNode().isBlank()) { + final String blankNodeId = existingValue.asNode().getBlankNodeId().toString(); + return uri.endsWith(blankNodeId); + } else { + return existingValue.getURI().equals(uri); + } + } + /** * convenience method for use with functional object properties */