Bug #385
offen[Bugsink] TypeError: Cannot assign null to property In2code\Powermail\Domain\Model\Field::$placeholderRepeat of type string
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/4a625a6e-9fd7-4e94-8cd8-bc5ae957b1a2/event/last/
Typ: NEW issue
Projekt: www-verl-de
Bugsink Alert
TypeError: Cannot assign null to property In2code\Powermail\Domain\Model\Field::$placeholderRepeat of type string
Automatisch erstellt durch n8n
KI-Analyse:
1. Ursache¶
Der Fehler kommt nicht aus dem TYPO3 Core, sondern aus der Extension in2code/powermail.
Root Cause¶
In der Powermail-Klasse:
In2code\Powermail\Domain\Model\Field
ist eine Property vom Typ string definiert, z. B. ungefähr so:
protected string $placeholderRepeat = '';
Irgendwann beim Laden eines Powermail-Fields wird dieser Property null zugewiesen:
$field->placeholderRepeat = null;
oder über einen Setter:
$field->setPlaceholderRepeat(null);
Dadurch kommt in PHP 7.4+/8.x zu:
TypeError: Cannot assign null to property
In2code\Powermail\Domain\Model\Field::$placeholderRepeat of type string
Typischer Trigger¶
Am wahrscheinlichsten liegt ein Datenproblem vor:
- Powermail liest Feld-Records aus der Datenbank.
- In der Datenbank ist
placeholder_repeatfür mindestens ein FeldNULL. - Das Modell erwartet aber einen
string, z. B.'', nichtnull.
Bei Powermail 4/5 ist die relevante Tabelle in der Regel:
in2code_powermail_field
mit der Spalte:
placeholder_repeat
Es kann auch ein alter Eintrag nach einem Update, einem Import oder einer manuellen DB-Änderung betroffen sein.
2. Fix¶
Option A: Datenreparatur – empfohlen als sofortige Lösung¶
Führe diese SQL-Anweisung aus:
UPDATE in2code_powermail_field
SET placeholder_repeat = ''
WHERE placeholder_repeat IS NULL;
Optional zusätzlich die Spalte sauber absichern:
ALTER TABLE in2code_powermail_field
MODIFY placeholder_repeat VARCHAR(255) NOT NULL DEFAULT '';
Das verhindert, dass null wieder aus der Datenbank geladen wird.
Achtung: Je nach Powermail-Version kann die genaue Tabelle/später auch anders heißen.
In Powermail 4/5 ist aber sehr wahrscheinlichin2code_powermail_fieldkorrekt.
Option B: Code-Patch in der Extension – defensiv¶
Falls du den Fehler auch auf Codeebene verhindern möchtest, patche:
vendor/in2code/powermail/Classes/Domain/Model/Field.php
Anpassung der Property:
protected ?string $placeholderRepeat = '';
Und sicherstellen, dass der Setter null normalisiert:
public function setPlaceholderRepeat(?string $placeholderRepeat): void
{
$this->placeholderRepeat = $placeholderRepeat ?? '';
}
Getter auf string normalisieren:
public function getPlaceholderRepeat(): string
{
return $this->placeholderRepeat ?? '';
}
Das verhindert den TypeError, falls noch null zugewiesen wird.
Warum direkt die Property nullable machen?¶
Wenn Extbase oder ein anderer Mapper die Property direkt schreibt, z. B.:
$field->placeholderRepeat = $dbValue;
dann hilft nur eine nullable Property:
protected ?string $placeholderRepeat = '';
Der Setter allein würde in diesem Fall nicht aufgerufen.
3. Betroffene TYPO3 Extension¶
in2code/powermail
bzw. im Filesystem:
vendor/in2code/powermail
Der Fehler liegt nicht in:
typo3/cms-core
Die gezeigten Frames sind nur der Core-Bootstrap, weil der Error während des Requests nach oben durchgeproppt ist.
4. Confidence¶
90 %
Begründung:
- Die Fehlermeldung benennt exakt die Powermail-Property.
-
Cannot assign null to property ... of type stringist ein typisches Problem durch nicht-normalisierte NULL-Werte aus DB/Mapping. - Der Fix ist klar: DB-Repair + defensive Normalisierung in
In2code\Powermail\Domain\Model\Field.
Nichts anzuzeigen