From d5a497774ebf82b35bd0d89f07b4b626d0672398 Mon Sep 17 00:00:00 2001 From: Jim Blake Date: Tue, 20 Jan 2015 17:22:43 -0500 Subject: [PATCH] VIVO-869 Don't operate on null URIs. If a UriFinder finds a null URI, issue a warning message. If a null URI is submitted to UpdateUrisTask, ignore it. --- .../indexing/IndexingUriFinderListBasic.java | 15 ++++++++++++++- .../webapp/searchindex/tasks/UpdateUrisTask.java | 2 ++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/searchindex/indexing/IndexingUriFinderListBasic.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/searchindex/indexing/IndexingUriFinderListBasic.java index c45567122..f29e60651 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/searchindex/indexing/IndexingUriFinderListBasic.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/searchindex/indexing/IndexingUriFinderListBasic.java @@ -9,12 +9,18 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import com.hp.hpl.jena.rdf.model.Statement; /** * The basic implementation. */ public class IndexingUriFinderListBasic implements IndexingUriFinderList { + private static final Log log = LogFactory + .getLog(IndexingUriFinderListBasic.class); + private final List finders; public IndexingUriFinderListBasic( @@ -40,7 +46,14 @@ public class IndexingUriFinderListBasic implements IndexingUriFinderList { public Set findAdditionalUris(Statement stmt) { Set uris = new HashSet<>(); for (IndexingUriFinder uriFinder : finders) { - uris.addAll(uriFinder.findAdditionalURIsToIndex(stmt)); + List additions = uriFinder.findAdditionalURIsToIndex(stmt); + for (String addition : additions) { + if (addition == null) { + log.warn("Finder " + uriFinder + " returned a null URI."); + } else { + uris.add(addition); + } + } } return uris; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/searchindex/tasks/UpdateUrisTask.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/searchindex/tasks/UpdateUrisTask.java index 3deb8c6ee..9afa10249 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/searchindex/tasks/UpdateUrisTask.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/searchindex/tasks/UpdateUrisTask.java @@ -83,6 +83,8 @@ public class UpdateUrisTask implements Task { if (isInterrupted()) { log.info("Interrupted: " + status.getSearchIndexerStatus()); break; + } else if (uri == null) { + // Nothing to do } else { Individual ind = getIndividual(uri); if (ind == null) {