Application: umbrello (2.4.5) KDE Platform Version: 4.4.5 (KDE 4.4.5) Qt Version: 4.6.2 Operating System: Linux 2.6.32-30-generic x86_64 Distribution: Ubuntu 10.04.2 LTS -- Information about the crash: Changing the package name of a class from the dialog window (Properties) of a class causes a crash of Umbrello The crash can be reproduced every time. -- Backtrace: Application: Umbrello UML Modeller (umbrello), signal: Segmentation fault [KCrash Handler] #5 0x0000000000f283f0 in vtable for __cxxabiv1::__class_type_info () #6 0x0000000000bc5361 in UMLListView::popupMenuSel (this=0x3314630, action=<value optimized out>) at ../../../umbrello/umbrello/umllistview.cpp:590 #7 0x0000000000bc5ebf in UMLListView::qt_metacall (this=0x3314630, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff7b737380) at ./umllistview.moc:111 #8 0x00007fcd0eb8ee3f in QMetaObject::activate (sender=0x34a8510, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x27710) at kernel/qobject.cpp:3293 #9 0x00007fcd0f489002 in QMenu::triggered (this=0x3a26570, _t1=0x3317760) at .moc/release-shared/moc_qmenu.cpp:164 #10 0x00007fcd0f48b65d in QMenuPrivate::_q_actionTriggered (this=<value optimized out>) at widgets/qmenu.cpp:1129 #11 0x00007fcd0f48f542 in QMenu::qt_metacall (this=0x34a8510, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff7b737580) at .moc/release-shared/moc_qmenu.cpp:105 #12 0x00007fcd10534ca0 in KMenu::qt_metacall (this=0x3a26570, _c=QMetaObject::InvokeMetaMethod, _id=56032176, _a=0x27710) at ./kmenu.moc:76 #13 0x00007fcd0eb8ee3f in QMetaObject::activate (sender=0x3317760, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x27710) at kernel/qobject.cpp:3293 #14 0x00007fcd0f049032 in QAction::triggered (this=0x3a26570, _t1=false) at .moc/release-shared/moc_qaction.cpp:263 #15 0x00007fcd0f04b0ab in QAction::activate (this=0x3317760, event=<value optimized out>) at kernel/qaction.cpp:1255 #16 0x00007fcd0f48a39d in QMenuPrivate::activateCausedStack (this=<value optimized out>, causedStack=..., action=0x3317760, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1011 #17 0x00007fcd0f48fdda in QMenuPrivate::activateAction (this=0x352a290, action=0x3317760, action_e=QAction::Trigger, self=<value optimized out>) at widgets/qmenu.cpp:1103 #18 0x00007fcd1053348e in KMenu::mouseReleaseEvent (this=0x34a8510, e=0x0) at ../../kdeui/widgets/kmenu.cpp:471 #19 0x00007fcd0f0a5582 in QWidget::event (this=0x34a8510, event=0x7fff7b7381d0) at kernel/qwidget.cpp:7998 #20 0x00007fcd0f491f9b in QMenu::event (this=0x34a8510, e=0x7fff7b7381d0) at widgets/qmenu.cpp:2414 #21 0x00007fcd0f04f22c in QApplicationPrivate::notify_helper (this=0x2edd230, receiver=0x34a8510, e=0x7fff7b7381d0) at kernel/qapplication.cpp:4300 #22 0x00007fcd0f055ecb in QApplication::notify (this=0x7fff7b738ee0, receiver=0x34a8510, e=0x7fff7b7381d0) at kernel/qapplication.cpp:3865 #23 0x00007fcd10456a16 in KApplication::notify (this=0x7fff7b738ee0, receiver=0x34a8510, event=0x7fff7b7381d0) at ../../kdeui/kernel/kapplication.cpp:302 #24 0x00007fcd0eb7c06c in QCoreApplication::notifyInternal (this=0x7fff7b738ee0, receiver=0x34a8510, event=0x7fff7b7381d0) at kernel/qcoreapplication.cpp:704 #25 0x00007fcd0f0550ae in QCoreApplication::sendEvent (receiver=0x34a8510, event=0x7fff7b7381d0, alienWidget=0x0, nativeWidget=0x34a8510, buttonDown=<value optimized out>, lastMouseReceiver=<value optimized out>, spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #26 QApplicationPrivate::sendMouseEvent (receiver=0x34a8510, event=0x7fff7b7381d0, alienWidget=0x0, nativeWidget=0x34a8510, buttonDown=<value optimized out>, lastMouseReceiver=<value optimized out>, spontaneous=true) at kernel/qapplication.cpp:2965 #27 0x00007fcd0f0d53dd in QETWidget::translateMouseEvent (this=0x34a8510, event=<value optimized out>) at kernel/qapplication_x11.cpp:4302 #28 0x00007fcd0f0d38ac in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fff7b738af0) at kernel/qapplication_x11.cpp:3501 #29 0x00007fcd0f0ff882 in x11EventSourceDispatch (s=0x2ee0ff0, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146 #30 0x00007fcd0a3cc8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #31 0x00007fcd0a3d0748 in ?? () from /lib/libglib-2.0.so.0 #32 0x00007fcd0a3d08fc in g_main_context_iteration () from /lib/libglib-2.0.so.0 #33 0x00007fcd0eba5513 in QEventDispatcherGlib::processEvents (this=0x2eb57c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 #34 0x00007fcd0f0ff46e in QGuiEventDispatcherGlib::processEvents (this=0x3a26570, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #35 0x00007fcd0eb7a992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #36 0x00007fcd0eb7ad6c in QEventLoop::exec (this=0x7fff7b738e20, flags=) at kernel/qeventloop.cpp:201 #37 0x00007fcd0eb7eaab in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981 #38 0x0000000000b6c6c5 in main (argc=<value optimized out>, argv=<value optimized out>) at ../../../umbrello/umbrello/main.cpp:111 Reported using DrKonqi
Duplicate of bug 242142?
Created attachment 63399 [details] New crash information added by DrKonqi umbrello (2.6.2) on KDE Platform 4.6.2 (4.6.2) using Qt 4.7.2 - What I was doing when the application crashed: 1. Clicked on a class which was not on the diagram but in the UML Model tree view. 2. Opened its properties dialog with right-click. 3. Copied and pasted the package name for the class. It was empty before. 4. Clicked OK. 5. Application crashed. -- Backtrace (Reduced): #8 0x083abf94 in UMLListView::popupMenuSel (this=0x929a520, action=0x939c030) at ../../../umbrello/umbrello/umllistview.cpp:589 #9 0x083b3a7c in UMLListView::qt_metacall (this=0x929a520, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xbf9ace78) at ./umllistview.moc:111 [...] #12 0x01759083 in QMenu::triggered (this=0x93a27f8, _t1=0x939c030) at .moc/release-shared/moc_qmenu.cpp:164 #13 0x0175a0aa in QMenuPrivate::_q_actionTriggered (this=0x9556c18) at widgets/qmenu.cpp:1111 #14 0x0175f30e in QMenu::qt_metacall (this=0x93a27f8, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0xbf9ad048) at .moc/release-shared/moc_qmenu.cpp:105
same issue her (In reply to comment #2) could be reproduced on windows using msvc
at least on windows the problem occurs by an overwritten UMLListViewItem object. in the current item is requested. void UMLListView::popupMenuSel(QAction* action) { UMLListViewItem * temp = (UMLListViewItem*)currentItem(); later the property dialog is displayed: if (Model_Utils::typeIsCanvasWidget(lvt)) { object->showProperties(ClassPropDlg::page_gen); after calling dlg->exec() bool UMLObject::showProperties(int page, bool assoc) { Q_UNUSED(page); DocWindow *docwindow = UMLApp::app()->docWindow(); docwindow->updateDocumentation(false); QPointer<ClassPropDlg> dlg = new ClassPropDlg((QWidget*)UMLApp::app(), this, assoc); bool modified = false; !!! if (dlg->exec()) { then at least the following object members of 'temp' are overwritten + m_label {d=0x00000000 } QString + m_comap {d=0xfdfdfdfd e=0xfdfdfdfd } QMap<UMLClassifierListItem *,UMLListViewItem *>
Here is was happens behind the scene Qt3Supportd4.dll!Q3ListViewItem::~Q3ListViewItem() Zeile 913 C++ umbrello.exe!UMLListViewItem::~UMLListViewItem() Zeile 175 + 0x45 Bytes C++ umbrello.exe!UMLListViewItem::`scalar deleting destructor'() + 0x16 Bytes C++ > umbrello.exe!UMLListView::moveObject(std::basic_string<char,std::char_traits<char>,std::allocator<char> > srcId, UMLListViewItem::ListViewType srcType, UMLListViewItem * newParent) Zeile 1656 + 0x34 Bytes C++ umbrello.exe!Model_Utils::treeViewMoveObjectTo(UMLObject * container, UMLObject * object) Zeile 323 C++ umbrello.exe!ClassGenPage::updateObject() Zeile 434 + 0x10 Bytes C++ umbrello.exe!ClassPropDlg::slotApply() Zeile 170 C++ umbrello.exe!ClassPropDlg::slotOk() Zeile 159 C++ umbrello.exe!ClassPropDlg::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Zeile 73 + 0x8 Bytes C++ QtCored4.dll!QMetaObject::metacall(QObject * object, QMetaObject::Call cl, int idx, void * * argv) Zeile 238 C++ QtCored4.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Zeile 3280 + 0x27 Bytes C++ kdeui.dll!KDialog::okClicked() Zeile 258 + 0x15 Bytes C++ kdeui.dll!KDialog::slotButtonClicked(int button) Zeile 885 C++ kdeui.dll!KDialog::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Zeile 190 + 0x1b Bytes C++ kdeui.dll!KPageDialog::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Zeile 70 + 0x14 Bytes C++ umbrello.exe!ClassPropDlg::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Zeile 68 + 0x17 Bytes C++ After pressing "ok" in the property dialog the widget is going to be moved to the other package, which is handled in > umbrello.exe!UMLListView::moveObject(std::basic_string<char,std::char_traits<char>,std::allocator<char> > srcId, In fact a new widget is created and the old one deleted case UMLListViewItem::lvt_Datatype: if (newParentType == UMLListViewItem::lvt_Logical_Folder || newParentType == UMLListViewItem::lvt_Datatype_Folder || newParentType == UMLListViewItem::lvt_Logical_View || newParentType == UMLListViewItem::lvt_Class || newParentType == UMLListViewItem::lvt_Interface || newParentType == UMLListViewItem::lvt_Package) { newItem = move->deepCopy(newParent); if (m_doc->loading()) // deletion is not safe while loading move->setVisible(false); // (the <listview> XMI may be corrupted) else ! delete move; which means that 'temp' the current list view item is destroyed.
*** Bug 242142 has been marked as a duplicate of this bug. ***
*** Bug 298728 has been marked as a duplicate of this bug. ***
apply fixed bug from 4.9.0 changelog
*** Bug 188300 has been marked as a duplicate of this bug. ***
*** Bug 273594 has been marked as a duplicate of this bug. ***