Beantwortet Bug in BaseSearchQuery.php in Shop v5.2.1 ?

LS|media

Aktives Mitglied
29. Januar 2016
20
0
Hallo,

ich habe den Eindruck, dass in der Datei BaseSearchQuery.php ein Bug sein könnte.

Ausgangssituation: Die Volltextsuche (Einstellung #1657) ist deaktiviert. Die Standardsuche wird verwendet.

Bei der erstmaligen Suche nach einem Suchbegriff (weniger als 3 Suchwörter), zu dem es keine Suchtreffer gibt, erhalte ich folgende Fehlermeldung:

Code:
Fatal error: Uncaught ValueError: str_repeat(): Argument #2 ($times) must be greater than or equal to 0 in [root]/includes/src/Filter/States/BaseSearchQuery.php:867

Stack trace:
#0 [root]/includes/src/Filter/States/BaseSearchQuery.php(867): str_repeat()
#1 [root]/includes/src/Filter/ProductFilter.php(707): JTL\Filter\States\BaseSearchQuery->editSearchCache()
#2 [root]/includes/src/Router/Controller/AbstractController.php(184): JTL\Filter\ProductFilter->initStates()
#3 [root]/includes/src/Router/Controller/SearchController.php(28): JTL\Router\Controller\AbstractController->updateProductFilter()
#4 [root]/includes/src/Router/Controller/SearchController.php(47): JTL\Router\Controller\SearchController->getStateFromSlug()
#5 [root]/includes/src/Router/Controller/RootController.php(40): JTL\Router\Controller\SearchController->getResponse()
#6 [root]/includes/src/Router/Strategy/SmartyStrategy.php(40): JTL\Router\Controller\RootController->getResponse()
#7 [root]/includes/vendor/league/route/src/Route.php(167): JTL\Router\Strategy\SmartyStrategy->invokeRouteCallable()
#8 [root]/includes/vendor/league/route/src/Dispatcher.php(59): League\Route\Route->process()
#9 [root]/includes/src/Router/Middleware/OptinMiddleware.php(49): League\Route\Dispatcher->handle()
#10 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\OptinMiddleware->process()
#11 [root]/includes/src/Router/Middleware/CurrencyCheckMiddleware.php(26): League\Route\Dispatcher->handle()
#12 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\CurrencyCheckMiddleware->process()
#13 [root]/includes/src/Router/Middleware/LocaleCheckMiddleware.php(34): League\Route\Dispatcher->handle()
#14 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\LocaleCheckMiddleware->process()
#15 [root]/includes/src/Router/Middleware/CartcheckMiddleware.php(25): League\Route\Dispatcher->handle()
#16 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\CartcheckMiddleware->process()
#17 [root]/includes/src/Router/Middleware/WishlistCheckMiddleware.php(24): League\Route\Dispatcher->handle()
#18 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\WishlistCheckMiddleware->process()
#19 [root]/includes/src/Router/Middleware/SSLRedirectMiddleware.php(30): League\Route\Dispatcher->handle()
#20 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\SSLRedirectMiddleware->process()
#21 [root]/includes/src/Router/Middleware/MaintenanceModeMiddleware.php(40): League\Route\Dispatcher->handle()
#22 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\MaintenanceModeMiddleware->process()
#23 [root]/includes/vendor/league/route/src/Strategy/ApplicationStrategy.php(37): League\Route\Dispatcher->handle()
#24 [root]/includes/vendor/league/route/src/Dispatcher.php(59): Psr\Http\Server\MiddlewareInterface@anonymous->process()
#25 [root]/includes/vendor/league/route/src/Dispatcher.php(53): League\Route\Dispatcher->handle()
#26 [root]/includes/vendor/league/route/src/Router.php(111): League\Route\Dispatcher->dispatchRequest()
#27 [root]/includes/src/Router/Router.php(659): League\Route\Router->dispatch()
#28 [root]/includes/src/Shop.php(455): JTL\Router\Router->dispatch()
#29 [root]/index.php(7): JTL\Shop::dispatch()
#30 {main} thrown in [root]/includes/src/Filter/States/BaseSearchQuery.php on line 867

Jede weitere Suchanfrage mit gleichem Suchbegriff scheint fehlerfrei zu funktionieren. Es wird wie erwartet die Suchseite angezeigt - mit der Meldung, dass nichts gefunden wurde.

Ich vermute, dass der Suchbegriff noch nicht im Cache gespeichert ist und daher an folgender Stelle im Code $rows leer ist und str_repeat() mit dem Wert -1 aufgerufen wird:
PHP:
$brackets = 0;
$prio     = 1;

foreach ($rows as $i => $col) {
    [...]
    ++$brackets;
    [...]
}

$sql .= \str_repeat(')', ($brackets - 1));

Kann das jemand reproduzieren?
Liegt das an einer falschen Konfiguration in unserem Shop oder ist das ein Bug im Code?

Gerade teste ich, ob der Fehler auch bei aktivierter Volltextsuche auftritt (Volltextindex wird gerade erstellt). Ich werde hier berichten.

VG Sven
 

LS|media

Aktives Mitglied
29. Januar 2016
20
0
Sorry, ich war etwas voreilig und kann meine Frage selbst beantworten: Nein, es ist kein Bug... vielleicht ein kleiner :)

