From 1f6a6a2ba1fcfdd538a00da69e7146340828c78a Mon Sep 17 00:00:00 2001 From: JT Smith Date: Mon, 10 Apr 2006 03:47:39 +0000 Subject: [PATCH] several bug fixes --- lib/Spectre/Cron.pm | 2 ++ lib/WebGUI/Workflow/Cron.pm | 2 +- lib/WebGUI/Workflow/Instance.pm | 13 ++++++++----- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/Spectre/Cron.pm b/lib/Spectre/Cron.pm index b25de40e7..c17ac223c 100644 --- a/lib/Spectre/Cron.pm +++ b/lib/Spectre/Cron.pm @@ -314,6 +314,8 @@ sub loadSchedule { my $session = WebGUI::Session->open($self->config->getWebguiRoot, $config); my $result = $session->db->read("select * from WorkflowSchedule"); while (my $data = $result->hashRef) { + my $params = JSON::jsonToObj($data->{parameters}); + $data->{parameters} = $params->{parameters}; $data->{config} = $config; $data->{sitename} = $session->config->get("sitename")->[0]; $kernel->yield("addJob", $data); diff --git a/lib/WebGUI/Workflow/Cron.pm b/lib/WebGUI/Workflow/Cron.pm index d40ac5022..e8779ecca 100644 --- a/lib/WebGUI/Workflow/Cron.pm +++ b/lib/WebGUI/Workflow/Cron.pm @@ -116,7 +116,7 @@ sub get { my $self = shift; my $name = shift; if ($name eq "parameters") { - my $parameters = JSON::jsonToObj( $self->{_data}{$name}); + my $parameters = JSON::jsonToObj($self->{_data}{$name}); return $parameters->{parameters}; } return $self->{_data}{$name}; diff --git a/lib/WebGUI/Workflow/Instance.pm b/lib/WebGUI/Workflow/Instance.pm index e9fb0267e..5ebcaa4ed 100644 --- a/lib/WebGUI/Workflow/Instance.pm +++ b/lib/WebGUI/Workflow/Instance.pm @@ -134,7 +134,7 @@ sub get { my $self = shift; my $name = shift; if ($name eq "parameters") { - my $parameters = JSON::jsonToObj( $self->{_data}{$name}); + my $parameters = JSON::jsonToObj($self->{_data}{$name}); return $parameters->{parameters}; } return $self->{_data}{$name}; @@ -249,7 +249,6 @@ sub run { return "done"; } $self->session->errorHandler->debug("Running workflow activity ".$activity->getId.", which is a ".(ref $activity).", for instance ".$self->getId."."); - my $object = {}; my $class = $self->get("className"); my $method = $self->get("methodName"); my $params = $self->get("parameters"); @@ -258,12 +257,16 @@ sub run { my $cmd = "use $class"; eval($cmd); if ($@) { - $self->session->errorHandler->warn("Error loading activity class $class: ".$@); + $self->session->errorHandler->error("Error loading activity class $class: ".$@); return "error"; } - eval{ $object = $class->$method($self->session, $params) }; + my $object = eval{ $class->$method($self->session, $params) }; if ($@) { - $self->session->errorHandler->warn("Error instanciating activity (".$activity->getId.") pass-in object: ".$@); + $self->session->errorHandler->error("Error instanciating activity (".$activity->getId.") pass-in object: ".$@); + return "error"; + } + unless (defined $object) { + $self->session->errorHandler->error("Pass in object came back undefined for activity (".$activity->getId.") using ".$class.", ".$method.", ".$params."."); return "error"; } $status = $activity->execute($object, $self);