Bug 146058

Summary: crash when moving a class in a Java UML diagram
Product: [Applications] umbrello Reporter: Carlos Aceituno <cdaceituno>
Component: generalAssignee: Oliver Kellogg <okellogg>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: valgrind log

Description Carlos Aceituno 2007-05-28 11:31:27 UTC
Version:           1.5.7 (using KDE KDE 3.5.7)
Installed from:    Debian testing/unstable Packages
Compiler:          gcc version 4.1.3 20070514 (prerelease) (Debian 4.1.2-7) 
OS:                Linux

Umbrello 1.5.7 crashes when moving a class which has several associations and generalizations. The crash backtrace is attached:

(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1503037744 (LWP 9772)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#5  0x0069006c in ?? ()
#6  0x081250c9 in AssociationWidget::calculateTextPosition ()
#7  0x0812a8d1 in AssociationWidget::saveIdealTextPositions ()
#8  0x082081b7 in UMLWidget::adjustUnselectedAssocs ()
#9  0x0820d265 in UMLWidgetController::mouseMoveEvent ()
#10 0x081a9677 in ToolBarStateArrow::mouseMoveWidget ()
#11 0x081a8ccd in ToolBarState::mouseMove ()
#12 0xa702ec81 in QScrollView::viewportMouseMoveEvent ()
   from /usr/lib/libqt-mt.so.3
#13 0xa7030452 in QScrollView::eventFilter () from /usr/lib/libqt-mt.so.3
#14 0xa6efa302 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3
#15 0xa6efa380 in QObject::event () from /usr/lib/libqt-mt.so.3
#16 0xa6f31612 in QWidget::event () from /usr/lib/libqt-mt.so.3
#17 0xa6e92c26 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#18 0xa6e94dc9 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#19 0xa7638cce in KApplication::notify () from /usr/lib/libkdecore.so.4
#20 0xa6e26495 in QApplication::sendSpontaneousEvent ()
   from /usr/lib/libqt-mt.so.3
#21 0xa6e2512f in QETWidget::translateMouseEvent ()
   from /usr/lib/libqt-mt.so.3
#22 0xa6e236b0 in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#23 0xa6e39d02 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#24 0xa6ead179 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#25 0xa6eacf9a in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#26 0xa6e947bf in QApplication::exec () from /usr/lib/libqt-mt.so.3
#27 0x0817f4cc in main ()
Comment 1 Oliver Kellogg 2007-05-30 08:12:49 UTC
Created attachment 20722 [details]
valgrind log

While I'm having a problem recreating the crash using umbrello r669259
from branches/KDE/3.5/kdesdk, valgrind does report uninitialized values
when moving a multiple selection containing associations on a class diagram.
Comment 2 Oliver Kellogg 2007-05-31 01:22:41 UTC
SVN commit 669987 by okellogg:

FloatingTextWidgetController constructor: Initialize member variables.
This fixes the valgrind warnings exposed in attachment 20722 [details].
I have not been getting the reported crashes using r669259 of
SVN branches/KDE/3.5/kdesdk/umbrello.
Could someone please verify that the bug is really fixed, thanks.
BUG:146058


 M  +1 -1      ChangeLog  
 M  +4 -0      umbrello/floatingtextwidgetcontroller.cpp  


--- branches/KDE/3.5/kdesdk/umbrello/ChangeLog #669986:669987
@@ -1,13 +1,13 @@
 Version 1.5.71
 
 * Bugs/wishes from http://bugs.kde.org:
-* Switching between tabbed and non-tabbed views requires restart (98204)
 * Preprocessor keywords ignored which causes endless loop in code import (119125)
 * Unstable saves and loads, class names become dirty (145709)
 * Crash on deleting class in list view (145762)
 * Class attribute documentation not generated for python (145916)
 * Python code generator does not wrap lines properly (145918)
 * 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)
 
 Version 1.5.7
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/floatingtextwidgetcontroller.cpp #669986:669987
@@ -18,6 +18,10 @@
 FloatingTextWidgetController::FloatingTextWidgetController(FloatingTextWidget *floatingTextWidget):
             UMLWidgetController(floatingTextWidget) {
     m_floatingTextWidget = floatingTextWidget;
+    m_unconstrainedPositionX = 0;
+    m_unconstrainedPositionY = 0;
+    m_movementDirectionX = 0;
+    m_movementDirectionY = 0;
 }
 
 FloatingTextWidgetController::~FloatingTextWidgetController() {