Bug 12858: Add error handling to Syndetics Index
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Tue, 2 Sep 2014 09:14:03 +0000 (09:14 +0000)
committerFridolin Somers <fridolin.somers@biblibre.com>
Thu, 2 Apr 2015 09:02:41 +0000 (11:02 +0200)
* Syndetics routines include a statement to check that the returned
  content from Syndetics is xml. The get_syndetics_index routine was
  missing this check and so when a 'not found' html page was returned
  the opac-detail page would take a long time to load whilst xml::simple
  attempted to parse the large html document.

  Test Plan
  1. Enable Syndetics indexes on opac.
  2. Head over to an opac-detail page on the opac.
  3. Remove the ISBN from the same item in the staff client.
  4. Reload the opac-detail page for the item noticeing a much slower
  page load.
  5. Apply the patch
  6. Reload the opac-detail page for the item and note that it now laods
  in a reasonable timescale again.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Mason James <mtj@kohaaloha.com>
(cherry picked from commit 8ac1c243fe86fc9a77f54f1d21d3448491d27da0)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

C4/External/Syndetics.pm

index 3d518da..2d14674 100644 (file)
@@ -66,6 +66,9 @@ sub get_syndetics_index {
     my ( $isbn,$upc,$oclc ) = @_;
 
     my $response = _fetch_syndetics_content('INDEX.XML', $isbn, $upc, $oclc);
+    unless ($response->content_type =~ /xml/) {
+        return;
+    }
 
     my $content = $response->content;
     my $xmlsimple = XML::Simple->new();