Aktionen
Fehler #601
geschlossenAbsturz bei mehrfachem Anklicken einer Person in AppAttendance
Beginn:
22.10.2015
Abgabedatum:
% erledigt:
100%
Geschätzter Aufwand:
Beschreibung
Reproduzieren: cit2 starten, eine Person mehrfach klicken
FM; Segmentation fault.
Stack:
0 QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>>::data C:/Qt/5.5/mingw492_32/bin/Qt5Cored.dll 135 0x6ba58ae8 1 qGetPtrHelper<QScopedPointer<QObjectData>> C:/Qt/5.5/mingw492_32/bin/Qt5Cored.dll 983 0x6b909879 2 QObject::d_func C:/Qt/5.5/mingw492_32/bin/Qt5Cored.dll 110 0x6ba704e7 3 QObject::property C:/Qt/5.5/mingw492_32/bin/Qt5Cored.dll 3875 0x6b907992 4 CuteEntityManager::Entity::getProperty entity.cpp 126 0x27a51e3a 5 CuteEntityManager::EntityManager::hasChanged entitymanager.cpp 386 0x27a54d2a 6 CuteEntityManager::EntityManager::saveObject entitymanager.cpp 92 0x27a52b3a 7 CuteEntityManager::EntityManager::save entitymanager.cpp 219 0x27a536ea 8 AppAttendance::buttonAction appattendance.cpp 103 0x4521a5 9 AppAttendance::qt_static_metacall moc_appattendance.cpp 72 0x4605ce 10 QMetaObject::activate C:/Qt/5.5/mingw492_32/bin/Qt5Cored.dll 3713 0x6b907249 11 QMetaObject::activate C:/Qt/5.5/mingw492_32/bin/Qt5Cored.dll 3578 0x6b906b8e 12 GroupContent::buttonClicked moc_groupcontent.cpp 527 0x45a64b 13 GroupContent::qt_static_metacall moc_groupcontent.cpp 164 0x459aaa 14 QMetaObject::activate C:/Qt/5.5/mingw492_32/bin/Qt5Cored.dll 3713 0x6b907249 15 QMetaObject::activate C:/Qt/5.5/mingw492_32/bin/Qt5Cored.dll 3578 0x6b906b8e 16 ButtonContent::clicked moc_buttoncontent.cpp 934 0x459509 17 ButtonContent::onClicked buttoncontent.h 88 0x475685 18 ButtonContent::qt_static_metacall moc_buttoncontent.cpp 368 0x4580e7 19 ButtonContent::qt_metacall moc_buttoncontent.cpp 813 0x45913d ... <More>
In entitymanager.cpp 385 ist offensichtlich
auto e = EntityInstanceFactory::castQVariant(v);
nicht erfolgreich, wodurch die folgende Zeile
if (e->getProperty(entity->getPrimaryKey()) != i.value()) {
zum Crash führt.
An ebender stelle ist:
Locals this "em[0]" CuteEntityManager::EntityManager [QObject] "em[0]" QObject cache CuteEntityManager::Cache connectionNames <1 items> QStringList db QSharedPointer<CuteEntityManager::Database> id "" QString instances <1 items> QHash<QString, CuteEntityManager::EntityManager*> logger QSharedPointer<CuteEntityManager::Logger> queryInterpreter QSharedPointer<CuteEntityManager::QueryInterpreter> schema QSharedPointer<CuteEntityManager::Schema> staticMetaObject QMetaObject [parent] 0x0 QObject * [children] <0 items> QObjectList [properties] <>0 items> [methods] <50 items> [signals] <0 items> appendix "_id" QString [0] 95 QChar [1] 105 QChar [2] 100 QChar changed false bool e (null) QSharedPointer<CuteEntityManager::Entity> entity QSharedPointer<CuteEntityManager::Entity> & data AttendanceIncident weakref 5 int strongref 4 int i QHash<QString, QVariant>::const_iterator listmap <15 items> QHash<QString, QVariant> [0] QHashNode<QString, QVariant> [1] QHashNode<QString, QVariant> [2] QHashNode<QString, QVariant> [3] QHashNode<QString, QVariant> [4] QHashNode<QString, QVariant> [5] QHashNode<QString, QVariant> [6] QHashNode<QString, QVariant> [7] QHashNode<QString, QVariant> [8] QHashNode<QString, QVariant> [9] QHashNode<QString, QVariant> [10] QHashNode<QString, QVariant> [11] QHashNode<QString, QVariant> [12] QHashNode<QString, QVariant> [13] QHashNode<QString, QVariant> [14] QHashNode<QString, QVariant> relKey "room" QString [0] 114 QChar [1] 111 QChar [2] 111 QChar [3] 109 QChar relations <4 items> QHash<QString, CuteEntityManager::Relation> [0] QHashNode<QString, CuteEntityManager::Relation> [1] QHashNode<QString, CuteEntityManager::Relation> [2] QHashNode<QString, CuteEntityManager::Relation> [3] QHashNode<QString, CuteEntityManager::Relation> rels <4 items> QStringList [0] "appData_id" QString [1] "room_id" QString [2] "pupil_id" QString [3] "group_id" QString v QVariant (QSharedPointer<Room>)
Der dbcon0.log zeigt folgende letzte Meldungen im DEBUG-Modus:
{"time":"2015-10-22T11:34:54", "query":"SELECT * FROM `attendanceincident` LEFT JOIN `incident` ON `incident`.`id` = `attendanceincident`.`id` WHERE `bookedAt` <= ? AND `bookedFor` <= ? AND ( `cancelledAt`IS NULL OR ( `cancelledAt` > ? AND `cancelledAt`IS NOT NULL ) ) AND `pupil_id`=? AND `appData_id`=? ORDER BY `bookedFor` DESC", "values": {"appData_id":"1", "bookedAt":"2015-09-14T10:11:00", "bookedFor":"2015-09-14T10:11:00", "cancelledAt":"2015-09-14T10:11:00", "pupil_id":"21"}} {"time":"2015-10-22T11:34:54", "query":"SELECT * FROM `appattendancedata` LEFT JOIN `appdata` ON `appdata`.`id`=`appattendancedata`.`id` WHERE `appattendancedata`.`id`= ? LIMIT 1", "values": {"id":"1"}} {"time":"2015-10-22T11:34:54", "query":"SELECT * FROM `pupil` LEFT JOIN `person` ON `person`.`id`=`pupil`.`id` WHERE `pupil`.`id`= ? LIMIT 1", "values": {"id":"21"}} {"time":"2015-10-22T11:34:54", "query":"SELECT * FROM `group` WHERE `group`.`id`= ? LIMIT 1", "values": {"id":"1"}} {"time":"2015-10-22T11:34:54", "query":"INSERT INTO `incident`(`additionalInfo`,`pupil_id`,`bookedFor`,`locked`,`bookedAt`,`group_id`,`cancelledAt`,`appData_id`)VALUES(?,?,?,?,?,?,?,?);", "values": {"additionalInfo":"Neuer Incident!", "appData_id":"1", "bookedAt":"2015-09-14T10:11:00", "bookedFor":"2015-09-14T10:11:00", "cancelledAt":"", "group_id":"1", "locked":"false", "pupil_id":"21"}} {"time":"2015-10-22T11:34:55", "query":"INSERT INTO `attendanceincident`(`excusedAt`,`state`,`notExcusable`,`lessonsMissed`,`id`,`minutesLate`)VALUES(?,?,?,?,?,?);", "values": {"excusedAt":"", "id":"8", "lessonsMissed":"2", "minutesLate":"0", "notExcusable":"false", "state":"2"}} {"time":"2015-10-22T11:34:55", "query":"SELECT * FROM `attendanceincident` LEFT JOIN `incident` ON `incident`.`id` = `attendanceincident`.`id` WHERE `bookedAt` <= ? AND `bookedFor` <= ? AND ( `cancelledAt`IS NULL OR ( `cancelledAt` > ? AND `cancelledAt`IS NOT NULL ) ) AND `pupil_id`=? AND `appData_id`=? ORDER BY `bookedFor` DESC", "values": {"appData_id":"1", "bookedAt":"2015-09-14T10:11:00", "bookedFor":"2015-09-14T10:11:00", "cancelledAt":"2015-09-14T10:11:00", "pupil_id":"21"}} {"time":"2015-10-22T11:34:55", "query":"SELECT * FROM `appdata` WHERE `appdata`.`id`= ? LIMIT 1", "values": {"id":"1"}} {"time":"2015-10-22T11:34:55", "query":"SELECT * FROM `group_appDatasAssociated` WHERE `appdata_id` = ?;", "values": {"id":"1"}} {"time":"2015-10-22T11:34:55", "query":"SELECT * FROM `attendanceincident` LEFT JOIN `incident` ON `incident`.`id`=`attendanceincident`.`id` WHERE `attendanceincident`.`id`= ? LIMIT 1", "values": {"id":"8"}}
Aktionen
#1
Von Christian Ehringfeld vor etwa 9 Jahren aktualisiert
- Projekt wurde von 24 zu CuteEntityManager geändert
- % erledigt wurde von 0 zu 50 geändert
Hmm ok.
Eigentlich müsste das casten von QVariant erfolgreich sein. Ich hab mal was commitet. Mangels Zeit konnte ich das jetzt nicht wirklich testen. Ich werde mir das heut abend nochmal anschauen.
8588ecff85397500937c8dd7ff5f151c64f8872c
7b72386daa96289989986d4f08abb785f5ee8231
Aktionen
#2
Von Christian Ehringfeld vor etwa 9 Jahren aktualisiert
- Status wurde von Neu zu Erledigt geändert
- Zielversion wurde auf 0.1 gesetzt
- % erledigt wurde von 50 zu 100 geändert
Aktionen