From 15785ddba0ab8bebd0d017756cf09c652de87702 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Mon, 14 Aug 2017 14:32:20 +0800 Subject: [PATCH] fix occur exception when request mapping of method without values --- .../spring/mvc/ControllerServiceMethodInterceptor.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/ControllerServiceMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/ControllerServiceMethodInterceptor.java index 32b4cb42d..a735251c4 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/ControllerServiceMethodInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/ControllerServiceMethodInterceptor.java @@ -29,8 +29,13 @@ public class ControllerServiceMethodInterceptor implements InstanceMethodsAround PathMappingCache pathMappingCache = (PathMappingCache)objInst.getSkyWalkingDynamicField(); String requestURL = pathMappingCache.findPathMapping(method); if (requestURL == null) { - requestURL = method.getAnnotation(RequestMapping.class).value()[0]; - pathMappingCache.addPathMapping(method, requestURL.toString()); + RequestMapping methodRequestMapping = method.getAnnotation(RequestMapping.class); + if (methodRequestMapping.value().length > 0) { + requestURL = methodRequestMapping.value()[0]; + } else { + requestURL = ""; + } + pathMappingCache.addPathMapping(method, requestURL); } HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();