Skip to content

Converters don't get picked up for MVC controllers in 3.0.7 [SPR-9157] #13795

@spring-projects-issues

Description

@spring-projects-issues

Ferenc Gratzer opened SPR-9157 and commented

The same converter class and xml config work with Spring 3.0.5 and 3.0.6, but not with 3.0.7. Only changing the Spring version breaks it.

public class EnvironmentConverter implements Converter<String, Environment> {
  public Environment convert(String source) {}
}

servlet.xml:

<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
 <property name="converters">
   <set>
     <bean class="....controller.util.StringToEntityConverterFactory" />
     <bean class="....web.util.EnvironmentConverter" />
   </set>
 </property>
</bean>

Log:

org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type '....environment.Environment'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [....environment.Environment]: no matching editors or conversion strategy found
	at org.springframework.beans.SimpleTypeConverter.convertIfNecessary(SimpleTypeConverter.java:58)
	at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:553)
	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestParam(HandlerMethodInvoker.java:507)
	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:340)
	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

Affects: 3.0.7

Metadata

Metadata

Assignees

Labels

in: webIssues in web modules (web, webmvc, webflux, websocket)status: declinedA suggestion or change that we don't feel we should currently apply

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions