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~54^2~9 X-Git-Url: http://lists.indexdata.dk/?a=commitdiff_plain;h=3aea44b0ce15e16cb9b40829aaab18b2130bfdfd;p=irspy-moved-to-github.git 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: '$@'"; }