Fixing NPE in VClassGroupCache at startup with empty Solr NIHVIVO-3460
This commit is contained in:
parent
0cf492d729
commit
cf31ff4548
2 changed files with 38 additions and 7 deletions
|
@ -340,6 +340,7 @@ public class VClassGroupCache implements IndexingEventListener {
|
||||||
if( group == null ) return;
|
if( group == null ) return;
|
||||||
|
|
||||||
String groupUri = group.getURI();
|
String groupUri = group.getURI();
|
||||||
|
String facetOnField = VitroSearchTermNames.RDFTYPE;
|
||||||
|
|
||||||
SolrQuery query = new SolrQuery( ).
|
SolrQuery query = new SolrQuery( ).
|
||||||
setRows(0).
|
setRows(0).
|
||||||
|
@ -347,7 +348,7 @@ public class VClassGroupCache implements IndexingEventListener {
|
||||||
setQuery(VitroSearchTermNames.CLASSGROUP_URI + ":" + groupUri ).
|
setQuery(VitroSearchTermNames.CLASSGROUP_URI + ":" + groupUri ).
|
||||||
//facet on type to get counts for classes in classgroup
|
//facet on type to get counts for classes in classgroup
|
||||||
setFacet(true).
|
setFacet(true).
|
||||||
addFacetField( VitroSearchTermNames.RDFTYPE ).
|
addFacetField( facetOnField ).
|
||||||
setFacetMinCount(0);
|
setFacetMinCount(0);
|
||||||
|
|
||||||
log.debug("query: " + query);
|
log.debug("query: " + query);
|
||||||
|
@ -358,14 +359,24 @@ public class VClassGroupCache implements IndexingEventListener {
|
||||||
log.debug("Number of individuals found " + individualCount);
|
log.debug("Number of individuals found " + individualCount);
|
||||||
group.setIndividualCount((int) individualCount);
|
group.setIndividualCount((int) individualCount);
|
||||||
//get counts for classes
|
//get counts for classes
|
||||||
FacetField ff = rsp.getFacetField( VitroSearchTermNames.RDFTYPE );
|
FacetField ff = rsp.getFacetField( facetOnField );
|
||||||
|
if( ff != null ){
|
||||||
List<Count> counts = ff.getValues();
|
List<Count> counts = ff.getValues();
|
||||||
|
if( counts != null ){
|
||||||
for( Count ct: counts){
|
for( Count ct: counts){
|
||||||
|
if( ct != null ){
|
||||||
String classUri = ct.getName();
|
String classUri = ct.getName();
|
||||||
long individualsInClass = ct.getCount();
|
long individualsInClass = ct.getCount();
|
||||||
setClassCount( group, classUri, individualsInClass);
|
setClassCount( group, classUri, individualsInClass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
log.debug("no Counts found for FacetField " + facetOnField);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
log.debug("no FaccetField found for " + facetOnField);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected static void setClassCount(VClassGroup group, String classUri,
|
protected static void setClassCount(VClassGroup group, String classUri,
|
||||||
long individualsInClass) {
|
long individualsInClass) {
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.search.indexing;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Classes that implement this interface can get informed of
|
||||||
|
* events that happen to the IndexBuilder.
|
||||||
|
*/
|
||||||
|
public interface IndexingEventListener {
|
||||||
|
|
||||||
|
public enum EventTypes {
|
||||||
|
START_UPDATE,
|
||||||
|
FINISHED_UPDATE,
|
||||||
|
START_FULL_REBUILD,
|
||||||
|
FINISH_FULL_REBUILD,
|
||||||
|
SHUTDOWN
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void notifyOfIndexingEvent(EventTypes ie);
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue