added server-error event so offline process can die gracefully
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 11 Aug 2006 15:59:06 +0000 (15:59 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 11 Aug 2006 15:59:06 +0000 (15:59 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@5468 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/extras/ils_events.xml
Open-ILS/src/offline/offline.pl

index ef6e671..91ad2c2 100644 (file)
        <event code='2002' textcode='DATABASE_QUERY_FAILED'>
                <desc xml:lang="en-US">The attempt to query to the DB failed</desc>
        </event>
+       <event code='2003' textcode='INTERNAL_SERVER_ERROR'>
+               <desc xml:lang="en-US">There was an internal server error</desc>
+       </event>
        <event code='5000' textcode='PERM_FAILURE'>
                <desc xml:lang="en-US">Permission Denied</desc>
        </event>
index 5fd8087..0ab1751 100755 (executable)
@@ -519,11 +519,18 @@ sub ol_process_commands {
                my $last = ($x++ == scalar(@$commands) - 1) ? 1 : 0;
                my $res = { command => $d };
 
-               $res->{event} = ol_handle_checkin($d)   if $t eq 'checkin';
-               $res->{event} = ol_handle_inhouse($d)   if $t eq 'in_house_use';
-               $res->{event} = ol_handle_checkout($d) if $t eq 'checkout';
-               $res->{event} = ol_handle_renew($d)             if $t eq 'renew';
-               $res->{event} = ol_handle_register($d) if $t eq 'register';
+               try {
+                       $res->{event} = ol_handle_checkin($d)   if $t eq 'checkin';
+                       $res->{event} = ol_handle_inhouse($d)   if $t eq 'in_house_use';
+                       $res->{event} = ol_handle_checkout($d) if $t eq 'checkout';
+                       $res->{event} = ol_handle_renew($d)             if $t eq 'renew';
+                       $res->{event} = ol_handle_register($d) if $t eq 'register';
+
+               } catch Error with {
+                       my $e = shift;
+                       $res->{event} = OpenILS::Event->new(
+                               'INTERNAL_SERVER_ERROR', debug => "$e");
+               };
 
 
                ol_append_result($res, $last);