https://bugs.kde.org/show_bug.cgi?id=425156
Bug ID: 425156 Summary: Template typenames in attribute and operation parameter types don't work Product: umbrello Version: Git Platform: Other OS: Linux Status: REPORTED Severity: major Priority: NOR Component: general Assignee: umbrello-de...@kde.org Reporter: c...@roberthairgrove.com Target Milestone: --- SUMMARY Parameters of an operation in a class with templates cannot define template typenames as their types without Umbrello creating spurious additional classes at global scope. STEPS TO REPRODUCE 1. Start a new project. 2. Under the folder "Logical View", create three nested folders named PKG1, PKG2, and PKG3. Under PKG3, create a new class "ClassBase" (for example). 3. Add a template to ClassBase "CharType" (for example). 4. Add an operation to ClassBase with a parameter called "param". Set the parameter type to "CharType". OBSERVED RESULT In the operation properties dialog's parameter list, the following is displayed: "param :" (empty type). When the same parameter "param" is selected and "Properties" is clicked, the type has changed to "PKG1::PKG2::PKG3::ClassBase::CharType". If "OK" is clicked, there is a newly-created class called "PKG1::PKG2::PKG3::ClassBase::CharType" at global scope in the tree view. EXPECTED RESULT The parameter type should simply show the template typename; no extra class or datatype should be created on the fly. SOFTWARE/OS VERSIONS Linux Ubuntu 18.04.4 Qt Version: 5.x ADDITIONAL INFORMATION The reason for this is that in the function UMLAttribute::toString, the call to "UMLClassifier *type = UMLClassifierListItem::getType();" returns NULL instead of a pointer to the template. However, UMLTemplate is not a descendent of UMLClassifier, but UMLClassifierListItem, so the dynamic_cast in the body of the getType() function fails. FIX: 1 - attribute.cpp needs to #include "template.h". 2 - If UMLClassifier *type == NULL after the above call, adding a check for m_pSecondary != NULL && m_pSecondary->asUMLTemplate() != NULL, then calling name() will fetch the correct type. Additional testing should be done to ensure that the XMI document is correctly updated. RELATED TO: Bug 425009 -- You are receiving this mail because: You are watching all bug changes.