Call to a member function canRead() on null

  • Affected Version
    WoltLab Suite 5.4
    Affected App
    WoltLab Suite Core

    Leider habe ich keine genaueren Informationen dazu, außer, dass der Fehler sporadisch auftritt:

    Requested URL
    GET /attachment/196372-bda72-jpg/
    Referrer
    *snip*
    Error Message
    Call to a member function canRead() on null
    Type
    Error
    File (Line)
    /httpdocs/lib/system/attachment/ConversationMessageAttachmentObjectType.class.php (58)
    Stacktrace
    1. /httpdocs/lib/data/attachment/Attachment.class.php (125): wcf\system\attachment\ConversationMessageAttachmentObjectType->canDownload(…)
    2. /httpdocs/lib/data/attachment/Attachment.class.php (81): wcf\data\attachment\Attachment->getPermission(…)
    3. /httpdocs/lib/page/AttachmentPage.class.php (128): wcf\data\attachment\Attachment->canDownload(…)
    4. /httpdocs/lib/page/AbstractPage.class.php (336): wcf\page\AttachmentPage->checkPermissions(…)
    5. /httpdocs/lib/page/AttachmentPage.class.php (186): wcf\page\AbstractPage->show(…)
    6. /httpdocs/lib/page/AbstractPage.class.php (122): wcf\page\AttachmentPage->show(…)
    7. /httpdocs/lib/system/request/Request.class.php (89): wcf\page\AbstractPage->__run(…)
    8. /httpdocs/lib/system/request/RequestHandler.class.php (119): wcf\system\request\Request->execute(…)
    9. /httpdocs/index.php (11): wcf\system\request\RequestHandler->handle(…)

    Der Dateianhang existiert jedenfalls in der Datenbank und auch physikalisch.

    Aus dem Stegreif würde ich behaupten, da hat jemand einen Anhang aus einer Konversation irgendwo außerhalb der Konversation posten wollen?

  • Hallo,

    unabhängig vom Problem (was ich noch nicht geprüft habe): Könntest du bitte das Format der geloggten Exception beibehalten, damit diese in das „lesbare“ Format geparsed werden kann? Den Referer kannst du beispielsweise einfach durch *snip* ersetzen.

  • Hallo,

    der Fehler betrifft verwaiste Dateianhänge, die aus irgendeinem Grund bei der Löschung der Nachricht oder der Konversation nicht ebenfalls gelöscht wurden.

    Siehe:

    Prevent method calls on `null` in ConversationMessageAttachmentObjectType::canDownload() by TimWolla · Pull Request #157 · WoltLab/com.woltlab.wcf.conversation
    This may happen for attachments where the corresponding conversation / conversation message no longer exists. Shall we add an update script that cleans up…
    github.com
  • Tim Düsterhus September 23, 2021 at 1:41 PM

    Added the Label 5.4.8
  • Tim Düsterhus September 23, 2021 at 1:41 PM

    Added the Label Fixed

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!