-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Description of the issue
I have found some false positive results of Finding spurious @param tags. For the below query:
import java
from Callable c, ParamTag pt
where c.getDoc().getJavadoc() = pt.getParent() and
not c.getAParameter().hasName(pt.getParamName())
select pt, "Spurious @param tag."
The query results of apache/maven are false positive.
Obviously, the param is alreay stated in the corresponding param tags. The reson is the comma after param. For example, there is a , after groupId in @param groupId, never {@code null}. Hence, the result of pt.getParamName is groupId, instead of groupId which causes the false positive results.
It's common to add comma after param in the param tag. I have searched for param tag with comma for 7 projects. There are 17 results intotal.
import java
from ParamTag pt
where pt.getParamName().matches("%,")
select pt
Hence, it's suggested to replace the special characters in the param tag which should not be valid part of param.
I have created two pr(#4871, #4872) for this problem. One is to modify the result of pt.getParamName(). The other one is to modify the method of getParamName() directly. One of each pr be mereged would be appreciated.
As there may more characters for the param tag which not only limit to ,. It's suggested to utilize regexpReplaceAll to replace more kinds of characters.

