Haishi Yao created SCB-2085:
-------------------------------

             Summary: NullPointerException triggered by @ApiParam on condition 
that aggregated params exist
                 Key: SCB-2085
                 URL: https://issues.apache.org/jira/browse/SCB-2085
             Project: Apache ServiceComb
          Issue Type: Bug
          Components: Java-Chassis
    Affects Versions: java-chassis-1.3.0
            Reporter: Haishi Yao
            Assignee: Haishi Yao


If the three conditions below are met:
1. If there are aggregated params(BeanParam for JAX-RS and query object for 
SpringMVC),
2. and annotation @ApiParam is added behind another param annotation(like 
QueryParam or RequestParam)
3. and the swagger parameter name is different from the producer parameter name
a NullPointException is triggered and the microservice instance boot up 
procedure aborts.

The root cause is that in the method
{code:java}
org.apache.servicecomb.swagger.invocation.arguments.ArgumentsMapperFactory#retrieveVisibleParamName(java.lang.reflect.Method,
 int)
{code}
all of the annotations on the producer param are traversed to retrieve the 
swagger param name, and the latter one will override the former one. If 
@ApiParam is the last annotation of a producer param, the retrieved swagger 
param name is null because the ArgumentsMapperFactory cannot retrieve the param 
name from @ApiParam. As a result, the swagger param cannot be mapped properly 
to the producer param.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to