Skip to content

Commit ea5973e

Browse files
committed
Fix error propagation
1 parent b840e10 commit ea5973e

4 files changed

Lines changed: 17 additions & 0 deletions

File tree

‎ProcessMaker/Jobs/RunScriptTask.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ public function action(ProcessRequestToken $token = null, ScriptTaskInterface $e
106106
$finalAttempt = true;
107107
if ($errorHandling) {
108108
[$message, $finalAttempt] = $errorHandling->handleRetries($this, $exception);
109+
} else {
110+
$message = $exception->getMessage();
109111
}
110112

111113
if ($finalAttempt) {

‎ProcessMaker/Jobs/RunServiceTask.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ public function action(ProcessRequestToken $token = null, ServiceTaskInterface $
114114
$finalAttempt = true;
115115
if ($errorHandling) {
116116
[$message, $finalAttempt] = $errorHandling->handleRetries($this, $exception);
117+
} else {
118+
$message = $exception->getMessage();
117119
}
118120

119121
if ($finalAttempt) {

‎ProcessMaker/Nayra/Repositories/Deserializer.php‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use ProcessMaker\Models\ProcessRequestToken;
88
use ProcessMaker\Models\ProcessVersion;
99
use ProcessMaker\Nayra\Bpmn\Collection;
10+
use ProcessMaker\Nayra\Bpmn\Models\Error;
1011
use ProcessMaker\Nayra\Contracts\Bpmn\CollectionInterface;
1112
use ProcessMaker\Nayra\Contracts\Bpmn\EntityInterface;
1213
use ProcessMaker\Nayra\Contracts\Bpmn\EventDefinitionInterface;
@@ -223,6 +224,14 @@ public function unserializeToken(array $serialized): TokenInterface
223224

224225
// Set process request token properties
225226
$properties = array_merge($token->getProperties(), $properties);
227+
228+
// Convert string error into Error
229+
if (isset($properties['error']) && is_string($properties['error'])) {
230+
$error = new Error();
231+
$error->setName($properties['error']);
232+
$properties['error'] = $error;
233+
}
234+
226235
$token->setProperties($properties);
227236

228237
return $token;

‎ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ public function persistActivityException(array $transaction)
4242
$activity = $this->deserializer->unserializeEntity($transaction['activity']);
4343
$token = $this->deserializer->unserializeToken($transaction['token']);
4444
$this->tokenRepository->persistActivityException($activity, $token);
45+
46+
// Event
47+
$bpmnSubscriber = new BpmnSubscriber();
48+
$bpmnSubscriber->onActivityException($activity, $token);
4549
}
4650

4751
/**

0 commit comments

Comments
 (0)