mirror of
https://github.com/Pathduck/gallery3.git
synced 2026-05-28 07:19:09 -04:00
Fix a bug where simultaneous deletes of the same item can result in it
deleting the first item row in the database. The root issue is a bug
in Kohana that's addressed in dca9b5f3fc
but in this change we deal with the fact that reloading an item can
result in an instance of the item that's unloaded. In those cases, we
should just ignore it and move on. Fixes #1489.
This commit is contained in:
@@ -96,12 +96,16 @@ class ORM_MPTT_Core extends ORM {
|
||||
$item->reload()->delete();
|
||||
}
|
||||
|
||||
// Deleting children has affected this item
|
||||
$this->reload();
|
||||
// Deleting children has affected this item, but we'll reload it below.
|
||||
}
|
||||
|
||||
$this->lock();
|
||||
$this->reload(); // Assume that the prior lock holder may have changed this entry
|
||||
if (!$this->loaded()) {
|
||||
// Concurrent deletes may result in this item already being gone. Ignore it.
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
db::build()
|
||||
->update($this->table_name)
|
||||
|
||||
Reference in New Issue
Block a user