Merge pull request #23185 from nextcloud/backport/23109/stable20
[stable20] dont hold a transaction during the move to trash
This commit is contained in:
commit
76fe051ecb
|
@ -285,8 +285,6 @@ class Trashbin {
|
|||
$trashStorage->unlink($trashInternalPath);
|
||||
}
|
||||
|
||||
$connection = \OC::$server->getDatabaseConnection();
|
||||
$connection->beginTransaction();
|
||||
$trashStorage->getUpdater()->renameFromStorage($sourceStorage, $sourceInternalPath, $trashInternalPath);
|
||||
|
||||
try {
|
||||
|
@ -310,12 +308,16 @@ class Trashbin {
|
|||
} else {
|
||||
$sourceStorage->unlink($sourceInternalPath);
|
||||
}
|
||||
$connection->rollBack();
|
||||
|
||||
if ($sourceStorage->file_exists($sourceInternalPath)) {
|
||||
// undo the cache move
|
||||
$sourceStorage->getUpdater()->renameFromStorage($trashStorage, $trashInternalPath, $sourceInternalPath);
|
||||
} else {
|
||||
$trashStorage->getUpdater()->remove($trashInternalPath);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
$connection->commit();
|
||||
|
||||
if ($moveSuccessful) {
|
||||
$query = \OC_DB::prepare("INSERT INTO `*PREFIX*files_trash` (`id`,`timestamp`,`location`,`user`) VALUES (?,?,?,?)");
|
||||
$result = $query->execute([$filename, $timestamp, $location, $owner]);
|
||||
|
|
Loading…
Reference in New Issue