diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fd5dac..9d6b318 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.0.2] - Unreleased +### Fixed + - Fixed issue where error states are not properly handled in `ExecutionPointerManager` issue [#44](https://git.n64.cc/nosial/ncc/-/issues/44) + ### Changed - Updated `Symfony\Filesystem` to version 6.2.5 - Updated `Symfony\polyfill-ctype` to version 1.27.0 diff --git a/src/ncc/Managers/ExecutionPointerManager.php b/src/ncc/Managers/ExecutionPointerManager.php index f7fac47..efa9b23 100644 --- a/src/ncc/Managers/ExecutionPointerManager.php +++ b/src/ncc/Managers/ExecutionPointerManager.php @@ -437,11 +437,17 @@ } catch(Exception $e) { - unset($e); - $this->handleExit($package, $version, $unit->ExecutionPolicy->ExitHandlers->Error); - } + if($unit->ExecutionPolicy->ExitHandlers !== null && $unit->ExecutionPolicy->ExitHandlers->Error !== null) + { + $this->handleExit($package, $version, $unit->ExecutionPolicy->ExitHandlers->Error); + } - Console::outDebug(sprintf('exit_code=%s', $process->getExitCode())); + Console::outException(sprintf('An error occurred while executing the unit \'%s\' for \'%s\' (exit code %s)', $unit->ExecutionPolicy->Name, $package, $process->getExitCode()), $e); + } + finally + { + Console::outDebug(sprintf('exit_code=%s', $process->getExitCode())); + } if($unit->ExecutionPolicy->ExitHandlers !== null) {