Use case: a node has a single term assigned. Some module (e.g. rules) deletes this term, but the change is not saved, the term still remains assigned to the node.
The following patch gives a possible solution for the issue.
--- taxonomy.module
+++ taxonomy.module.new
@@ -1206,12 +1206,19 @@
if (!empty($node->taxonomy)) {
taxonomy_node_save($node, $node->taxonomy);
}
+ else{
+ taxonomy_node_delete_revision($node);
+ }
break;
case 'update':
if (!empty($node->taxonomy)) {
taxonomy_node_save($node, $node->taxonomy);
}
+ else{
+ taxonomy_node_delete_revision($node);
+ }
+
break;
case 'delete':