Ursache war, dass jemand alle Suchprioritäten im Shop auf 0 gesetzt und damit deaktiviert hat. Das fiel mir zu spät auf und macht natürlich wenig Sinn.
Vielleicht könnte man dennoch für diesen Fall den Code etwas stabiler machen.

Mit aktivierter Volltextsuche trat die Fehlermeldung nicht auf.

VG Sven
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Bug Popup/eModal - JTL Shop 5.3 JTL-Shop - Fehler und Bugs 1
BUG - Postleitzahlen JTL-Wawi App 0
Neu Ganz neuer Bug? eBay.co.uk Verkauf Lieferung nach Ungarn - falsche Steuer eBay-Anbindung - Fehler und Bugs 2
Bug? Worker 2.0 - Shop Abgleich "Quicksync" ist kein Quicksync mehr - Paketgröße wird ignoriert JTL-Wawi 1.8 10
Bug: Fail to update Product Data. There are missing Attributes Titel, Bild, FSK-Einstufung kaufland.de - Anbindung (SCX) 2
Bug? Fehler EAN (Kaufland.cz) auf Kaufland.de aber korrekt kaufland.de - Anbindung (SCX) 1
Neu Bug bei Berechnung von Lieferzeit bei Stücklisten JTL-Wawi - Fehler und Bugs 1
Workflow-Bug: 1.8.11 Attribute in Workflow setzen JTL-Wawi 1.8 10
Workflow Bug: Rechnungskorrektur erstellen aus Retoure JTL-Wawi 1.8 4
Neu BUG: Inventur Differenzen JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu PrestaShop Connector für Prestashop 8 mit PHP 8.2 wird nicht unterstützt PrestaShop-Connector 0
Neu /navi.php?q=2 Abfragen laufen auf 404 Gelöste Themen in diesem Bereich 4
Neu JTL Connector Woocomerce für PHP Version 7.4 WooCommerce-Connector 2
Neu Connector für php 8.3 / Prestashop 8.1.3 PrestaShop-Connector 3
Neu JTL-Shop 5 und PHP OpCache Allgemeine Fragen zu JTL-Shop 9
Neu Richtige Hook zum Berechnen der Lieferzeit in Artikel.php Technische Fragen zu Plugins und Templates 1
Neu keine Vorschläge und suggest.php JTL-Search 1
Neu Update 5.1.2 auf 5.2.4 Struktur-Migration Fehler in 320 Tabellen, PHP 8.2.14 Gelöste Themen in diesem Bereich 3
Neu gelöst: PHP Abfrage Versandklasse und passendes Bild aussteuern Betrieb / Pflege von JTL-Shop 2
Neu PHP mail() Versand Betrieb / Pflege von JTL-Shop 7
Beantwortet Fehler bei Synchronisation [PHP Fatal Error] Gelöste Themen in diesem Bereich 2

Ähnliche Themen