diff --git a/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php b/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php index e5bc6e51c7453d4f8b279d57bf398979d653532d..7a6113d62b2ad14b120645535ac12624c9a9b97c 100644 --- a/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php +++ b/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Opendocs\Backend\ToolbarItems; +use Doctrine\DBAL\Exception\TableNotFoundException; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Backend\Domain\Model\Element\ImmediateActionElement; use TYPO3\CMS\Backend\Routing\UriBuilder; @@ -140,7 +141,17 @@ class OpendocsToolbarItem implements ToolbarItemInterface, RequestAwareToolbarIt { $table = $document[3]['table'] ?? ''; $uid = $document[3]['uid'] ?? 0; - $record = BackendUtility::getRecordWSOL($table, $uid); + + try { + $record = BackendUtility::getRecordWSOL($table, $uid); + } catch (TableNotFoundException) { + // This exception is caught in cases, when you have an recently opened document + // from an extension record (let's say a sys_note record) and then uninstall + // the extension and drop the DB table. After then, the DB table could + // not be found anymore and will throw an exception making the + // whole backend unusable. + $record = null; + } if (!is_array($record)) { // Record seems to be deleted