From 751ef401c67554c820dccae5c97cea5172f9a23f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sun, 19 Feb 2023 00:54:16 +0100 Subject: [PATCH] Continued: - exit; means normal exit which isn't the case here - updated 'core' framework --- application/hub/exceptions.php | 14 +++++++++++--- core | 2 +- index.php | 15 ++++++++------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/application/hub/exceptions.php b/application/hub/exceptions.php index 6e8fd9f70..b8c7e4572 100644 --- a/application/hub/exceptions.php +++ b/application/hub/exceptions.php @@ -10,7 +10,7 @@ use Org\Mxchange\CoreFramework\Object\BaseFrameworkSystem; * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2022 Hub Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2023 Hub Developer Team * @license GNU GPL 3.0 or any newer version * * This program is free software: you can redistribute it and/or modify @@ -34,6 +34,9 @@ function hub_exception_handler ($exceptionInstance) { // Init variable $backTrace = ''; + // Generate exception code + $exceptionCode = ($exceptionInstance instanceof FrameworkException ? $exceptionInstance->getHexCode() : '0x' . bin2hex($exceptionInstance->getCode())); + // Get all call levels from backtrace foreach ($exceptionInstance->getTrace() as $idx => $traceArray) { // Init argument string @@ -84,7 +87,7 @@ Backtrace: --------------------------------------------------------------------------------\n", trim(html_entity_decode(strip_tags(get_class($exceptionInstance)))), trim(html_entity_decode(strip_tags($exceptionInstance->getMessage()))), - ($exceptionInstance instanceof FrameworkException ? $exceptionInstance->getHexCode() : '0x' . bin2hex($exceptionInstance->getCode())), + $exceptionCode, $exceptionInstance->getFile(), $exceptionInstance->getLine(), trim($backTrace) @@ -92,16 +95,21 @@ Backtrace: // Output the message print($message); + + // Exit with code + exit(hexdec($exceptionCode)); } elseif (is_object($exceptionInstance)) { // Output more details printf('exceptionInstance=%s', print_r($exceptionInstance, true)); + exit(255); } else { /* * Invalid exception instance detected! Do *only* throw exceptions that * extends our own exception 'FrameworkException' to get such nice * outputs like above. */ - printf('exceptionInstance[]=%s is invalid! Please inform the core developer team.' . PHP_EOL, gettype($exceptionInstance)); + printf('exceptionInstance[]=%s is invalid! Please inform the hub developer team.' . PHP_EOL, gettype($exceptionInstance)); + exit(255); } } diff --git a/core b/core index 1287590bb..f861d6bc0 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 1287590bb4dff94252b1c45f320d93ce65eb5495 +Subproject commit f861d6bc00f8a3ecf6b057f2aa93129572643896 diff --git a/index.php b/index.php index 51a9f4758..94177e306 100644 --- a/index.php +++ b/index.php @@ -62,7 +62,8 @@ final class ApplicationEntryPoint { // Is this method already called? if (isset($GLOBALS['app_die_called'])) { // Then output the text directly - exit($message); + print $message . PHP_EOL; + exit(255); } // This method shall not be called twice @@ -80,7 +81,7 @@ final class ApplicationEntryPoint { // Do we have debug installation? if (($configInstance->getConfigEntry('product_install_mode') == 'productive') || ($silentMode === true)) { // Abort here - exit; + exit(255); } // Get some instances @@ -173,16 +174,16 @@ final class ApplicationEntryPoint { $responseInstance->flushBuffer(); } catch (FileNotFoundException $e) { // Even the template 'emergency_exit' wasn't found so output both message - exit($message . ', exception: ' . $e->getMessage()); + print ($message . ', exception: ' . $e->getMessage() . PHP_EOL); + exit($e->getCode()); } // Good bye... - exit; + exit(255); } else { // Output message and die - die(sprintf('[Main:] Emergency exit reached: %s', - $message - )); + printf('[Main:] Emergency exit reached: %s', $message); + exit(255); } } -- 2.39.5