Fehlermeldung: DatabaseObjectDecorator::__construct() must be an instance of wcf\data\DatabaseObject - Was tun??

  • Seit heute erhalte ich folgende Fehlermeldung, sobald ich mein Forum betrete:

    Requested URL
    /index.php?notification/&t=
    Referrer
    https://www.compiware-forum.de/
    Error Message
    Argument 1 passed to wcf\data\DatabaseObjectDecorator::__construct() must be an instance of wcf\data\DatabaseObject, null given, called in /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/data/user/group/application/UserGroupApplication.class.php on line 87
    Type
    TypeError
    File (Line)
    /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/data/DatabaseObjectDecorator.class.php (33)
    Stacktrace
    1. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/data/user/group/application/UserGroupApplication.class.php (87): wcf\data\DatabaseObjectDecorator->__construct(…)
    2. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/user/notification/event/UserGroupApplicationCommentResponseUserNotificationEvent.class.php (39): wcf\data\user\group\application\UserGroupApplication->getGroup(…)
    3. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/user/notification/UserNotificationHandler.class.php (500): wcf\system\user\notification\event\UserGroupApplicationCommentResponseUserNotificationEvent->checkAccess(…)
    4. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/user/notification/UserNotificationHandler.class.php (311): wcf\system\user\notification\UserNotificationHandler->processNotifications(…)
    5. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/action/NotificationAction.class.php (31): wcf\system\user\notification\UserNotificationHandler->getNotifications(…)
    6. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/action/NotificationAction.class.php (20): wcf\action\NotificationAction->getOutstandingNotifications(…)
    7. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/action/AbstractAction.class.php (47): wcf\action\NotificationAction->execute(…)
    8. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/request/Request.class.php (83): wcf\action\AbstractAction->__run(…)
    9. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/request/RequestHandler.class.php (94): wcf\system\request\Request->execute(…)
    10. /var/www/compiware-forum.de/htdocs/compiware-forum.de/index.php (9): wcf\system\request\RequestHandler->handle(…)

    Ich vermute, dass das an der moderierten Benutzergruppe liegt, die ich habe. Vor 2 Tagen bin ich zu einem anderen Provider gewechselt. Es lief aber alles so weit. Jetzt komme ich ins Forum und sehe, dass ich eine Benachrichtigung bezüglich einer Gruppenbewerbung habe. Die Bewerbung ist bereits akzeptiert, aber trotzdem poppt permanent diese Meldung auf. Ich klicke sie weg und sie kommt immer wieder... :(


    So kann ich im Forum nichts machen. Nach der Datei UserGroupApplication.class.php unter \lib\data\user\group\application\ habe ich bereits geschaut. In der betroffenen Zeile steht...

    PHP
    public function getGroup() {
            if ($this->group === null) {
                $this->group = new ModeratedUserGroup(UserGroup::getGroupByID($this->groupID));
            }

    Liegt das an der DB? Oder was ist das Problem? :/

    Edited once, last by Joshua Rüsweg: Auth-Token entfernt ().

  • Sind deine Fremdschlüssel noch aktiv?

    Was meinst du mit "Fremdschlüssel"?


    Hast du zufällig in letzter Zeit eine Gruppe gelöscht?

    Nein. Habe keine Gruppe gelöscht.


    Das Problem ist aber gelöst. Es lag tatsächlich an der moderierten Benutzergruppe. Irgendwie lag hier etwas im Argen mit den Benachrichtigungen zur Bewerbung von Benutzern und die Löschung dieser Benachrichtigungen, die eigentlich hätte passieren sollen... :/ Auf jeden Fall hat mir Cyperghost hier super weitergeholfen! Vielen Dank nochmals für die schnelle Hilfe! :thumbup:

    • Official Post

    Was meinst du mit "Fremdschlüssel"?

    Fremdschlüssel befinden sich in einer Datenbank und sollen sicherstellen, dass die Konsistenz der Daten in der Datenbank gegeben ist (=> wird eine Gruppe gelöscht, werden alle Einträge, die zu der Gruppe gehören, mitgelöscht).

    Das Problem ist aber gelöst. Es lag tatsächlich an der moderierten Benutzergruppe. Irgendwie lag hier etwas im Argen mit den Benachrichtigungen zur Bewerbung von Benutzern und die Löschung dieser Benachrichtigungen, die eigentlich hätte passieren sollen... :/ Auf jeden Fall hat mir Cyperghost hier super weitergeholfen! Vielen Dank nochmals für die schnelle Hilfe!

    Dann passt das ja, wenn Cyperghost geschaut hat, werden die Fremdschlüssel auch noch da sein :thumbup:

  • Würde mich auch interessieren, was nun genau das Problem ist / war. Sind es tatsächlich Benachrichtigungen, die von moderierten Gruppen kommen?

    • Official Post

    Es wurde nicht korrekt validiert, ob das Objekt (also die Bewerbung) zu einer Kommentar-Benachrichtigung überhaupt noch existiert.


    Das heißt der Fehler entsteht, wenn man eine Benachrichtigung zu einem Kommentar in einer Bewerbung hat und diese Bewerbung dann zurückgezogen wird (ergo das Objekt wird gelöscht). Das passiert aber auch, wenn die Gruppe gelöscht wird.

  • Und schon wieder erhalte ich jetzt diesen Fehler... :(


    Requested URL
    /index.php?notification/&t=6941d13f10be1e7c74467917d5cecdb32d31704f
    Referrer
    https://www.compiware-forum.de/
    Error Message
    Argument 1 passed to wcf\data\DatabaseObjectDecorator::__construct() must be an instance of wcf\data\DatabaseObject, null given, called in /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/data/user/group/application/UserGroupApplication.class.php on line 87
    Type
    TypeError
    File (Line)
    /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/data/DatabaseObjectDecorator.class.php (33)
    Stacktrace
    1. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/data/user/group/application/UserGroupApplication.class.php (87): wcf\data\DatabaseObjectDecorator->__construct(…)
    2. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/user/notification/event/UserGroupApplicationCommentUserNotificationEvent.class.php (40): wcf\data\user\group\application\UserGroupApplication->getGroup(…)
    3. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/user/notification/UserNotificationHandler.class.php (500): wcf\system\user\notification\event\UserGroupApplicationCommentUserNotificationEvent->checkAccess(…)
    4. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/user/notification/UserNotificationHandler.class.php (311): wcf\system\user\notification\UserNotificationHandler->processNotifications(…)
    5. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/action/NotificationAction.class.php (31): wcf\system\user\notification\UserNotificationHandler->getNotifications(…)
    6. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/action/NotificationAction.class.php (20): wcf\action\NotificationAction->getOutstandingNotifications(…)
    7. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/action/AbstractAction.class.php (47): wcf\action\NotificationAction->execute(…)
    8. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/request/Request.class.php (83): wcf\action\AbstractAction->__run(…)
    9. /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/request/RequestHandler.class.php (94): wcf\system\request\Request->execute(…)
    10. /var/www/compiware-forum.de/htdocs/compiware-forum.de/index.php (9): wcf\system\request\RequestHandler->handle(…)


    Bis vor 2h war noch alles in Ordnung. Ich kann nichts tun. Sobald ich das Forum betrete, poppt dieser Fehler immer wieder und wieder auf... :(


    Was tun??? :/


    EDIT: Zu einer Bewerbung hatte ich einen internen Kommentar geschrieben. Und einer der Moderatoren hat auch etwas dazu geschrieben. Die Bewerbung haben wir allerdings noch nicht akzeptiert. Wie geschrieben kann ich (und vermutlich der Moderator ebenfalls) aktuell das Forum nicht mal betreten. Nach ca. 5 Sekunden poppt der Fehler auf und er poppt immer wieder über die Meldung drüber. Ich muss also jede Menge dieser Meldungen schließen. Nur ins ACP komme ich ohne Probleme. :(


    EDIT2: Tatsächlich hat der Benutzer, zu dessen Bewerbung wir interne Kommentare geschrieben haben, seine Bewerbung wohl zurückgezogen. Denn in der Tabelle wcf1_user_group_application fehlt genau dessen ApplicationID. Wie bekomme ich das gefixt???


    EDIT3: Ich habe mir jetzt die NotificationIDs rausgesucht, die die Ursache sein könnten und habe diese gelöscht. Allerdings kommt die Fehlermeldung noch immer... :/

  • Problem gelöst! :thumbup:


    Da ich nun alle Notifications gelöscht hatte, die den entsprechenden Benutzer betrafen und der Fehler noch immer da war, fiel mir auch auf, dass dieser Benutzer seinen Account gekündigt hatte. Also habe ich den Benutzer auch direkt gelöscht. Leider blieb der Fehler noch immer bestehen... :(


    Dann habe ich mir die Tabelle wcf1_comment genauer angeschaut. Hier waren die besagten internen Kommentare tatsächlich noch enthalten, obwohl weder die dazugehörige Bewerbung noch der betroffene Benutzer existierten. Also habe ich hier die internen Kommentare gelöscht und siehe da, der Fehler ist verschwunden! Jetzt kann ich das Forum wieder ohne Fehlermeldung betreten und alles ist wieder gut. :)