Buggy code:
public class HandlerMethodInvoker { private static final Log logger = LogFactory . getLog ( HandlerMethodInvoker . class ) ; private final HandlerMethodResolver methodResolver ; private final WebBindingInitializer bindingInitializer ; private final SessionAttributeStore sessionAttributeStore ; private final ParameterNameDiscoverer parameterNameDiscoverer ; private final WebArgumentResolver [ ] customArgumentResolvers ; private final HttpMessageConverter [ ] messageConverters ; private final SimpleSessionStatus sessionStatus = new SimpleSessionStatus ( ) ; public HandlerMethodInvoker ( HandlerMethodResolver methodResolver ) { } public HandlerMethodInvoker ( HandlerMethodResolver methodResolver , WebBindingInitializer bindingInitializer ) { } public HandlerMethodInvoker ( HandlerMethodResolver methodResolver , WebBindingInitializer bindingInitializer , SessionAttributeStore sessionAttributeStore , ParameterNameDiscoverer parameterNameDiscoverer , WebArgumentResolver [ ] customArgumentResolvers , HttpMessageConverter [ ] messageConverters ) { } public final Object invokeHandlerMethod ( Method handlerMethod , Object handler , NativeWebRequest webRequest , ExtendedModelMap implicitModel ) throws Exception { } @ SuppressWarnings ( "unchecked" ) private Object [ ] resolveHandlerArguments ( Method handlerMethod , Object handler , NativeWebRequest webRequest , ExtendedModelMap implicitModel ) throws Exception { } protected void initBinder ( Object handler , String attrName , WebDataBinder binder , NativeWebRequest webRequest ) throws Exception { } private Object [ ] resolveInitBinderArguments ( Object handler , Method initBinderMethod , WebDataBinder binder , NativeWebRequest webRequest ) throws Exception { Class [ ] initBinderParams = initBinderMethod . getParameterTypes ( ) ; Object [ ] initBinderArgs = new Object [ initBinderParams . length ] ; for ( int i = 0 ; i < ( initBinderArgs . length ) ; i ++ ) { MethodParameter methodParam = new MethodParameter ( initBinderMethod , i ) ; methodParam . initParameterNameDiscovery ( this . parameterNameDiscoverer ) ; GenericTypeResolver . resolveParameterType ( methodParam , handler . getClass ( ) ) ; String paramName = null ; boolean paramRequired = false ; String paramDefaultValue = null ; String pathVarName = null ; Annotation [ ] paramAnns = methodParam . getParameterAnnotations ( ) ; for ( Annotation paramAnn : paramAnns ) { if ( RequestParam . class . isInstance ( paramAnn ) ) { RequestParam requestParam = ( ( RequestParam ) ( paramAnn ) ) ; paramName = requestParam . value ( ) ; paramRequired = requestParam . required ( ) ; <START_BUG> paramDefaultValue = requestParam . defaultValue ( ) ; <END_BUG> break ; } else if ( ModelAttribute . class . isInstance ( paramAnn ) ) { throw new IllegalStateException ( ( "@ModelAttribute<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>supported<seq2seq4repair_space>on<seq2seq4repair_space>@InitBinder<seq2seq4repair_space>methods:<seq2seq4repair_space>" + initBinderMethod ) ) ; } else if ( PathVariable . class . isInstance ( paramAnn ) ) { PathVariable pathVar = ( ( PathVariable ) ( paramAnn ) ) ; pathVarName = pathVar . value ( ) ; } } if ( ( paramName == null ) && ( pathVarName == null ) ) { Object argValue = resolveCommonArgument ( methodParam , webRequest ) ; if ( argValue != ( WebArgumentResolver . UNRESOLVED ) ) { initBinderArgs [ i ] = argValue ; } else { Class paramType = initBinderParams [ i ] ; if ( paramType . isInstance ( binder ) ) { initBinderArgs [ i ] = binder ; } else if ( BeanUtils . isSimpleProperty ( paramType ) ) { paramName = "" ; } else { throw new IllegalStateException ( ( ( ( "Unsupported<seq2seq4repair_space>argument<seq2seq4repair_space>[" + ( paramType . getName ( ) ) ) + "]<seq2seq4repair_space>for<seq2seq4repair_space>@InitBinder<seq2seq4repair_space>method:<seq2seq4repair_space>" ) + initBinderMethod ) ) ; } } } if ( paramName != null ) { initBinderArgs [ i ] = resolveRequestParam ( paramName , paramRequired , paramDefaultValue , methodParam , webRequest , null ) ; } else if ( pathVarName != null ) { initBinderArgs [ i ] = resolvePathVariable ( pathVarName , methodParam , webRequest , null ) ; } } return initBinderArgs ; } @ SuppressWarnings ( "unchecked" ) private Object resolveRequestParam ( String paramName , boolean required , String defaultValue , MethodParameter methodParam , NativeWebRequest webRequest , Object handlerForInitBinderCall ) throws Exception { } private Map resolveRequestParamMap ( Class < ? extends Map > mapType , NativeWebRequest webRequest ) { } @ SuppressWarnings ( "unchecked" ) private Object resolveRequestHeader ( String headerName , boolean required , String defaultValue , MethodParameter methodParam , NativeWebRequest webRequest , Object handlerForInitBinderCall ) throws Exception { } private Map resolveRequestHeaderMap ( Class < ? extends Map > mapType , NativeWebRequest webRequest ) { } @ SuppressWarnings ( "unchecked" ) protected Object resolveRequestBody ( MethodParameter methodParam , NativeWebRequest webRequest , Object handler ) throws Exception { } private Object resolveCookieValue ( String cookieName , boolean required , String defaultValue , MethodParameter methodParam , NativeWebRequest webRequest , Object handlerForInitBinderCall ) throws Exception { } protected Object resolveCookieValue ( String cookieName , Class paramType , NativeWebRequest webRequest ) throws Exception { } private Object resolvePathVariable ( String pathVarName , MethodParameter methodParam , NativeWebRequest webRequest , Object handlerForInitBinderCall ) throws Exception { } protected String resolvePathVariable ( String pathVarName , Class paramType , NativeWebRequest webRequest ) throws Exception { } private String getRequiredParameterName ( MethodParameter methodParam ) { } private Object checkValue ( String name , Object value , Class paramType ) { } private WebDataBinder resolveModelAttribute ( String attrName , MethodParameter methodParam , ExtendedModelMap implicitModel , NativeWebRequest webRequest , Object handler ) throws Exception { } @ SuppressWarnings ( "unchecked" ) public final void updateModelAttributes ( Object handler , Map < String , Object > mavModel , ExtendedModelMap implicitModel , NativeWebRequest webRequest ) throws Exception { } protected boolean isBindingCandidate ( Object value ) { } private Object doInvokeMethod ( Method method , Object target , Object [ ] args ) throws Exception { } protected void raiseMissingParameterException ( String paramName , Class paramType ) throws Exception { } protected void raiseMissingHeaderException ( String headerName , Class paramType ) throws Exception { } protected void raiseMissingCookieException ( String cookieName , Class paramType ) throws Exception { } protected void raiseSessionRequiredException ( String message ) throws Exception { } protected WebDataBinder createBinder ( NativeWebRequest webRequest , Object target , String objectName ) throws Exception { } private void doBind ( WebDataBinder binder , NativeWebRequest webRequest , boolean validate , boolean failOnErrors ) throws Exception { }

Fix:
paramDefaultValue = parseDefaultValueAttribute ( requestParam . defaultValue ( ) ) ;