diff --git a/lib/WebGUI/Workflow/Activity/TrashExpiredEvents.pm b/lib/WebGUI/Workflow/Activity/TrashExpiredEvents.pm index 8e5de4af0..4b756c93d 100644 --- a/lib/WebGUI/Workflow/Activity/TrashExpiredEvents.pm +++ b/lib/WebGUI/Workflow/Activity/TrashExpiredEvents.pm @@ -75,16 +75,16 @@ See WebGUI::Workflow::Activity::execute() for details. =cut sub execute { - my $self = shift; - my $sth = $self->session->db->read("select assetId from EventsCalendar_event where eventEndDate < ?", [time()-$self->get("trashAfter")]); - while (my ($id) = $sth->array) { - my $asset = WebGUI::Asset::Event->new($self->session, $id); - if (defined $asset && $asset->get("eventEndDate") < time()-$self->get("trashAfter")) { - $asset->trash; - } - } - $sth->finish; - return $self->COMPLETE; + my $self = shift; + my $sth = $self->session->db->read("select assetId from EventsCalendar_event where eventEndDate < ?", [time()-$self->get("trashAfter")]); + while (my ($id) = $sth->array) { + my $asset = eval { WebGUI::Asset::Event->newById($self->session, $id); }; + if (! Exception::Class->caught() && $asset->get("eventEndDate") < time()-$self->get("trashAfter")) { + $asset->trash; + } + } + $sth->finish; + return $self->COMPLETE; }