Bug 5683 - it is possible to save corrupt records
authorJared Camins-Esakov <jcamins@bywatersolutions.com>
Wed, 2 Feb 2011 16:47:49 +0000 (11:47 -0500)
committerChris Nighswonger <chris.nighswonger@gmail.com>
Wed, 2 Feb 2011 22:08:50 +0000 (17:08 -0500)
This patch makes it impossible to save records with variables fields that don't
contain any subfields. Prior to this patch, link_bibs_to_authorities.pl would
sometimes corrupt records.

Signed-off-by: Ian Walls <ian.walls@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
(cherry picked from commit 428556cd130db0cfcffd6fe081f32dc1218a904f)

Signed-off-by: Chris Nighswonger <chris.nighswonger@gmail.com>
C4/Biblio.pm

index 216a2ab..02b8922 100644 (file)
@@ -325,6 +325,14 @@ sub ModBiblio {
         $record->append_fields($field);
     }
 
+    foreach my $field ($record->fields()) {
+        if (! $field->is_control_field()) {
+            if (scalar($field->subfields()) == 0) {
+                $record->delete_fields($field);
+            }
+        }
+    }
+
     # update biblionumber and biblioitemnumber in MARC
     # FIXME - this is assuming a 1 to 1 relationship between
     # biblios and biblioitems