From 2c3a0173e6dbfab3093b01643dc03110ddb4538b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Wed, 2 Dec 2020 05:29:29 +0100 Subject: [PATCH] Continued: - removed deprecated exception NoStackerException and replaced by BadMethodCallException MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../registry/class_RegistryIterator.php | 20 ++++---- .../classes/stacker/class_BaseStacker.php | 31 ++++++------ .../stacker/fifo/class_FiFoStacker.php | 4 +- .../stacker/file/class_BaseFileStack.php | 2 +- .../stacker/file/fifo/class_FiFoFileStack.php | 4 +- .../stacker/filo/class_FiLoStacker.php | 4 +- .../stacker/class_NoStackerException.php | 50 ------------------- .../interfaces/stacker/class_Stackable.php | 6 +-- 8 files changed, 37 insertions(+), 84 deletions(-) delete mode 100644 framework/main/exceptions/stacker/class_NoStackerException.php diff --git a/framework/main/classes/iterator/registry/class_RegistryIterator.php b/framework/main/classes/iterator/registry/class_RegistryIterator.php index c042707f..9c9d0b4a 100644 --- a/framework/main/classes/iterator/registry/class_RegistryIterator.php +++ b/framework/main/classes/iterator/registry/class_RegistryIterator.php @@ -142,7 +142,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[generic]: entries()=%d', count($entries))); if (count($entries) > 0) { // Debugging: - /* DEBUG-DIE: */ die(sprintf('[%s:%d]: UNFINISHED: entries=%s', __METHOD__, __LINE__, print_r($entries, TRUE))); + /* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: UNFINISHED: entries=%s', __METHOD__, __LINE__, print_r($entries, TRUE))); } // END - if // Get instance registry entries from it @@ -172,7 +172,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { // Add all sub-registry keys to this registry keys array //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[instance]: subRegistryInstances()=%d', count($subRegistryInstances))); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: key=%s,subRegistryInstances=%s', __METHOD__, __LINE__, $key, print_r($subRegistryInstances, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: key=%s,subRegistryInstances=%s', __METHOD__, __LINE__, $key, print_r($subRegistryInstances, TRUE))); foreach (array_keys($subRegistryInstances) as $subKey) { // Add it //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[instance]: Adding key=%s,subKey=%s ...', $key, $subKey)); @@ -202,7 +202,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { // Add key to array //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[instance]: key=%s - Adding ...', $key)); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: key=%s,entry=%s', __METHOD__, __LINE__, $key, print_r($entry, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: key=%s,entry=%s', __METHOD__, __LINE__, $key, print_r($entry, TRUE))); array_push($this->registryKeys['instance'], $key); } // END - foreach } // END - if @@ -230,7 +230,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { public function current () { // Default is null //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: CALLED!', $this->key())); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); $current = NULL; $entries = []; @@ -248,7 +248,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { // The key should be there //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: Handling registryKey=%s ...', $this->key(), $registryKey)); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: instances=%s', __METHOD__, __LINE__, print_r($instances, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: instances=%s', __METHOD__, __LINE__, print_r($instances, TRUE))); if (!isset($instances[$this->key()])) { // Skip below code //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: registryKey=%s has no this->key=%s, skipping ...', $this->key(), $registryKey)); @@ -294,7 +294,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { public function next () { // Is valid() still TRUE? //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: CALLED!', $this->key())); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); if (!$this->valid()) { // Bad method call! throw new BadMethodCallException(sprintf('this->key[%s]=%s is no longer valid, but method was called.', gettype($this->key()), $this->key())); @@ -312,7 +312,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: this->registryKeys[generic]()=%d,this->registryKeys[instance]()=%d', $this->key(), count($this->registryKeys['generic']), count($this->registryKeys['instance']))); if (count($this->registryKeys['generic']) > 0) { // First generic array - /* UNFINISHED */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + /* UNFINISHED */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); } elseif (count($this->registryKeys['instance']) > 0) { // Second instance, current key's index + 1 $nextIndex = array_search($this->key(), $this->registryKeys['instance']) + 1; @@ -346,7 +346,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { public function rewind () { // Is current key first key? //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: CALLED!', $this->key())); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); if (array_search($this->key(), $this->getRegistryKeys()) === 0) { // rewind() cannot rewind first entry! throw new BadMethodCallException(sprintf('this->key=%s is already first element, but method was called.', $this->key())); @@ -359,7 +359,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: this->registryKeys[generic]()=%d,this->registryKeys[instance]()=%d', $this->key(), count($this->registryKeys['generic']), count($this->registryKeys['instance']))); if (count($this->registryKeys['generic']) > 0) { // First generic array - /* UNFINISHED */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); + /* UNFINISHED */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->valid=%d,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), intval($this->valid()), print_r($this->registryKeys, TRUE))); } elseif (count($this->registryKeys['instance']) > 0) { // Second instance $this->key = $this->registryKeys['instance'][0]; @@ -377,7 +377,7 @@ class RegistryIterator extends BaseIterator implements IteratableRegistry { public function valid () { // Is the element there? //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('REGISTRY-ITERATOR[%s]: CALLED!', $this->key())); - //* DEBUG-DIE: */ die(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), print_r($this->registryKeys, TRUE))); + //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this->key(%d)[%s]=%s,this->registryKeys=%s', __METHOD__, __LINE__, strlen($this->key()), gettype($this->key()), $this->key(), print_r($this->registryKeys, TRUE))); $valid = (in_array($this->key(), $this->registryKeys['instance']) || in_array($this->key(), $this->registryKeys['generic'])); // Return flag diff --git a/framework/main/classes/stacker/class_BaseStacker.php b/framework/main/classes/stacker/class_BaseStacker.php index 12059306..9ba1deec 100644 --- a/framework/main/classes/stacker/class_BaseStacker.php +++ b/framework/main/classes/stacker/class_BaseStacker.php @@ -6,6 +6,9 @@ namespace Org\Mxchange\CoreFramework\Stacker; use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap; use Org\Mxchange\CoreFramework\Object\BaseFrameworkSystem; +// Import SPL stuff +use \BadMethodCallException; + /** * A general Stacker * @@ -97,13 +100,13 @@ abstract class BaseStacker extends BaseFrameworkSystem { * * @param $stackerName Name of the stack * @return $isFull Whether the stack is full - * @throws NoStackerException If given stack is missing + * @throws BadMethodCallException If given stack is missing */ protected function isStackFull (string $stackerName) { // Is the stack not yet initialized? if (!$this->isStackInitialized($stackerName)) { // Throw an exception - throw new NoStackerException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); + throw new BadMethodCallException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); } // END - if // So, is the stack full? @@ -118,13 +121,13 @@ abstract class BaseStacker extends BaseFrameworkSystem { * * @param $stackerName Name of the stack * @return $isEmpty Whether the stack is empty - * @throws NoStackerException If given stack is missing + * @throws BadMethodCallException If given stack is missing */ public function isStackEmpty (string $stackerName) { // Is the stack not yet initialized? if (!$this->isStackInitialized($stackerName)) { // Throw an exception - throw new NoStackerException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); + throw new BadMethodCallException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); } // END - if // So, is the stack empty? @@ -139,13 +142,13 @@ abstract class BaseStacker extends BaseFrameworkSystem { * * @param $stackerName Name of the stack * @return $count Size of stack (array count) - * @throws NoStackerException If given stack is missing + * @throws BadMethodCallException If given stack is missing */ public function getStackCount (string $stackerName) { // Is the stack not yet initialized? if (!$this->isStackInitialized($stackerName)) { // Throw an exception - throw new NoStackerException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); + throw new BadMethodCallException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); } // END - if // Now, count the array of entries @@ -182,14 +185,14 @@ abstract class BaseStacker extends BaseFrameworkSystem { * * @param $stackerName Name of the stack * @return $value Value of last added value - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ protected function getLastValue (string $stackerName) { // Is the stack not yet initialized or full? if (!$this->isStackInitialized($stackerName)) { // Throw an exception - throw new NoStackerException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); + throw new BadMethodCallException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); } elseif ($this->isStackEmpty($stackerName)) { // Throw an exception throw new EmptyStackerException(array($this, $stackerName), self::EXCEPTION_STACKER_IS_EMPTY); @@ -207,14 +210,14 @@ abstract class BaseStacker extends BaseFrameworkSystem { * * @param $stackerName Name of the stack * @return $value Value of last added value - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ protected function getFirstValue (string $stackerName) { // Is the stack not yet initialized or full? if (!$this->isStackInitialized($stackerName)) { // Throw an exception - throw new NoStackerException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); + throw new BadMethodCallException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); } elseif ($this->isStackEmpty($stackerName)) { // Throw an exception throw new EmptyStackerException(array($this, $stackerName), self::EXCEPTION_STACKER_IS_EMPTY); @@ -232,14 +235,14 @@ abstract class BaseStacker extends BaseFrameworkSystem { * * @param $stackerName Name of the stack * @return $value Value "poped" from array - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ protected function popLast (string $stackerName) { // Is the stack not yet initialized or full? if (!$this->isStackInitialized($stackerName)) { // Throw an exception - throw new NoStackerException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); + throw new BadMethodCallException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); } elseif ($this->isStackEmpty($stackerName)) { // Throw an exception throw new EmptyStackerException(array($this, $stackerName), self::EXCEPTION_STACKER_IS_EMPTY); @@ -254,14 +257,14 @@ abstract class BaseStacker extends BaseFrameworkSystem { * * @param $stackerName Name of the stack * @return $value Value "shifted" from array - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ protected function popFirst (string $stackerName) { // Is the stack not yet initialized or full? if (!$this->isStackInitialized($stackerName)) { // Throw an exception - throw new NoStackerException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); + throw new BadMethodCallException(array($this, $stackerName), self::EXCEPTION_NO_STACKER_FOUND); } elseif ($this->isStackEmpty($stackerName)) { // Throw an exception throw new EmptyStackerException(array($this, $stackerName), self::EXCEPTION_STACKER_IS_EMPTY); diff --git a/framework/main/classes/stacker/fifo/class_FiFoStacker.php b/framework/main/classes/stacker/fifo/class_FiFoStacker.php index 70e6a578..6cc71a95 100644 --- a/framework/main/classes/stacker/fifo/class_FiFoStacker.php +++ b/framework/main/classes/stacker/fifo/class_FiFoStacker.php @@ -69,7 +69,7 @@ class FiFoStacker extends BaseStacker implements Stackable { * * @param $stackerName Name of the stack * @return $value Value of the current stack entry - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ public function popNamed ($stackerName) { @@ -88,7 +88,7 @@ class FiFoStacker extends BaseStacker implements Stackable { * * @param $stackerName Name of the stack * @return $value Value of last added value - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ public function getNamed ($stackerName) { diff --git a/framework/main/classes/stacker/file/class_BaseFileStack.php b/framework/main/classes/stacker/file/class_BaseFileStack.php index d313f16e..d990a375 100644 --- a/framework/main/classes/stacker/file/class_BaseFileStack.php +++ b/framework/main/classes/stacker/file/class_BaseFileStack.php @@ -419,7 +419,7 @@ abstract class BaseFileStack extends BaseStacker { * * @param $stackerName Name of the stack * @return $isEmpty Whether the stack is empty - * @throws NoStackerException If given stack is missing + * @throws BadMethodCallException If given stack is missing */ public function isStackEmpty (string $stackerName) { // So, is the stack empty? diff --git a/framework/main/classes/stacker/file/fifo/class_FiFoFileStack.php b/framework/main/classes/stacker/file/fifo/class_FiFoFileStack.php index 76b3298d..57c69249 100644 --- a/framework/main/classes/stacker/file/fifo/class_FiFoFileStack.php +++ b/framework/main/classes/stacker/file/fifo/class_FiFoFileStack.php @@ -80,7 +80,7 @@ class FiFoFileStack extends BaseFileStack implements StackableFile, Calculatable * * @param $stackerName Name of the stack * @return $value Value of the current stack entry - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ public function popNamed ($stackerName) { @@ -99,7 +99,7 @@ class FiFoFileStack extends BaseFileStack implements StackableFile, Calculatable * * @param $stackerName Name of the stack * @return $value Value of last added value - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ public function getNamed ($stackerName) { diff --git a/framework/main/classes/stacker/filo/class_FiLoStacker.php b/framework/main/classes/stacker/filo/class_FiLoStacker.php index aa0583e4..4b8237df 100644 --- a/framework/main/classes/stacker/filo/class_FiLoStacker.php +++ b/framework/main/classes/stacker/filo/class_FiLoStacker.php @@ -69,7 +69,7 @@ class FiLoStacker extends BaseStacker implements Stackable { * * @param $stackerName Name of the stack * @return $value Value of the current stack entry - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ public function popNamed ($stackerName) { @@ -88,7 +88,7 @@ class FiLoStacker extends BaseStacker implements Stackable { * * @param $stackerName Name of the stack * @return $value Value of last added value - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ public function getNamed ($stackerName) { diff --git a/framework/main/exceptions/stacker/class_NoStackerException.php b/framework/main/exceptions/stacker/class_NoStackerException.php deleted file mode 100644 index ba1a99b1..00000000 --- a/framework/main/exceptions/stacker/class_NoStackerException.php +++ /dev/null @@ -1,50 +0,0 @@ - - * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2020 Core Developer Team - * @license GNU GPL 3.0 or any newer version - * @link http://www.shipsimu.org - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -class NoStackerException extends FrameworkException { - /** - * The super constructor for all exceptions - * - * @param $messageArray Error message array - * @param $code Error code - * @return void - */ - public function __construct (array $messageArray, int $code) { - // Construct message - $message = sprintf('[%s:%d] Stacker %s is not initialized.', - $messageArray[0]->__toString(), - $this->getLine(), - $messageArray[1] - ); - - // Call parent exception constructor - parent::__construct($message, $code); - } - -} diff --git a/framework/main/interfaces/stacker/class_Stackable.php b/framework/main/interfaces/stacker/class_Stackable.php index 79199068..aebbd9f8 100644 --- a/framework/main/interfaces/stacker/class_Stackable.php +++ b/framework/main/interfaces/stacker/class_Stackable.php @@ -43,7 +43,7 @@ interface Stackable extends FrameworkInterface { * * @param $stackerName Name of the stacker * @return $value Value of the current stack entry - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ function popNamed (string $stackerName); @@ -53,7 +53,7 @@ interface Stackable extends FrameworkInterface { * * @param $stackerName Name of the stacker * @return $value Value of last added value - * @throws NoStackerException If the named stacker was not found + * @throws BadMethodCallException If the named stacker was not found * @throws EmptyStackerException If the named stacker is empty */ function getNamed (string $stackerName); @@ -71,7 +71,7 @@ interface Stackable extends FrameworkInterface { * * @param $stackerName Name of the stack * @return $isEmpty Whether the stack is empty - * @throws NoStackerException If given stack is missing + * @throws BadMethodCallException If given stack is missing */ function isStackEmpty (string $stackerName); -- 2.39.5