mapper = $mapper; $this->logger = $logger; } #[\Override] public function getName(): string { return 'Repair Broken Threads for all mail accounts'; } #[\Override] public function run(IOutput $output): void { /** * During the upgrade to v1.11.3 and later the old version of the * mapper is loaded before this new repair step is performed. Hence even after * the program code got replaced, the class doesn't have the new method. We */ if (!method_exists($this->mapper, 'resetInReplyTo')) { $output->warning('New Mail code hasn\'t been loaded yet, skipping message ID repair. Please run `occ maintenance:repair` after the upgrade.'); return; } $count = $this->mapper->resetInReplyTo(); $this->logger->info('Repairing Mail Threading, ' . $count . ' messages updated'); $output->info(sprintf('Repaired threads, %s messages updated', $count)); } }