GNOME Bugzilla – Bug 583958
Class diagrams and class hierarchy don't work for java generic classes
Last modified: 2014-08-21 17:15:33 UTC
Please describe the problem: When a java generic class (something similar to C++ templates) derives from another generic class, and they depend on a type that derives from a base type, the inheritance relationship is not reported on the class diagram, neither is it on the class hierarchy. Steps to reproduce: 1. The code being documented includes a class such as: public class BaseClass<MyType extends MyBaseType> { ... } 2. The code being documented also includes a class such as: public class DerivedClass<MyType extends MyBaseType> extends BaseClass<MyType> { ... } Actual results: Class DerivedClass is not shown as a subclass of BaseClass in the class diagrams, nor is it on the class hierarchy. Expected results: Class DerivedClass should be reported as derived from BaseClass. Does this happen every time? Yes, under the conditions described. Other information: I greatly prefer Doxygen to JavaDoc, but this bug does not allow me to use it. I will put my code in the public domain, in a relatively short time, and I will be glad to publicly recommend doxygen to other developers.
Created attachment 160795 [details] Java source code that triggers the issue of incorrect class diagrams for java generics. This is a one class file that shows how doxygen misses the generation of correct classes diagrams for inheritance trees when generics are used in the java solution. For a proper hierarchy generation, run javadoc and compare its results with the documentation generated by doxygen. Thank you.
This issue was confirmed by me in latest version 1.6.3. Running on ubuntu server 9.04.
*** Bug 631675 has been marked as a duplicate of this bug. ***
Confirmed. Should be fixed in the next GIT update.
This bug was previously marked ASSIGNED, which means it should be fixed in doxygen version 1.8.8. Please verify if this is indeed the case. Reopen the bug if you think it is not fixed and please include any additional information that you think can be relevant (preferrably in the form of a self-contained example).