Summary: | class importer inserts classes in the wrong package | ||
---|---|---|---|
Product: | [Applications] umbrello | Reporter: | Ralf Habacker <ralf.habacker> |
Component: | general | Assignee: | Umbrello Development Group <umbrello-devel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | cfeck, okellogg, ralf.habacker |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Microsoft Windows | ||
OS: | Microsoft Windows | ||
Latest Commit: | Version Fixed In: | 4.14.0 | |
Sentry Crash Report: |
Description
Ralf Habacker
2009-05-07 12:13:47 UTC
This crash report is at least 3 years old and there were no further comments or status updates since then. Therefore we believe that this crash is already fixed in recent KDE 4 versions or the backtrace is no longer applicable to the current KDE 4 sources. If the crash still happens with a recent KDE version (4.10.5 or 4.11), please add an updated backtrace or provide steps to reproduce. For more information, see http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports (To prevent automatic closing of this bug in the future, please set the bug status to ASSIGNED or CONFIRMED) At least with 4.11.4 no crash happens and 4.10 isn't maintained anymore, so this seems to be fixed. Has been misguided by commit 1: The original report did not report a crash, instead it reports wrongly assignments of classes to packages which is still present in git master. There seems to be a logic failure in import_utils:cpp:createUMLObject()
at line 206 there is
UMLObject * o = umldoc->findUMLObject(name, type, parentPkg);
with
name = "Base::XML"
parentPkg = 0
-> returned o has already the "Base" parent package
at line 299
parentPkg = "Logical View"; !!! wrong parentPkg
} else if (parentPkg && !bPutAtGlobalScope) {
UMLPackage *existingPkg = o->umlPackage();
= "Base"
if (existingPkg != umldoc->datatypeFolder()) {
if (existingPkg)
existingPkg->removeObject(o);
else
uError() << "createUMLObject(" << name << "): "
<< "o->getUMLPackage() was NULL";
o->setUMLPackage(parentPkg);
> assign to "logical view" which is incorrect
parentPkg->addObject(o);
-> there is already an object XML in Logical View
}
}
Works with git master |