[Rt-commit] r19116 - rt/3.999/trunk/lib/RT
clkao at bestpractical.com
clkao at bestpractical.com
Thu Apr 9 10:59:21 EDT 2009
Author: clkao
Date: Thu Apr 9 10:59:20 2009
New Revision: 19116
Modified:
rt/3.999/trunk/lib/RT/Lorzy.pm
Log:
handle errors when evaluating lorzy scripts.
Modified: rt/3.999/trunk/lib/RT/Lorzy.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Lorzy.pm (original)
+++ rt/3.999/trunk/lib/RT/Lorzy.pm Thu Apr 9 10:59:20 2009
@@ -13,8 +13,7 @@
sub evaluate {
my ($self, $code, %args) = @_;
- my $ret = $EVAL->apply_script( $code, \%args );
- return $ret;
+ eval { $EVAL->apply_script( $code, \%args ) };
}
sub create_scripish {
@@ -139,18 +138,24 @@
sub prepare {
my ( $self, %args ) = @_;
- RT::Lorzy->evaluate( $self->factory->condition,
- ticket => $self->ticket_obj,
- transaction => $self->transaction )
- or return;
+ my $ret = RT::Lorzy->evaluate( $self->factory->condition,
+ ticket => $self->ticket_obj,
+ transaction => $self->transaction );
+ if (my $e = Lorzy::Exception->caught()) {
+ Jifty->log->error("Rule '@{[ $self->description]}' condition error, ignoring: $e");
+ }
+ return unless $ret;
return 1 unless $self->factory->prepare;
- RT::Lorzy->evaluate( $self->factory->prepare,
+ $ret = RT::Lorzy->evaluate( $self->factory->prepare,
context => $self->context,
ticket => $self->ticket_obj,
transaction => $self->transaction );
+ if (my $e = Lorzy::Exception->caught()) {
+ Jifty->log->error("Rule '@{[ $self->description]}' prepare error, ignoring: $e");
+ }
}
sub description { $_[0]->factory->description }
@@ -162,10 +167,15 @@
sub commit {
my ($self, %args) = @_;
- return RT::Lorzy->evaluate( $self->factory->action,
- context => $self->context,
- ticket => $self->ticket_obj,
- transaction => $self->transaction);
+ my $ret = RT::Lorzy->evaluate( $self->factory->action,
+ context => $self->context,
+ ticket => $self->ticket_obj,
+ transaction => $self->transaction);
+
+ if (my $e = Lorzy::Exception->caught()) {
+ Jifty->log->error("Rule '@{[ $self->description]}' commit error: $e");
+ }
+ return $ret;
}
1;
More information about the Rt-commit
mailing list