[umbrello-devel] [umbrello] [Bug 338797] New: SEGV crash when umbrello is opening AIXM files

M Hounsell at ACFR m.hounsell at acfr.usyd.edu.au
Thu Sep 4 04:57:12 UTC 2014


https://bugs.kde.org/show_bug.cgi?id=338797

            Bug ID: 338797
           Summary: SEGV crash when umbrello is opening AIXM files
           Product: umbrello
           Version: Git
          Platform: Compiled Sources
                OS: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: NOR
         Component: general
          Assignee: umbrello-devel at kde.org
          Reporter: m.hounsell at acfr.usyd.edu.au

The program causes a SEGV while it is displaying all the diagrams contained in
the below model. The program has not yet successfully viewed the model. The
model was created using Rational Rose.

Source Model
http://www.aixm.aero/gallery/content/public/AIXM51/AIXM-5-1-20100201-uml.zip

See https://bugs.kde.org/show_bug.cgi?id=338536

#0  ClassifierWidget::displayedMembers(this = 0x567b860, this at entry =
0x567b860, ot = UMLObject::ot_Attribute, ot at entry = UMLObject::ot_Attribute) at
/home/mhounsell/src/umbrello/umbrello/widgets/classifierwidget.cpp:448
#1  ClassifierWidget::displayedAttributes(this = 0x567b860, this at entry =
0x567b860) at
/home/mhounsell/src/umbrello/umbrello/widgets/classifierwidget.cpp:608
#2  ClassifierWidget::paint(this = 0x567b860, painter = 0x7fffffffaa70, option
= 0x582e648, widget = 0x42fa040) at
/home/mhounsell/src/umbrello/umbrello/widgets/classifierwidget.cpp:750
#3  QGraphicsScenePrivate::draw(this = 0x582e420, this at entry = 0x582e420, item
= 0x567b870, item at entry = 0x567b870, painter = 0x7fffffffaa70, painter at entry =
0x7fffffffaa70, viewTransform = 0x7fffffffab20, viewTransform at entry =
0x7fffffffab20, transformPtr = 0x7fffffffa7b0, transformPtr at entry =
0x7fffffffa7b0, exposedRegion = 0x56d09a8, exposedRegion at entry = 0x56d09a8,
widget = 0x42fa040, opacity = 1, opacity at entry = 1, effectTransform = 0x0,
effectTransform at entry = 0x0, wasDirtyParentSceneTransform = false,
wasDirtyParentSceneTransform at entry = false, drawItem = true) at
graphicsview/qgraphicsscene.cpp:4964
#4  QGraphicsScenePrivate::drawSubtreeRecursive(this = 0x582e420, this at entry =
0x582e420, item = 0x567b870, painter = 0x7fffffffaa70, painter at entry =
0x7fffffffaa70, viewTransform = 0x7fffffffab20, viewTransform at entry =
0x7fffffffab20, exposedRegion = 0x56d09a8, exposedRegion at entry = 0x56d09a8,
widget = 0x42fa040, widget at entry = 0x42fa040, parentOpacity = 1,
parentOpacity at entry = 1, effectTransform = 0x0, effectTransform at entry = 0x0) at
graphicsview/qgraphicsscene.cpp:4857
#5  QGraphicsScenePrivate::drawItems(this = 0x582e420, painter =
0x7fffffffaa70, painter at entry = 0x7fffffffaa70, viewTransform = 0x7fffffffab20,
viewTransform at entry = 0x7fffffffab20, exposedRegion = 0x56d09a8,
exposedRegion at entry = 0x56d09a8, widget = 0x42fa040) at
graphicsview/qgraphicsscene.cpp:4739
#6  QGraphicsView::paintEvent(this = <optimised out>, event = <optimised out>)
at graphicsview/qgraphicsview.cpp:3471
#7  QWidget::event(this = 0x455c420, this at entry = 0x455c420, event =
0x7fffffffb100, event at entry = 0x7fffffffb100) at kernel/qwidget.cpp:8533
#8  QFrame::event(this = 0x455c420, e = 0x7fffffffb100) at
widgets/qframe.cpp:557
#9  QGraphicsView::viewportEvent(this = 0x455c420, event = 0x7fffffffb100) at
graphicsview/qgraphicsview.cpp:2866
#10  QCoreApplicationPrivate::sendThroughObjectEventFilters(this = 0x9ddae0,
this at entry = 0x9ddae0, receiver = 0x42fa040, receiver at entry = 0x42fa040, event
= 0x7fffffffb100, event at entry = 0x7fffffffb100) at
kernel/qcoreapplication.cpp:1063
#11  QApplicationPrivate::notify_helper(this = 0x9ddae0, this at entry = 0x9ddae0,
receiver = 0x42fa040, receiver at entry = 0x42fa040, e = 0x7fffffffb100, e at entry =
0x7fffffffb100) at kernel/qapplication.cpp:4563
#12  QApplication::notify(this = 0x7fffffffdd60, this at entry = 0x7fffffffdd60,
receiver = 0x42fa040, receiver at entry = 0x42fa040, e = 0x7fffffffb100, e at entry =
0x7fffffffb100) at kernel/qapplication.cpp:4353
#13  KApplication::notify(this = 0x7fffffffdd60, receiver = 0x42fa040, event =
0x7fffffffb100) at ../../kdeui/kernel/kapplication.cpp:311
#14  QCoreApplication::notifyInternal(this = 0x7fffffffdd60, receiver =
0x42fa040, receiver at entry = 0x42fa040, event = 0x7fffffffb100, event at entry =
0x7fffffffb100) at kernel/qcoreapplication.cpp:953
#15  sendSpontaneousEvent(event = 0x7fffffffb100, receiver = 0x42fa040) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#16  QWidgetPrivate::drawWidget(this = 0x582de10, this at entry = 0x582de10, pdev
= 0x1015120, rgn = , offset = , flags = 4, sharedPainter = 0x0,
sharedPainter at entry = 0x0, backingStore = 0xca5090, backingStore at entry =
0xca5090) at kernel/qwidget.cpp:5599
#17  QWidgetBackingStore::sync(this = 0xca5090) at
painting/qbackingstore.cpp:1365
#18  QWidgetPrivate::syncBackingStore(this = 0xca01a0, this at entry = 0xca01a0)
at kernel/qwidget.cpp:1894
#19  QWidget::event(this = 0xc9fd90, this at entry = 0xc9fd90, event = 0x43d75e0,
event at entry = 0x43d75e0) at kernel/qwidget.cpp:8680
#20  QMainWindow::event(this = 0xc9fd90, this at entry = 0xc9fd90, event =
0x43d75e0, event at entry = 0x43d75e0) at widgets/qmainwindow.cpp:1478
#21  KMainWindow::event(this = 0xc9fd90, this at entry = 0xc9fd90, ev = 0x43d75e0,
ev at entry = 0x43d75e0) at ../../kdeui/widgets/kmainwindow.cpp:1084
#22  KXmlGuiWindow::event(this = 0xc9fd90, ev = 0x43d75e0) at
../../kdeui/xmlgui/kxmlguiwindow.cpp:126
#23  QApplicationPrivate::notify_helper(this = 0x9ddae0, this at entry = 0x9ddae0,
receiver = 0xc9fd90, receiver at entry = 0xc9fd90, e = 0x43d75e0, e at entry =
0x43d75e0) at kernel/qapplication.cpp:4567
#24  QApplication::notify(this = 0x7fffffffdd60, this at entry = 0x7fffffffdd60,
receiver = 0xc9fd90, receiver at entry = 0xc9fd90, e = 0x43d75e0, e at entry =
0x43d75e0) at kernel/qapplication.cpp:4353
#25  KApplication::notify(this = 0x7fffffffdd60, receiver = 0xc9fd90, event =
0x43d75e0) at ../../kdeui/kernel/kapplication.cpp:311
/**
 * Return the number of displayed members of the given ObjectType.
 * Takes into consideration m_showPublicOnly but not other settings.
 */
int ClassifierWidget::displayedMembers(UMLObject::ObjectType ot) const
{
    int count = 0;
    UMLClassifier *classifier = this->classifier();
    if (!classifier)
        return count;
    UMLClassifierListItemList list = classifier->getFilteredList(ot);
    foreach (UMLClassifierListItem *m, list) {
      if (!(visualProperty(ShowPublicOnly) && m->visibility() !=
Uml::Visibility::Public))
            count++;
    }
    return count;
}



Reproducible: Always

Steps to Reproduce:
Get the above model to disk.

1. Open umbrello
2. Open the model
3. WAIT - let the model open each diagram.

Actual Results:  
SEGV

Expected Results:  
All diagrams opened and the program waits for input.

To be attached.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the umbrello-devel mailing list