-# $Id: Connection.pm,v 1.18 2007-12-12 10:47:21 mike Exp $
package ZOOM::IRSpy::Connection;
$this->{tasks} = [];
my $query = cql_target($id);
- my $rs = $irspy->{conn}->search(new ZOOM::Query::CQL($query));
+ my $rs;
+ eval {
+ $rs = $irspy->{conn}->search(new ZOOM::Query::CQL($query));
+ }; if ($@) {
+ # This should be a "can't happen", but junk entries such as
+ # //lucasportal.info/blogs/payday-usa">'</a>night:G<a href="http://lucasportal.info/blogs/payday-usa">'</a>night/Illepeliz
+ # (yes, really) yield BIB-1 diagnostic 108 "Malformed query"
+ warn "registry search for record '$id' had error: '$@' -- skipping";
+ return undef;
+ }
my $n = $rs->size();
$this->log("irspy", "query '$query' found $n record", $n==1 ? "" : "s");
### More than 1 hit is always an error and indicates duplicate
my $this = shift();
my($qtype, $qstr, $udata, $options, %cb) = @_;
+ { use Carp; confess "Odd-sized hash!" if @_ % 2; }
#warn "calling $this->irspy_search(", join(", ", @_), ")\n";
$this->add_task(new ZOOM::IRSpy::Task::Search
($qtype, $qstr, $this, $udata, $options, %cb));