diff --git a/includes/rules.core.inc b/includes/rules.core.inc index 559d1cf..8255707 100644 --- a/includes/rules.core.inc +++ b/includes/rules.core.inc @@ -229,6 +229,10 @@ class RulesEntityController extends EntityAPIControllerExportable { * @see EntityAPIControllerExportable::buildQuery() */ protected function buildQuery($ids, $conditions = array(), $revision_id = FALSE) { + if (!isset($this->entityInfo['schema_fields_sql']['base table'])) { + throw new RulesConfigLoadFailedException(); + } + $query = parent::buildQuery($ids, $conditions, $revision_id); $query_conditions =& $query->conditions(); foreach ($query_conditions as &$condition) { @@ -2782,6 +2786,8 @@ class RulesIntegrityException extends RulesException { */ class RulesDependencyException extends RulesIntegrityException {} +class RulesConfigLoadFailedException extends RulesException {} + /** * Determines the plugin to be used for importing a child element. * diff --git a/includes/rules.plugins.inc b/includes/rules.plugins.inc index 90b306d..2355a77 100644 --- a/includes/rules.plugins.inc +++ b/includes/rules.plugins.inc @@ -761,7 +761,12 @@ class RulesEventSet extends RulesRuleSet { $events = rules_fetch_data('event_info'); $sets = array(); // Add all rules associated with this event to an EventSet for caching. - $rules = rules_config_load_multiple(FALSE, array('plugin' => 'reaction rule', 'active' => TRUE)); + try { + $rules = rules_config_load_multiple(FALSE, array('plugin' => 'reaction rule', 'active' => TRUE)); + } + catch (RulesConfigLoadFailedException $e) { + $rules = array(); + } foreach ($rules as $name => $rule) { foreach ($rule->events() as $event_name) {