United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-4933335 Not all inherited methods from multiple extended interfaces are documented
JDK-4933335 : Not all inherited methods from multiple extended interfaces are documented

Details
Type:
Bug
Submit Date:
2003-10-06
Status:
Resolved
Updated Date:
2003-11-11
Project Name:
JDK
Resolved Date:
2003-11-11
Component:
docs
OS:
other
Sub-Component:
doclet
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
1.4.2
Fixed Versions:
5.0 (b28)

Related Reports

Sub Tasks

Description
I have an interface IInterfaceSpecification that extends many others. 
In some cases, the same method signature is present in several of the 
extended interfaces.

When I look at the Javadoc for the extending interface, I see references to 
each of the extended interfaces (in the lists of methods inherited from). 
However, methods that are in each of the extended interfaces sometimes show up 
in the Javadoc for the extending interface and sometimes they don't.

In some cases the methods show up about half the time. That is, the method 
signatures show up in the list of inherited methods for about half the 
interfaces they're actually in. For the rest of the interfaces, they don't show 
up in the inherited methods. However, if I follow the link to the inerface's 
Javadoc page, the method signature is there.

I can't find any pattern (method name alphabetical order, etc) to explain this.

Is there any way to force Javadoc to show references to all instances of an 
inherited method signature?

I'm using the standard doclet, 1.4.2.

I'll enclose two jpg samples of what I'm seeing.

All the methods are public.  

Here are my command line args.  I've had this problem right from the start,
before I added the two custom tags.

{params} -tag database.Attribute:a:"Database Attribute"
-tag database.Table:a:"Database Table" -use  -classpath {filesystems} {files}

More specifically, the IInterfaceSpecification methods marked with ">" are
inherited from IAccountProductSpecifcation, but the rest are not.

IInterfaceSpecification extends IAccountProductSpecification

IAccountProductSpecification

    public void setCreateUserid(String userid);
    public String getCreateUserid();
    public void setCreateDate(java.sql.Date createDate);
    public java.sql.Date getCreateDate();
 >  public String getDealerNum();
 >  public void setDealerNum(String dealerNum);  
 >  public void setState(String state);
 >  public String getState();
 >  public void setZip(String zip);
 >  public String getZip();
    public void setTa(String ta);
    public String getTa();
   

                                    

Comments
PUBLIC COMMENTS

Fixed.
###@###.### 2003-10-26
                                     
2003-10-26
EVALUATION

Can reproduce
###@###.### 2003-10-06

Fixed bug in method inheritence algorithm so that multiple extended interfaces are properly supported. [seligman, dkramer]

There are three problems here:

1.  Suppose I1 extends I2, I3.  Also, suppose I2 extends I3.  The visible methods should be computed from the following tree:

I3
     I2
           I1

Unfortunately, this is what the doclet is doing :

                      I2  I3
                       \  /
                        I1

The change on line 205 fixed this problem.  If the doclet realizes that I2 extends I3, it will map I2 as a child of I3.

2.  When the list of extended/implemented interfaces are analyzed, the interfaces at the beginning of the list are given higher priority than the interfaces at the end of the list.  Therefore, if the first and last interface each have a method with identical signatures, only the method from the first
interface is inherited. All the interfaces should be given the same priority and the method should be inherited from both interfaces. [Fixed near line 224]

3.  Suppose I1 extends I2, I3.  I2 and I3 are not related to each other but both have a method x that has the exact same signature. I1 should inherit x from I2 AND I3, not just from the first interface in the list with that method.  [Fixed newr line 387]

###@###.### 2003-10-26
                                     
2003-10-26
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
tiger
tiger-beta

FIXED IN:
tiger-beta

INTEGRATED IN:
tiger-b28
tiger-beta


                                     
2004-06-14



Hardware and Software, Engineered to Work Together