Spectre is touchy about things that die in perl. Fix the UpdateAssetSubscribers workflow activity to catch if the group in the asset does not exist.

This commit is contained in:
Colin Kuskie 2012-09-16 20:51:18 -07:00
parent 2aeca17867
commit ca78e1db4e
2 changed files with 7 additions and 1 deletions

View file

@ -7,6 +7,7 @@
- fixed #12362: Thingy default Y/N field overly default
- fixed #12385: UTF-8 characters in Asset title break the Trash
- fixed ... and the same problem in the Clipboard
- fixed: UpdateAssetSubscribers workflow activity ERRORs if the group cannot be found.
7.10.26
- fixed: Template diagnostics when called without a session asset.

View file

@ -71,13 +71,18 @@ See WebGUI::Workflow::Activity::execute() for details.
sub execute {
my $self = shift;
my $asset = shift;
my $session = $self->session;
return unless $asset->get('subscriptionGroupId');
my $expireTime = time() + $self->getTTL();
my $subscriptionGroup = WebGUI::Group->new($self->session, $asset->get('subscriptionGroupId'));
my $subscriptionGroup = WebGUI::Group->new($session, $asset->get('subscriptionGroupId'));
##Deserialize from scratch
if (! $subscriptionGroup) {
$session->log->warn("Subscription group is missing for assetId: ".$asset->getId);
return $self->COMPLETE;
}
my @users = @{ $subscriptionGroup->getUsers }; ##Cache
my @usersToDelete = (); ##Cache
##Note, we could use grep here, but we can't interrupt if the workflow runs too long