diff --git a/solr/additions-to-solr-war/WEB-INF/lib/jts-1.13.jar b/solr/additions-to-solr-war/WEB-INF/lib/jts-1.13.jar new file mode 100644 index 000000000..bbaa20bfa Binary files /dev/null and b/solr/additions-to-solr-war/WEB-INF/lib/jts-1.13.jar differ diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/searchengine/solr/SolrConversionUtils.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/searchengine/solr/SolrConversionUtils.java index a9849491c..5a6ca7cf3 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/searchengine/solr/SolrConversionUtils.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/searchengine/solr/SolrConversionUtils.java @@ -66,8 +66,21 @@ public class SolrConversionUtils { SearchInputField searchInputField) { SolrInputField solrField = new SolrInputField( searchInputField.getName()); - solrField.addValue(searchInputField.getValues(), + Collection values = searchInputField.getValues(); + //Check if single value or multiple, if single only add that one + //This is done in this way to ensure that if the field itself is single valued + //we are not passing an array of a single object but just the object itself to prevent errors + if(values.size() > 1) { + solrField.addValue(searchInputField.getValues(), searchInputField.getBoost()); + } else if(values.size() == 1){ + Object value = values.iterator().next(); + solrField.addValue(value, searchInputField.getBoost()); + } else { + //in this case, values are empty? Just add null? Do nothing? + //solrField.addValue(null, searchInputField.getBoost()); + //log.debug("Values empty so doing nothing for " + searchInputField.getName()); + } return solrField; }