Summary: | crash when creating a class that refers to more than one other classes/datatypes | ||
---|---|---|---|
Product: | [Applications] umbrello | Reporter: | Anton Kazennikov <kazennikov> |
Component: | general | Assignee: | Oliver Kellogg <okellogg> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | shpagin |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Anton Kazennikov
2007-06-04 21:12:47 UTC
Please provide a backtrace ( http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports ) > Please provide a backtrace [...]
I eagerly second that request as I cannot confirm the reported behavior
with current SVN branches/KDE/3.5/kdesdk.
Backtrace: Using host libthread_db library "/lib/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1236638032 (LWP 21366)] [KCrash handler] #6 0xb65c7558 in ?? () from /lib/libc.so.6 #7 0x0816532c in AssociationWidget::calculateTextPosition (this=0x85c9f40, role=Uml::tr_Name) at associationwidget.cpp:1798 #8 0x08165c40 in AssociationWidget::saveIdealTextPositions (this=0x85c9f40) at associationwidget.cpp:1268 #9 0x08194c8d in UMLWidget::adjustAssocs (this=0x84c26f8, x=52, y=110) at umlwidget.cpp:570 #10 0x08194e2c in ClassifierWidget::adjustAssocs (this=0x84c26f8, x=52, y=110) at classifierwidget.cpp:748 #11 0x08199721 in UMLWidget::updateWidget (this=0x84c26f8) at umlwidget.cpp:181 #12 0x0813170f in UMLWidget::qt_invoke (this=0x84c26f8, _id=3, _o=0xbfbc405c) at umlwidget.moc:134 #13 0xb6dea9f8 in QObject::activate_signal (this=0x84e4c98, clist=0x84c40d8, o=0xbfbc405c) at kernel/qobject.cpp:2380 #14 0xb6deb664 in QObject::activate_signal (this=0x84e4c98, signal=2) at kernel/qobject.cpp:2325 #15 0x081479b4 in UMLObject::modified (this=0x84e4c98) at umlobject.moc:86 #16 0x08270445 in ClassGenPage::updateObject (this=0x84e2cb8) at classgenpage.cpp:402 #17 0x082709f0 in ClassPropDlg::slotApply (this=0x84c1eb8) at classpropdlg.cpp:141 #18 0x0823761b in ClassPropDlg::slotOk (this=0x84c1eb8) at classpropdlg.cpp:135 #19 0xb79c4ec2 in KDialogBase::qt_invoke (this=0x84c1eb8, _id=73, _o=0xbfbc426c) at kdialogbase.moc:359 #20 0x0824c6bf in ClassPropDlg::qt_invoke (this=0x84c1eb8, _id=73, _o=0xbfbc426c) at classpropdlg.moc:87 #21 0xb6dea8cb in QObject::activate_signal (this=0x8521b08, clist=0x8521ae0, o=0xbfbc426c) at kernel/qobject.cpp:2356 #22 0xb6deb664 in QObject::activate_signal (this=0x8521b08, signal=4) at kernel/qobject.cpp:2325 #23 0xb71f41db in QButton::clicked (this=0x8521b08) at .moc/debug-shared-mt/moc_qbutton.cpp:152 #24 0xb6ea0054 in QButton::mouseReleaseEvent (this=0x8521b08, e=0xbfbc46d4) at widgets/qbutton.cpp:836 #25 0xb6e2b63b in QWidget::event (this=0x8521b08, e=0xbfbc46d4) at kernel/qwidget.cpp:4677 #26 0xb6d75fe7 in QApplication::internalNotify (this=0xbfbc5944, receiver=0x8521b08, e=0xbfbc46d4) at kernel/qapplication.cpp:2635 #27 0xb6d782e5 in QApplication::notify (this=0xbfbc5944, receiver=0x8521b08, e=0xbfbc46d4) at kernel/qapplication.cpp:2421 #28 0xb76c9f71 in KApplication::notify (this=0xbfbc5944, receiver=0x8521b08, event=0xbfbc46d4) at kapplication.cpp:550 #29 0xb6cffc2d in QApplication::sendSpontaneousEvent (receiver=0x8521b08, event=0xbfbc46d4) at kernel/qapplication.h:499 #30 0xb6cfe88e in QETWidget::translateMouseEvent (this=0x8521b08, event=0xbfbc4b78) at kernel/qapplication_x11.cpp:4298 #31 0xb6cfca24 in QApplication::x11ProcessEvent (this=0xbfbc5944, event=0xbfbc4b78) at kernel/qapplication_x11.cpp:3449 #32 0xb6d156b2 in QEventLoop::processEvents (this=0x83a1f40, flags=4) at kernel/qeventloop_x11.cpp:192 #33 0xb6d94001 in QEventLoop::enterLoop (this=0x83a1f40) at kernel/qeventloop.cpp:198 #34 0xb6d77c29 in QApplication::enter_loop (this=0xbfbc5944) at kernel/qapplication.cpp:2793 #35 0xb6fd591b in QDialog::exec (this=0x84c1eb8) at dialogs/qdialog.cpp:432 #36 0x081a7087 in UMLWidget::showProperties (this=0x84c26f8) at umlwidget.cpp:603 #37 0x081ac92c in UMLWidget::slotMenuSelection (this=0x84c26f8, sel=85) at umlwidget.cpp:273 #38 0x08122b06 in ToolBarStateArrow::mouseDoubleClickWidget (this=0x84f8580) at toolbarstatearrow.cpp:89 #39 0x0818f702 in ToolBarState::mouseDoubleClick (this=0x84f8580, ome=0xbfbc4dfc) at toolbarstate.cpp:105 #40 0xb6f43f0d in QScrollView::viewportMouseDoubleClickEvent (this=0x84b1128, e=0xbfbc52f4) at widgets/qscrollview.cpp:1767 #41 0xb6f456c2 in QScrollView::eventFilter (this=0x84b1128, obj=0x84b4fc0, e=0xbfbc52f4) at widgets/qscrollview.cpp:1506 #42 0xb6de9d23 in QObject::activate_filters (this=0x84b4fc0, e=0xbfbc52f4) at kernel/qobject.cpp:903 #43 0xb6de9dc4 in QObject::event (this=0x84b4fc0, e=0xbfbc52f4) at kernel/qobject.cpp:735 #44 0xb6e2b552 in QWidget::event (this=0x84b4fc0, e=0xbfbc52f4) at kernel/qwidget.cpp:4659 #45 0xb6d75fe7 in QApplication::internalNotify (this=0xbfbc5944, receiver=0x84b4fc0, e=0xbfbc52f4) at kernel/qapplication.cpp:2635 #46 0xb6d782e5 in QApplication::notify (this=0xbfbc5944, receiver=0x84b4fc0, e=0xbfbc52f4) at kernel/qapplication.cpp:2421 #47 0xb76c9f71 in KApplication::notify (this=0xbfbc5944, receiver=0x84b4fc0, event=0xbfbc52f4) at kapplication.cpp:550 #48 0xb6cffc2d in QApplication::sendSpontaneousEvent (receiver=0x84b4fc0, event=0xbfbc52f4) at kernel/qapplication.h:499 #49 0xb6cfe88e in QETWidget::translateMouseEvent (this=0x84b4fc0, event=0xbfbc5798) at kernel/qapplication_x11.cpp:4298 #50 0xb6cfca24 in QApplication::x11ProcessEvent (this=0xbfbc5944, event=0xbfbc5798) at kernel/qapplication_x11.cpp:3449 #51 0xb6d156b2 in QEventLoop::processEvents (this=0x83a1f40, flags=4) at kernel/qeventloop_x11.cpp:192 #52 0xb6d94001 in QEventLoop::enterLoop (this=0x83a1f40) at kernel/qeventloop.cpp:198 #53 0xb6d93e22 in QEventLoop::exec (this=0x83a1f40) at kernel/qeventloop.cpp:145 #54 0xb6d77cab in QApplication::exec (this=0xbfbc5944) at kernel/qapplication.cpp:2758 #55 0x081c1bbe in main (argc=-1235454888, argv=0xb65c7458) at main.cpp:137 Ah, now I see it too. (The problem, not yet the fix :) SVN commit 671969 by okellogg: Emit addition signal before calling UMLObject::emitModified() (cf. r669599) BUG:146367 M +1 -0 ChangeLog M +7 -7 umbrello/classifier.cpp --- branches/KDE/3.5/kdesdk/umbrello/ChangeLog #671968:671969 @@ -10,6 +10,7 @@ * Attribute documentation not generated for 'Export to XHTML' (145972) * Crash when moving a class in a Java UML diagram (146058) * Arrowheads are not shown (146064) +* Crash when creating a class that refers to more than one other classes/datatypes (146367) Version 1.5.7 --- branches/KDE/3.5/kdesdk/umbrello/umbrello/classifier.cpp #671968:671969 @@ -243,8 +243,8 @@ kDebug() << " UMLClassifier::addOperation list after change: " << buf << endl; } else m_List.append( op ); + emit operationAdded(op); UMLObject::emitModified(); - emit operationAdded(op); connect(op,SIGNAL(modified()),this,SIGNAL(modified())); return true; } @@ -547,8 +547,8 @@ Uml::Visibility scope = Settings::getOptionState().classState.defaultAttributeScope; UMLAttribute *a = new UMLAttribute(this, name, id, scope); m_List.append(a); + emit attributeAdded(a); UMLObject::emitModified(); - emit attributeAdded(a); connect(a,SIGNAL(modified()),this,SIGNAL(modified())); return a; } @@ -561,8 +561,8 @@ if (type) a->setType(type); m_List.append(a); + emit attributeAdded(a); UMLObject::emitModified(); - emit attributeAdded(a); connect(a,SIGNAL(modified()),this,SIGNAL(modified())); return a; } @@ -576,8 +576,8 @@ m_List.insert(position, att); else m_List.append(att); + emit attributeAdded(att); UMLObject::emitModified(); - emit attributeAdded(att); connect(att, SIGNAL(modified()), this, SIGNAL(modified())); return true; } else if (Log) { @@ -674,8 +674,8 @@ return t; t = new UMLTemplate(this, name, id); m_List.append(t); + emit templateAdded(t); UMLObject::emitModified(); - emit templateAdded(t); connect(t, SIGNAL(modified()), this, SIGNAL(modified())); return t; } @@ -686,8 +686,8 @@ newTemplate->parent()->removeChild(newTemplate); this->insertChild(newTemplate); m_List.append(newTemplate); + emit templateAdded(newTemplate); UMLObject::emitModified(); - emit templateAdded(newTemplate); connect(newTemplate,SIGNAL(modified()),this,SIGNAL(modified())); return true; } else if (log) { @@ -707,8 +707,8 @@ m_List.insert(position,Template); else m_List.append(Template); + emit templateAdded(Template); UMLObject::emitModified(); - emit templateAdded(Template); connect(Template,SIGNAL(modified()),this,SIGNAL(modified())); return true; } *** Bug 150637 has been marked as a duplicate of this bug. *** |