Actions
Bug #98328
openException "Data too long for column url" when checking links
Status:
New
Priority:
Should have
Assignee:
-
Category:
Site Handling, Site Sets & Routing
Target version:
-
Start date:
2022-09-11
Due date:
% Done:
0%
Estimated time:
TYPO3 Version:
12
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:
Description
Presumably, due to the already known parsing problem when parsing links, an exception may get thrown while checking links. This is severe for linkvalidator because the link checking is aborted and worst case a number of links can no longer be checked.
The exception occurs in linkvalidator but the reason for the exception is the link parsing, see #98120 and related issues
Reproduce¶
1. Insert content of attached file bodytext_content_source.txt into an RTE field for example of CE "Text & Media" (in "source" mode or via a DB INSERT).
2. Run "Check links" in linkvadator Module tab "Check links" function
An Exception should be shown in BE (use Debug mode)
Solution¶
Workaround¶
Avoid Links in RTE where the anchor text contains a URL
Exception stack trace¶
see also file exception_log.txt
(1/3) #1406 Doctrine\DBAL\Exception\DriverException An exception occurred while executing a query: Data too long for column 'url' at row 1 in /var/www/html/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php line 119 case 1566: return new NotNullConstraintViolationException($exception, $query); } return new DriverException($exception, $query); } } at Doctrine\DBAL\Driver\API\MySQL\ExceptionConverter->convert(object(Doctrine\DBAL\Driver\Mysqli\Exception\StatementError), object(Doctrine\DBAL\Query)) in /var/www/html/vendor/doctrine/dbal/src/Connection.php line 1814 if ($this->exceptionConverter === null) { $this->exceptionConverter = $this->_driver->getExceptionConverter(); } $exception = $this->exceptionConverter->convert($driverException, $query); if ($exception instanceof ConnectionLost) { $this->close(); } at Doctrine\DBAL\Connection->handleDriverException(object(Doctrine\DBAL\Driver\Mysqli\Exception\StatementError), object(Doctrine\DBAL\Query)) in /var/www/html/vendor/doctrine/dbal/src/Connection.php line 1749 string $sql, array $params = [], array $types = [] ): DriverException { return $this->handleDriverException($e, new Query($sql, $params, $types)); } /** * @internal at Doctrine\DBAL\Connection->convertExceptionDuringQuery(object(Doctrine\DBAL\Driver\Mysqli\Exception\StatementError), 'INSERT INTO `tx_linkvalidator_link` (`headline`, `record_pid`, `record_uid`, `table_name`, `link_type`, `link_title`, `field`, `last_check`, `element_type`, `language`, `url`, `url_response`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', array(' .... in /var/www/html/typo3/sysext/linkvalidator/Classes/LinkAnalyzer.php line 169 // @todo #64091: only select rows that have content in at least one of the relevant fields (via OR) while ($row = $result->fetchAssociative()) { $results = []; $this->analyzeRecord($results, $table, $fields, $row); $this->checkLinks($results, $linkTypes); } } } }
Files
Actions