MDL-53271 search: Catch Solr Server errors when adding doc
authorEric Merrill <merrill@oakland.edu>
Sun, 28 Feb 2016 18:40:25 +0000 (13:40 -0500)
committerEric Merrill <merrill@oakland.edu>
Sun, 28 Feb 2016 18:40:25 +0000 (13:40 -0500)
search/engine/solr/classes/engine.php

index 1e45829..f7e6cb6 100644 (file)
@@ -309,6 +309,10 @@ class engine extends \core_search\engine {
             $result = $this->get_search_client()->addDocument($solrdoc, true, static::AUTOCOMMIT_WITHIN);
         } catch (\SolrClientException $e) {
             debugging('Solr client error adding document with id ' . $doc['id'] . ': ' . $e->getMessage(), DEBUG_DEVELOPER);
             $result = $this->get_search_client()->addDocument($solrdoc, true, static::AUTOCOMMIT_WITHIN);
         } catch (\SolrClientException $e) {
             debugging('Solr client error adding document with id ' . $doc['id'] . ': ' . $e->getMessage(), DEBUG_DEVELOPER);
+        } catch (\SolrServerException $e) {
+            // We only use the first line of the message, as it's a fully java stacktrace behind it.
+            $msg = strtok($e->getMessage(), "\n");
+            debugging('Solr server error adding document with id ' . $doc['id'] . ': ' . $msg, DEBUG_DEVELOPER);
         }
     }
 
         }
     }