- Affected Version
- WoltLab Suite 5.4
- Affected App
- WoltLab Suite Core
Ich hatte das Problem schon einmal in einer vorigen WSC-Version, allerdings kann das ja nicht so bleiben. Und zwar führen Aufrufe von nicht existenten Themen bei aktiviertem (und exzessiv verwendetem) Werbesystem zu folgendem Fehler (zumindest bei uns):
Code
Wed, 21 Jul 2021 11:14:11 +0000
Message: Call to a member function getDecoratedObject() on null
PHP version: 7.4.3
WoltLab Suite version: 5.4.1
Request URI: GET /thread/99999999-xxx/
Referrer:
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 Edg/83.0.478.37
Peak Memory Usage: 12142776/268435456
======
Error Class: Error
Error Message: Call to a member function getDecoratedObject() on null
Error Code: 0
File: /forum/lib/page/AbstractThreadPage.class.php (403)
Stack Trace: [{"file":"\/forum\/lib\/system\/ad\/location\/ThreadAdLocation.class.php","line":37,"function":"getThread","class":"wbb\\page\\AbstractThreadPage","type":"->","args":[]},{"file":"\/lib\/data\/ad\/Ad.class.php","line":93,"function":"replaceVariables","class":"wbb\\system\\ad\\location\\ThreadAdLocation","type":"->","args":[]},{"file":"\/lib\/system\/ad\/AdHandler.class.php","line":71,"function":"getHtmlCode","class":"wcf\\data\\ad\\Ad","type":"->","args":[]},{"file":"\/templates\/compiled\/23_wcf_1_userException.php","line":4107,"function":"getAds","class":"wcf\\system\\ad\\AdHandler","type":"->","args":[]},{"file":"\/lib\/system\/template\/TemplateEngine.class.php","line":346,"args":["[error_during_sanitization]"],"function":"include","class":"","type":""},{"file":"\/lib\/system\/exception\/NamedUserException.class.php","line":43,"function":"display","class":"wcf\\system\\template\\TemplateEngine","type":"->","args":[]},{"file":"\/lib\/system\/exception\/IllegalLinkException.class.php","line":36,"function":"show","class":"wcf\\system\\exception\\NamedUserException","type":"->","args":[]},{"file":"\/lib\/system\/request\/RequestHandler.class.php","line":121,"function":"show","class":"wcf\\system\\exception\\IllegalLinkException","type":"->","args":[]},{"file":"\/index.php","line":11,"function":"handle","class":"wcf\\system\\request\\RequestHandler","type":"->","args":[]}]
Display More
Ich habe dann auch mal In das kompilierte Template geschaut, aber das hat für mich irgendwie nichts mit dem Fehler zu tun:
PHP: 23_wcf_1_userException
<?php if (count($this->v['__wcf']->getLanguage()->getLanguages()) > 1) { ?>
<li class="menuOverlayItemSpacer"></li>
<li class="menuOverlayTitle">Sprache</li>
<li class="menuOverlayItem">
<a href="#" class="menuOverlayItemLink box24">
<img src="<?=wcf\util\StringUtil::encodeHTML($this->v['__wcf']->getLanguage()->getIconPath());?>" alt="">
<span class="menuOverlayItemTitle"><?=wcf\util\StringUtil::encodeHTML($this->v['__wcf']->getLanguage());?></span>
</a>
<ol class="menuOverlayItemList" data-title="Sprache">
<?php
$_foreach_77c8acc20968c1f54313b29c3618e13a8b1a0cc8 = $this->v['__wcf']->getLanguage()->getLanguages();
if ((is_countable($_foreach_77c8acc20968c1f54313b29c3618e13a8b1a0cc8) && count($_foreach_77c8acc20968c1f54313b29c3618e13a8b1a0cc8) > 0) || (!is_countable($_foreach_77c8acc20968c1f54313b29c3618e13a8b1a0cc8) && $_foreach_77c8acc20968c1f54313b29c3618e13a8b1a0cc8)) {
$this->foreachVars['77c8acc20968c1f54313b29c3618e13a8b1a0cc8'] = [];
if (isset($this->v['_language'])) {
$this->foreachVars['77c8acc20968c1f54313b29c3618e13a8b1a0cc8']['item'] = $this->v['_language'];
}
foreach ($_foreach_77c8acc20968c1f54313b29c3618e13a8b1a0cc8 as $this->v['_language']) {
?>
<li class="menuOverlayItem" data-more="com.woltlab.wcf.language" data-language-code="<?=wcf\util\StringUtil::encodeHTML($this->v['_language']->getFixedLanguageCode());?>" data-language-id="<?=$this->v['_language']->languageID;?>">
<a href="#" class="menuOverlayItemLink box24">
<img src="<?=wcf\util\StringUtil::encodeHTML($this->v['_language']->getIconPath());?>" alt="">
<span class="menuOverlayItemTitle"><?=wcf\util\StringUtil::encodeHTML($this->v['_language']);?></span>
</a>
</li>
<?php }
unset($this->v['_language']);if (isset($this->foreachVars['77c8acc20968c1f54313b29c3618e13a8b1a0cc8']['item'])) {
$this->v['_language'] = $this->foreachVars['77c8acc20968c1f54313b29c3618e13a8b1a0cc8']['item'];
}
unset($this->foreachVars['77c8acc20968c1f54313b29c3618e13a8b1a0cc8']);
} ?>
</ol>
</li>
<?php } ?>
<?php } ?>
Display More
Der Aufruf der betroffenen Seiten führt logischerweise zu einem 503er Fehler, was am Ende zu Recht auch von Google bemängelt wird.