From e2d2eea1a226aca5bfcba05490ba6aa2b5d1b399 Mon Sep 17 00:00:00 2001 From: Allon Moritz Date: Fri, 21 Jan 2022 18:48:56 +0100 Subject: [PATCH 1/3] Do not double lock assets --- libraries/src/Table/Nested.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/libraries/src/Table/Nested.php b/libraries/src/Table/Nested.php index 783392b5de38c..c51fa25733848 100644 --- a/libraries/src/Table/Nested.php +++ b/libraries/src/Table/Nested.php @@ -547,13 +547,6 @@ public function delete($pk = null, $children = true) ); $this->getDispatcher()->dispatch('onBeforeDelete', $event); - // Lock the table for writing. - if (!$this->_lock()) - { - // Error message set in lock method. - return false; - } - // If tracking assets, remove the asset first. if ($this->_trackAssets) { @@ -571,16 +564,15 @@ public function delete($pk = null, $children = true) if ($asset->loadByName($name)) { + $asset->_unlock(); + // Delete the node in assets table. if (!$asset->delete(null, $children)) { $this->setError($asset->getError()); - $asset->_unlock(); return false; } - - $asset->_unlock(); } else { @@ -591,6 +583,13 @@ public function delete($pk = null, $children = true) } } + // Lock the table for writing. + if (!$this->_lock()) + { + // Error message set in lock method. + return false; + } + // Get the node by id. $node = $this->_getNode($pk); From b88c9b5b7489828c83b0456f27029dacb9f2a4ea Mon Sep 17 00:00:00 2001 From: Allon Moritz Date: Fri, 21 Jan 2022 19:02:59 +0100 Subject: [PATCH 2/3] db update --- composer.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index 530979ca39c03..445b8b0e8ce7f 100644 --- a/composer.lock +++ b/composer.lock @@ -1135,16 +1135,16 @@ }, { "name": "joomla/database", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/joomla-framework/database.git", - "reference": "98709eec31d9a3432611adc3c87a4c9a506279d9" + "reference": "142a624df2f48858467de67a4542d77807cc968b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/database/zipball/98709eec31d9a3432611adc3c87a4c9a506279d9", - "reference": "98709eec31d9a3432611adc3c87a4c9a506279d9", + "url": "https://api.github.com/repos/joomla-framework/database/zipball/142a624df2f48858467de67a4542d77807cc968b", + "reference": "142a624df2f48858467de67a4542d77807cc968b", "shasum": "" }, "require": { @@ -1199,7 +1199,7 @@ ], "support": { "issues": "https://github.com/joomla-framework/database/issues", - "source": "https://github.com/joomla-framework/database/tree/2.0.1" + "source": "https://github.com/joomla-framework/database/tree/2.0.2" }, "funding": [ { @@ -1211,7 +1211,7 @@ "type": "github" } ], - "time": "2021-12-10T11:53:59+00:00" + "time": "2022-01-10T02:28:52+00:00" }, { "name": "joomla/di", @@ -4819,7 +4819,7 @@ "TYPO3\\PharStreamWrapper\\": "src/" } }, - "autoload-dev": { + "autoload-dev": { "psr-4": { "Tobscure\\Tests\\JsonApi\\": "tests/" } @@ -10608,5 +10608,5 @@ "platform-overrides": { "php": "7.2.5" }, - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.1.0" } From bc5050cb48a493fa94b3d14440a9879327b20513 Mon Sep 17 00:00:00 2001 From: Benjamin Trenkle Date: Sat, 22 Jan 2022 12:52:30 +0100 Subject: [PATCH 3/3] Remove double asset lock (#19) * Remove double asset lock * Only remove lock --- libraries/src/Table/Nested.php | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/libraries/src/Table/Nested.php b/libraries/src/Table/Nested.php index c51fa25733848..e96ce51563243 100644 --- a/libraries/src/Table/Nested.php +++ b/libraries/src/Table/Nested.php @@ -555,17 +555,8 @@ public function delete($pk = null, $children = true) /** @var Asset $asset */ $asset = Table::getInstance('Asset', 'JTable', array('dbo' => $this->getDbo())); - // Lock the table for writing. - if (!$asset->_lock()) - { - // Error message set in lock method. - return false; - } - if ($asset->loadByName($name)) { - $asset->_unlock(); - // Delete the node in assets table. if (!$asset->delete(null, $children)) { @@ -577,7 +568,6 @@ public function delete($pk = null, $children = true) else { $this->setError($asset->getError()); - $asset->_unlock(); return false; }