- fix for NPEs during remote solr configuration

- fixed remote solr setting switch
- added more logging
pull/1/head
Michael Peter Christen 13 years ago
parent b5192e03d7
commit c913b2ba77

@ -122,7 +122,8 @@ public class IndexFederated_p {
sb.index.fulltext().disconnectRemoteSolr();
}
if (!solrRemoteWasOn && solrRemoteIsOnAfterwards) {
if (solrRemoteIsOnAfterwards) {
if (solrRemoteWasOn) sb.index.fulltext().disconnectRemoteSolr();
// switch on
final boolean usesolr = sb.getConfigBool(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_ENABLED, false) & solrurls.length() > 0;
try {

@ -142,7 +142,7 @@ public class RemoteSolrConnector extends SolrServerConnector implements SolrConn
}
public void terminate() {
this.client.getConnectionManager().shutdown();
if (this.client != null) this.client.getConnectionManager().shutdown();
}
@Override

@ -78,9 +78,7 @@ public abstract class SolrServerConnector extends AbstractSolrConnector implemen
@Override
public synchronized void close() {
try {
synchronized (this.server) {
this.server.commit();
}
if (this.server != null) synchronized (this.server) {this.server.commit();}
this.server = null;
} catch (SolrServerException e) {
Log.logException(e);

@ -1032,18 +1032,17 @@ public final class Protocol
}
event.rankingProcess.addExpectedRemoteReferences(count);
SolrDocumentList docList = null;
final String solrQuerystring = event.getQuery().solrQueryString(false);
Log.logInfo("Protocol", "SOLR QUERY: " + solrQuerystring);
final String solrQuerystring = event.getQuery().solrQueryString();
boolean localsearch = target == null || target.equals(event.peers.mySeed());
if (localsearch) {
// search the local index
try {
docList = event.rankingProcess.getQuery().getSegment().fulltext().getSolr().query(solrQuerystring, offset, count);
} catch (SolrException e) {
Network.log.logInfo("SEARCH failed (solr), localpeer (" + e.getMessage() + ")");
Network.log.logInfo("SEARCH failed (solr, 1), localpeer (" + e.getMessage() + ")", e);
return -1;
} catch (IOException e) {
Network.log.logInfo("SEARCH failed (solr), localpeer (" + e.getMessage() + ")");
Network.log.logInfo("SEARCH failed (solr, 2), localpeer (" + e.getMessage() + ")", e);
return -1;
}
} else {
@ -1053,13 +1052,14 @@ public final class Protocol
docList = solrConnector.query(solrQuerystring, offset, count);
// no need to close this here because that sends a commit to remote solr which is not wanted here
} catch (IOException e) {
Network.log.logInfo("SEARCH failed (solr), Peer: " + target.hash + ":" + target.getName() + " (" + e.getMessage() + ")");
Network.log.logInfo("SEARCH failed (solr), Peer: " + target.hash + ":" + target.getName() + " (" + e.getMessage() + ")", e);
return -1;
}
}
// evaluate result
if (docList.size() > 0) {// create containers
Network.log.logInfo("SEARCH (solr), returned " + docList.size() + " documents from peer " + target.hash + ":" + target.getName());
final List<ReferenceContainer<WordReference>> container = new ArrayList<ReferenceContainer<WordReference>>(wordhashes.size());
for (byte[] hash: wordhashes) {
try {

Loading…
Cancel
Save