darcydai opened a new pull request #6783:
URL: https://github.com/apache/skywalking/pull/6783


   fix a bug that spring-mvc set an error endpoint name if the controller class 
annotation implements an interface.
   
   ----------------------------
   recently, I find some error logs in the OAP server like this 
   
![image](https://user-images.githubusercontent.com/20854418/115213035-b8288780-a133-11eb-8447-0af4b02ec826.png)
   
   after decoding the endpoint id, I found the endpoint name is empty. after 
adding more logs in the trace segment receiver, I found the error from the 
spring-MVC plugin. 
   
    if the controller class annotation implements an interface, it can not get 
the RequestMapping. in the spring-cloud  tech stack, it is common sense, like 
RPC framework is feign
   ## example
   ``` java
   @RequestMapping(value = "/for")
   public interface A {
       @RequestMapping
       String bar();
   }
   ```
   
   ```java
   @RestController
   public class B implements A{
   
       @Override
       public String bar() {
           return "oops";
       }
   }
   ```  
     
     
   result in oap server :
   
![image](https://user-images.githubusercontent.com/20854418/115215839-7baa5b00-a136-11eb-9e14-67099e98d028.png)
   
   
   ### Fix <spring-mvc set an error endpoint name if the controller class 
annotation implements an interface>
   - [ ] Add a unit test to verify that the fix works.
   - [x] Explain briefly why the bug exists and how to fix it.
   
   - [ ] If this pull request closes/resolves/fixes an existing issue, replace 
the issue number. Closes #<issue number>.
   - [x] Update the [`CHANGES` 
log](https://github.com/apache/skywalking/blob/master/CHANGES.md).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to