Index: apachesolr_search.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/apachesolr_search.module,v
retrieving revision 1.1.2.13
diff -u -r1.1.2.13 apachesolr_search.module
--- apachesolr_search.module	19 Jul 2008 18:16:57 -0000	1.1.2.13
+++ apachesolr_search.module	13 Aug 2008 19:11:03 -0000
@@ -108,9 +108,29 @@
 
       } // try
       catch (Exception $e) {
+        apachesolr_failure($query->get_query());
         watchdog('Apache Solr', $e->getMessage(), WATCHDOG_ERROR);
       }
-      break;
 
   } // switch
 }
+
+function apachesolr_failure($querystring) {
+  define('APACHESOLR_FAILURE_SHOWERROR', 0x0000);
+  define('APACHESOLR_FAILURE_SHOWDRUPALRESULTS', 0x0001);
+  define('APACHESOLR_FAILURE_SHOWNORESULTS', 0x0002);
+  
+  $fail_rule = variable_get('apachesolr_failure', APACHESOLR_FAILURE_SHOWERROR);
+  
+  switch ($fail_rule) {
+    case APACHESOLR_FAILURE_SHOWERROR:
+      drupal_set_message('The Apache Solr search engine is not available.  Please contact your site administrator', 'error');
+      break;
+    case APACHESOLR_FAILURE_SHOWDRUPALRESULTS:
+      drupal_goto("search/node/". $querystring);
+      break;
+    case APACHESOLR_FAILURE_SHOWNORESULTS:
+      return;
+      break;
+  }
+}
\ No newline at end of file
Index: apachesolr.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/apachesolr.module,v
retrieving revision 1.1.2.20
diff -u -r1.1.2.20 apachesolr.module
--- apachesolr.module	20 Jul 2008 10:33:15 -0000	1.1.2.20
+++ apachesolr.module	13 Aug 2008 19:11:03 -0000
@@ -59,6 +59,13 @@
     '#options' => $options,
     '#description' => t('The number of results that will be shown per page.'),
     );
+  $form['apachesolr_failure'] = array(
+    '#type' => 'select',
+    '#title' => t('On failure'),
+    '#options' => array(t('Show error'), t('Show Drupal search results'), t('Show no results')), 
+    '#default_value' => variable_get('apachesolr_failure', APACHESOLR_FAILURE_SHOWERROR),
+    '#description' => t('What to display if Apache Solr search is not available'),
+    );
   return system_settings_form($form);
 }
 
