From: Mike Taylor Date: Mon, 10 May 2010 16:41:42 +0000 (+0100) Subject: Ensure that changed options are reset when throwing an exception. X-Git-Tag: CPAN-v1.02~64 X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=commitdiff_plain;h=2910ed2d5def7c79fea285fd139c39955d055cc8 Ensure that changed options are reset when throwing an exception. --- diff --git a/lib/ZOOM/IRSpy/Task/Search.pm b/lib/ZOOM/IRSpy/Task/Search.pm index 8437586..73c8497 100644 --- a/lib/ZOOM/IRSpy/Task/Search.pm +++ b/lib/ZOOM/IRSpy/Task/Search.pm @@ -48,7 +48,10 @@ sub run { my $qstr = $this->{qstr}; $this->irspy()->log("irspy_task", $conn->option("host"), " searching for '$qtype:$qstr'"); - die "task $this has resultset?!" if defined $this->{rs}; + if (defined $this->{rs}) { + $this->set_options(); + die "task $this has resultset?!"; + } my $query; if ($qtype eq "pqf") { @@ -56,6 +59,7 @@ sub run { } elsif ($qtype eq "cql") { $query = new ZOOM::Query::CQL($qstr); } else { + $this->set_options(); die "Huh?!"; } @@ -68,6 +72,7 @@ sub run { eval { $this->{rs} = $conn->search($query); }; if ($@) { + $this->set_options(); die "remote search '$query' had error: '$@'"; }