Compare commits

..

1 Commits

Author SHA1 Message Date
Git'Fellow 049be105f4 fix(files_versions): Return if version entity is not found
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-09-11 12:26:59 +02:00
4 changed files with 13 additions and 39 deletions
@@ -15,6 +15,7 @@ use OCA\DAV\Connector\Sabre\Exception\Forbidden;
use OCA\Files_Versions\Db\VersionEntity;
use OCA\Files_Versions\Db\VersionsMapper;
use OCA\Files_Versions\Storage;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\Constants;
use OCP\Files\File;
use OCP\Files\FileInfo;
@@ -261,7 +262,12 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend
}
public function updateVersionEntity(File $sourceFile, int $revision, array $properties): void {
$versionEntity = $this->versionsMapper->findVersionForFileId($sourceFile->getId(), $revision);
try {
$versionEntity = $this->versionsMapper->findVersionForFileId($sourceFile->getId(), $revision);
} catch (DoesNotExistException $e) {
// no version found for fileId
return;
}
if (isset($properties['timestamp'])) {
$versionEntity->setTimestamp($properties['timestamp']);
+1 -17
View File
@@ -12,7 +12,6 @@ use Exception;
use Nextcloud\LogNormalizer\Normalizer;
use OC\AppFramework\Bootstrap\Coordinator;
use OC\Log\ExceptionSerializer;
use OCP\App\IAppManager;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\ILogger;
use OCP\IRequest;
@@ -39,26 +38,13 @@ class Log implements ILogger, IDataLogger {
private ?bool $logConditionSatisfied = null;
private ?IEventDispatcher $eventDispatcher = null;
private int $nestingLevel = 0;
/** @var callable(): IAppManager */
private $appManagerFactory;
private ?IAppManager $appManager = null;
public function __construct(
private IWriter $logger,
private SystemConfig $config,
private Normalizer $normalizer = new Normalizer(),
private ?IRegistry $crashReporters = null,
?callable $appManagerFactory = null,
) {
$this->appManagerFactory = $appManagerFactory ?? fn() => \OCP\Server::get(IAppManager::class);
}
private function getAppManager(): IAppManager {
if (!$this->appManager) {
$this->appManager = ($this->appManagerFactory)();
}
return $this->appManager;
}
public function setEventDispatcher(IEventDispatcher $eventDispatcher): void {
@@ -156,6 +142,7 @@ class Log implements ILogger, IDataLogger {
$this->log(ILogger::DEBUG, $message, $context);
}
/**
* Logs with an arbitrary level.
*
@@ -171,9 +158,6 @@ class Log implements ILogger, IDataLogger {
return; // no crash reporter, no listeners, we can stop for lower log level
}
if (isset($context['app']) && $version = $this->getAppManager()->getAppVersion($context['app'])) {
$context['app_version'] = $version;
}
array_walk($context, [$this->normalizer, 'format']);
$app = $context['app'] ?? 'no app in context';
+5 -17
View File
@@ -20,23 +20,11 @@ use function array_key_exists;
use function array_merge;
final class PsrLoggerAdapter implements LoggerInterface, IDataLogger {
private ?Log $logger = null;
/**
* @param \Closure(): Log $loggerClosure
*/
public function __construct(
private $loggerClosure,
private Log $logger,
) {
}
private function getLogger(): Log {
if (!$this->logger) {
$this->logger = ($this->loggerClosure)();
}
return $this->logger;
}
public static function logLevelToInt(string $level): int {
return match ($level) {
LogLevel::ALERT => ILogger::ERROR,
@@ -52,7 +40,7 @@ final class PsrLoggerAdapter implements LoggerInterface, IDataLogger {
}
public function setEventDispatcher(IEventDispatcher $eventDispatcher): void {
$this->getLogger()->setEventDispatcher($eventDispatcher);
$this->logger->setEventDispatcher($eventDispatcher);
}
private function containsThrowable(array $context): bool {
@@ -170,7 +158,7 @@ final class PsrLoggerAdapter implements LoggerInterface, IDataLogger {
throw new InvalidArgumentException('Unsupported custom log level');
}
if ($this->containsThrowable($context)) {
$this->getLogger()->logException($context['exception'], array_merge(
$this->logger->logException($context['exception'], array_merge(
[
'message' => (string)$message,
'level' => $level,
@@ -178,11 +166,11 @@ final class PsrLoggerAdapter implements LoggerInterface, IDataLogger {
$context
));
} else {
$this->getLogger()->log($level, (string)$message, $context);
$this->logger->log($level, (string)$message, $context);
}
}
public function logData(string $message, array $data, array $context = []): void {
$this->getLogger()->logData($message, $data, $context);
$this->logger->logData($message, $data, $context);
}
}
-4
View File
@@ -669,15 +669,11 @@ class Server extends ServerContainer implements IServerContainer {
$factory = new LogFactory($c, $this->get(SystemConfig::class));
$logger = $factory->get($logType);
$registry = $c->get(\OCP\Support\CrashReport\IRegistry::class);
$appManagerFactory = fn() => $c->get(IAppManager::class);
return new Log($logger, $this->get(SystemConfig::class), crashReporters: $registry);
});
// PSR-3 logger
$this->registerAlias(LoggerInterface::class, PsrLoggerAdapter::class);
$this->registerService(PsrLoggerAdapter::class, function (Server $c) {
return new PsrLoggerAdapter(fn () => $c->get(Log::class));
});
$this->registerService(ILogFactory::class, function (Server $c) {
return new LogFactory($c, $this->get(SystemConfig::class));