From 3aea44b0ce15e16cb9b40829aaab18b2130bfdfd Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Mon, 10 May 2010 17:41:42 +0100 Subject: [PATCH] Ensure that changed options are reset when throwing an exception. --- lib/ZOOM/IRSpy/Task/Search.pm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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: '$@'"; } -- 1.7.10.4