java.lang.IllegalStateException: JSR-303 validated property 'b.value' does not have a corresponding accessor for Spring data binding - check your DataBinder's configuration (bean property versus direct field access)

Spring JIRA | Vladimir Kralik | 4 years ago
tip
Your exception is missing from the Samebug knowledge base.
Here are the best solutions we found on the Internet.
Click on the to mark the helpful solution and get rewards for you help.
  1. 0

    When I use org.springframework.validation.Validator, the IllegalStateException is thrown. The javax.validation.Validator works correctly. Look at attached JUnit-test ( also as an maven project in attachement ). {code:title=A.java} package com.asseco.ce.valid; import javax.validation.Valid; import javax.validation.constraints.NotNull; public class A { @NotNull @Valid private B b; public B getB() { return b; } public void setB(B b) { this.b = b; } } {code} {code:title=B.java} package com.asseco.ce.valid; import org.hibernate.validator.constraints.NotBlank; public class B { @NotBlank private String value; public String getValue() { return value; } public void setValue(String value) { this.value = value; } } {code} {code:title=ValidationIntegrationTest.xml} <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/> </beans> {code} {code:title=ValidationIntegrationTest.xml} package com.asseco.ce.valid; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.validation.DirectFieldBindingResult; import org.springframework.validation.Errors; import org.springframework.validation.Validator; import com.asseco.ce.valid.A; import com.asseco.ce.valid.B; import static org.junit.Assert.*; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "ValidationIntegrationTest.xml" } ) public class ValidationIntegrationTest { @Autowired private Validator springValidator; @Autowired private javax.validation.Validator jsr303Validator; private A a; @Before public void before() { a = new A(); a.setB(new B()); } @Test public void jsr303() { assertEquals(1, jsr303Validator.validate(a).size()); } @Test public void spring() { Errors errors = new DirectFieldBindingResult(a, "A"); springValidator.validate(a, errors); assertEquals(1, errors.getAllErrors().size()); } } {code} {code:title=Exception} java.lang.IllegalStateException: JSR-303 validated property 'b.value' does not have a corresponding accessor for Spring data binding - check your DataBinder's configuration (bean property versus direct field access) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.processConstraintViolations(SpringValidatorAdapter.java:152) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:89) at com.asseco.ce.valid.ValidationIntegrationTest.spring(ValidationIntegrationTest.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: org.springframework.beans.NotReadablePropertyException: Invalid property 'b.value' of bean class [com.asseco.ce.valid.A]: Field 'b.value' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:106) at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99) at org.springframework.validation.AbstractBindingResult.getRawFieldValue(AbstractBindingResult.java:275) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.processConstraintViolations(SpringValidatorAdapter.java:137) ... 31 more {code}

    Spring JIRA | 4 years ago | Vladimir Kralik
    java.lang.IllegalStateException: JSR-303 validated property 'b.value' does not have a corresponding accessor for Spring data binding - check your DataBinder's configuration (bean property versus direct field access)
  2. 0

    When I use org.springframework.validation.Validator, the IllegalStateException is thrown. The javax.validation.Validator works correctly. Look at attached JUnit-test ( also as an maven project in attachement ). {code:title=A.java} package com.asseco.ce.valid; import javax.validation.Valid; import javax.validation.constraints.NotNull; public class A { @NotNull @Valid private B b; public B getB() { return b; } public void setB(B b) { this.b = b; } } {code} {code:title=B.java} package com.asseco.ce.valid; import org.hibernate.validator.constraints.NotBlank; public class B { @NotBlank private String value; public String getValue() { return value; } public void setValue(String value) { this.value = value; } } {code} {code:title=ValidationIntegrationTest.xml} <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/> </beans> {code} {code:title=ValidationIntegrationTest.xml} package com.asseco.ce.valid; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.validation.DirectFieldBindingResult; import org.springframework.validation.Errors; import org.springframework.validation.Validator; import com.asseco.ce.valid.A; import com.asseco.ce.valid.B; import static org.junit.Assert.*; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "ValidationIntegrationTest.xml" } ) public class ValidationIntegrationTest { @Autowired private Validator springValidator; @Autowired private javax.validation.Validator jsr303Validator; private A a; @Before public void before() { a = new A(); a.setB(new B()); } @Test public void jsr303() { assertEquals(1, jsr303Validator.validate(a).size()); } @Test public void spring() { Errors errors = new DirectFieldBindingResult(a, "A"); springValidator.validate(a, errors); assertEquals(1, errors.getAllErrors().size()); } } {code} {code:title=Exception} java.lang.IllegalStateException: JSR-303 validated property 'b.value' does not have a corresponding accessor for Spring data binding - check your DataBinder's configuration (bean property versus direct field access) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.processConstraintViolations(SpringValidatorAdapter.java:152) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:89) at com.asseco.ce.valid.ValidationIntegrationTest.spring(ValidationIntegrationTest.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: org.springframework.beans.NotReadablePropertyException: Invalid property 'b.value' of bean class [com.asseco.ce.valid.A]: Field 'b.value' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:106) at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99) at org.springframework.validation.AbstractBindingResult.getRawFieldValue(AbstractBindingResult.java:275) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.processConstraintViolations(SpringValidatorAdapter.java:137) ... 31 more {code}

    Spring JIRA | 4 years ago | Vladimir Kralik
    java.lang.IllegalStateException: JSR-303 validated property 'b.value' does not have a corresponding accessor for Spring data binding - check your DataBinder's configuration (bean property versus direct field access)
  3. 0

    GCIBPP uses a DirectFieldAccessor indiscriminately to get the current list of interceptors on a channel. NullChannel has no such field. Since NullChannel is omnipresent, one always gets a stack trace when using DEBUG logging with global channel interceptor(s). {code} 2011-11-09 10:17:22,721 [main] DEBUG: org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor - interceptors not supported by channel 'org.springframework.integration.channel.NullChannel@63d87b85' org.springframework.beans.NotReadablePropertyException: Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:108) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.getExistingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:140) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.addMatchingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:95) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.postProcessAfterInitialization(GlobalChannelInterceptorBeanPostProcessor.java:86) {code} Maybe leave the debug log there but don't include the exception, unless it is not of type NRPE.

    Spring JIRA | 5 years ago | Gary Russell
    org.springframework.beans.NotReadablePropertyException: Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Currently initDirectFieldAccess does not work with array, List and Map. Given following command object class {code} package be.vdab.web; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; public class CommandObject { private String[] array = new String[1]; private List<String> list = Arrays.asList(""); private Map<Integer, String> map = new HashMap<>(); public String[] getArray() { return array; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public void setArray(String[] array) { this.array = array; } public Map<Integer, String> getMap() { return map; } public void setMap(Map<Integer, String> map) { this.map = map; } } {code} , the following controller: {code} package be.vdab.web; import java.util.Arrays; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/") public class IndexController { @RequestMapping(method = RequestMethod.GET) public ModelAndView get() { return new ModelAndView("/WEB-INF/JSP/index.jsp", "commandObject", new CommandObject()); } @RequestMapping(method = RequestMethod.POST) public String post(CommandObject commandObject) { System.out.println(Arrays.toString(commandObject.getArray())); System.out.println(commandObject.getList()); System.out.println(commandObject.getMap()); return "redirect:"; } @InitBinder("commandObject") void initBinder(WebDataBinder binder) { binder.initDirectFieldAccess(); } } {code} and the following JSP {code} <%@page contentType='text/html' pageEncoding='UTF-8' session='false'%> <%@taglib prefix='form' uri='http://www.springframework.org/tags/form'%> <!doctype html> <html lang='nl'> <head> <title>initDirectFieldAccess</title> </head> <body> <form:form action='${url}' commandName='commandObject'> <form:input path='array[0]'/> <form:input path='list[0]'/> <form:input path='map[1]'/> <input type='submit'> </form:form> </body> </html> {code} you get following stacktrace: {code} SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/initdirectfieldaccess] threw exception [org.springframework.beans.NotReadablePropertyException: Invalid property 'array[0]' of bean class [be.vdab.web.CommandObject]: Field 'array[0]' does not exist] with root cause org.springframework.beans.NotReadablePropertyException: Invalid property 'array[0]' of bean class [be.vdab.web.CommandObject]: Field 'array[0]' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:116) at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99) at org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:229) at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:120) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116) at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422) at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142) at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84) at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) at org.apache.jsp.WEB_002dINF.JSP.index_jsp._jspx_meth_form_005finput_005f0(index_jsp.java:194) at org.apache.jsp.WEB_002dINF.JSP.index_jsp._jspx_meth_form_005fform_005f0(index_jsp.java:151) at org.apache.jsp.WEB_002dINF.JSP.index_jsp._jspService(index_jsp.java:108) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1228) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1011) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) {code} When you put the line binder.initDirectFieldAccess(); in comment in the class IndexController, the program works.

    Spring JIRA | 2 years ago | Hans Desmet
    org.springframework.beans.NotReadablePropertyException: Invalid property 'array[0]' of bean class [be.vdab.web.CommandObject]: Field 'array[0]' does not exist
  6. 0

    GCIBPP uses a DirectFieldAccessor indiscriminately to get the current list of interceptors on a channel. NullChannel has no such field. Since NullChannel is omnipresent, one always gets a stack trace when using DEBUG logging with global channel interceptor(s). {code} 2011-11-09 10:17:22,721 [main] DEBUG: org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor - interceptors not supported by channel 'org.springframework.integration.channel.NullChannel@63d87b85' org.springframework.beans.NotReadablePropertyException: Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:108) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.getExistingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:140) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.addMatchingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:95) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.postProcessAfterInitialization(GlobalChannelInterceptorBeanPostProcessor.java:86) {code} Maybe leave the debug log there but don't include the exception, unless it is not of type NRPE.

    Spring JIRA | 5 years ago | Gary Russell
    org.springframework.beans.NotReadablePropertyException: Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. org.springframework.beans.NotReadablePropertyException

      Invalid property 'b.value' of bean class [com.asseco.ce.valid.A]: Field 'b.value' does not exist

      at org.springframework.beans.DirectFieldAccessor.getPropertyValue()
    2. Spring Beans
      DirectFieldAccessor.getPropertyValue
      1. org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:106)
      1 frame
    3. Spring Context
      SpringValidatorAdapter.validate
      1. org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99)
      2. org.springframework.validation.AbstractBindingResult.getRawFieldValue(AbstractBindingResult.java:275)
      3. org.springframework.validation.beanvalidation.SpringValidatorAdapter.processConstraintViolations(SpringValidatorAdapter.java:137)
      4. org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:89)
      4 frames
    4. com.asseco.ce
      ValidationIntegrationTest.spring
      1. com.asseco.ce.valid.ValidationIntegrationTest.spring(ValidationIntegrationTest.java:42)
      1 frame
    5. Java RT
      Method.invoke
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2. sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      3. sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      4. java.lang.reflect.Method.invoke(Unknown Source)
      4 frames
    6. JUnit
      RunBefores.evaluate
      1. org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
      2. org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
      3. org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
      4. org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
      5. org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
      5 frames
    7. Spring TestContext
      SpringJUnit4ClassRunner.runChild
      1. org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
      2. org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
      3. org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
      4. org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
      5. org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88)
      5 frames
    8. JUnit
      ParentRunner$2.evaluate
      1. org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
      2. org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
      3. org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
      4. org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
      5. org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
      5 frames
    9. Spring TestContext
      RunAfterTestClassCallbacks.evaluate
      1. org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
      2. org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
      2 frames
    10. JUnit
      ParentRunner.run
      1. org.junit.runners.ParentRunner.run(ParentRunner.java:300)
      1 frame
    11. Spring TestContext
      SpringJUnit4ClassRunner.run
      1. org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
      1 frame
    12. JUnit4 Runner
      JUnit4TestReference.run
      1. org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
      1 frame
    13. JUnit3 Runner
      RemoteTestRunner.main
      1. org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      2. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      3. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      4. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      5. org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
      5 frames