More explicit error-reporting on search failure, to find problem reported by overnigh...
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Task / Search.pm
index 25373d7..68397c0 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Search.pm,v 1.14 2007-05-01 15:32:06 mike Exp $
+# $Id: Search.pm,v 1.16 2007-12-18 11:59:42 mike Exp $
 
 package ZOOM::IRSpy::Task::Search;
 
@@ -53,7 +53,7 @@ sub run {
 
     my $query;
     if ($qtype eq "pqf") {
-       $query = new ZOOM::Query::Prefix($qstr);
+       $query = new ZOOM::Query::PQF($qstr);
     } elsif ($qtype eq "cql") {
        $query = new ZOOM::Query::CQL($qstr);
     } else {
@@ -66,16 +66,27 @@ sub run {
     #  APPLICATION'S RESPONSIBILITY to ensure that the callback
     #  invoked on success OR FAILURE makes arrangements for the set
     #  to be destroyed.
-    $this->{rs} = $conn->search($query);
+    eval {
+       $this->{rs} = $conn->search($query);
+    }; if ($@) {
+       die "remote search '$query' had error: '$@'";
+    }
+
     warn "no ZOOM-C level events queued by $this"
        if $conn->is_idle();
 
     $this->set_options();
 }
 
+# Unique to Task::Search, used only for logging
+sub render_query {
+    my $this = shift();
+    return $this->{qtype} . ":" . $this->{qstr}    
+}
+
 sub render {
     my $this = shift();
-    return ref($this) . "(" . $this->{qtype} . ":" . $this->{qstr} . ")";
+    return ref($this) . "(" . $this->render_query() . ")";
 }
 
 use overload '""' => \&render;