Bug #83339

Method TYPO3\CMS\Core\Preparations\TcaPreparation::prepareQuotingOfTableNamesAndColumnNames breaks TYPO3 low level commands

Added by Manuel Selbach almost 2 years ago. Updated almost 2 years ago.

Status:
Rejected
Priority:
Should have
Category:
-
Target version:
Start date:
2017-12-15
Due date:
% Done:

0%

TYPO3 Version:
8
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

If you try to set a variable via TYPO3 console like `vendor/bin/typo3cms configuration:set DB/Connections/Default/driver`
the new method TYPO3\CMS\Core\Preparations\TcaPreparation::prepareQuotingOfTableNamesAndColumnNames will be triggered which leads to have a database connection established already to quote the identifier correctly.

As we try to set the database parameter at this point, this fail with an exception:

[ TypeError ]
 strpos() expects parameter 1 to be string, null given
 thrown in file typo3/sysext/core/Classes/Database/ConnectionPool.php
 in line 152

Exception trace:
#0 strpos()
   typo3/sysext/core/Classes/Database/ConnectionPool.php:152
#1 TYPO3\CMS\Core\Database\ConnectionPool::getDatabaseConnection()
   typo3/sysext/core/Classes/Database/ConnectionPool.php:132
#2 TYPO3\CMS\Core\Database\ConnectionPool::getConnectionByName()
   typo3/sysext/core/Classes/Database/ConnectionPool.php:83
#3 TYPO3\CMS\Core\Database\ConnectionPool::getConnectionForTable()
   typo3/sysext/core/Classes/Preparations/TcaPreparation.php:79
#4 TYPO3\CMS\Core\Preparations\TcaPreparation::prepareQuotingOfTableNamesAndColumnNames()
   typo3/sysext/core/Classes/Preparations/TcaPreparation.php:45
#5 TYPO3\CMS\Core\Preparations\TcaPreparation::prepare()
   typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php:1789
#6 TYPO3\CMS\Core\Utility\ExtensionManagementUtility::buildBaseTcaFromSingleFiles()
   typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php:1709
#7 TYPO3\CMS\Core\Utility\ExtensionManagementUtility::loadBaseTca()
   vendor/helhum/typo3-console/Classes/Core/ConsoleBootstrap.php:386
#8 Helhum\Typo3Console\Core\ConsoleBootstrap::loadTcaOnly()
   vendor/helhum/typo3-console/Classes/Core/Booting/Scripts.php:155
#9 Helhum\Typo3Console\Core\Booting\Scripts::initializeExtensionConfiguration()
#10 call_user_func()
   vendor/helhum/typo3-console/Classes/Core/Booting/Step.php:53
#11 Helhum\Typo3Console\Core\Booting\Step::__invoke()
   vendor/helhum/typo3-console/Classes/Core/Booting/Sequence.php:108
#12 Helhum\Typo3Console\Core\Booting\Sequence::invokeStep()
   vendor/helhum/typo3-console/Classes/Core/Booting/Sequence.php:92
#13 Helhum\Typo3Console\Core\Booting\Sequence::invoke()
   vendor/helhum/typo3-console/Classes/Mvc/Cli/RequestHandler.php:92
#14 Helhum\Typo3Console\Mvc\Cli\RequestHandler::boot()
   vendor/helhum/typo3-console/Classes/Mvc/Cli/RequestHandler.php:77
#15 Helhum\Typo3Console\Mvc\Cli\RequestHandler::handleRequest()
   vendor/helhum/typo3-console/Classes/Core/ConsoleBootstrap.php:111
#16 Helhum\Typo3Console\Core\ConsoleBootstrap::run()
   vendor/helhum/typo3-console/Scripts/typo3cms.php:65
#17 {closure}()
   vendor/helhum/typo3-console/Scripts/typo3cms.php:66
#18 require()
   vendor/helhum/typo3-console/Scripts/typo3cms:4

History

#1 Updated by Stephan Großberndt almost 2 years ago

This is a bug in TYPO3 console which uses internal API, we are checking several concepts to approach this in 8.7 and master.

#2 Updated by Helmut Hummel almost 2 years ago

  • Status changed from New to Rejected

Thanks for your report.

While quickly discussing this, we came to the conclusion, that this needs to be fixed in TYPO3 Console.
A fix is pending.

Also available in: Atom PDF