Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/irspy
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy.pm
index 5e6519f..0dc97c2 100644 (file)
@@ -77,7 +77,7 @@ sub new {
        if defined $user;
 
     my $conn = new ZOOM::Connection($dbname, 0, @options)
-       or die "$0: can't connection to IRSpy database 'dbname'";
+       or die "$0: can't connect to IRSpy database 'dbname'";
 
     my $xslt = new XML::LibXSLT;
 
@@ -141,7 +141,7 @@ sub var {
 sub connect_to_registry {
     my %args = @_;
 
-    # XXX: we could also handle her: user, password, elementSetName
+    # XXX: we could also handle here: user, password, elementSetName
 
     my $database = $ENV{IRSpyDbName} || "localhost:8018/IR-Explain---1";
 
@@ -382,8 +382,10 @@ sub _rewrite_zeerex_record {
     my($nok, $nall, $percent) = calc_reliability_stats($xc);
     modify_xml_document($xc, $_specialFields, { reliability => $percent });
 
-    if (!defined $oldid) {
-       # New record: generate a UDB for it.
+    my $xpath = $_specialFields->{udb}->[3];
+    my $value = $xc->findvalue($xpath);
+    if (!defined $oldid && (!defined $value || $value eq '')) {
+       # New record with no explicit UDB: generate a UDB for it.
        modify_xml_document($xc, $_specialFields, { udb => _next_udb() });
     }