Is X an EntityProxy or a ValueProxy? If it's a ValueProxy, then this is the 
expected behavior; you'll have to either:

   - allow 'null' in your setter (you could treat it as a Boolean.FALSE if 
   you like)
   - set the property value to Boolean.FALSE on the client-side
   - change your property type from 'Boolean' to 'boolean': there's little 
   to no reason to use 'Boolean' if you disallow 'null', just use 'boolean' 
   instead.


On Friday, June 1, 2012 10:39:01 AM UTC+2, Tiago wrote:
>
> Hello all,
>
> I have a bean of type A which contains a property of type X which is a 
> JaxB bean (annotated with @XmlRootElement).
> I'm editing this being with the help of an Editor<A>.
>
> One of the properties of X is a Boolean which is initialized as 
> Boolean.FALSE on construction. This property is is annotated with 
> @XmlElement(required=true).
> I do not care about this property in my Editor - it is supposed to be used 
> only by the back-end. So I don't define any sub-editor to handle it. I just 
> ignore it.
>
> I use the Editor to create a new instance of A. Both A and X are created 
> via RequestContext.create().
>
> When I submit my modifications to the server, I have the exception copied 
> below. I've put a breakpoint on ReflectiveServiceLayer.setProperty, on the 
> line which calls setter.invoke, and verified that the exception is thrown 
> precisely when the framework tries to attribute 'null' as value to the 
> Boolean property which I mentioned above. That property may not be null.
>
> Is this a bug in the framework, or am I doing something wrong? Am I 
> supposed to create sub-editors for every property of the edited entity?
>
> Here is the exception:
>
> Jun 1, 2012 10:21:20 AM 
> com.google.web.bindery.requestfactory.server.RequestFactoryServlet doPost
> SEVERE: Unexpected error
> java.lang.IllegalArgumentException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>  at java.lang.reflect.Method.invoke(Method.java:597)
> at 
> com.google.web.bindery.requestfactory.server.ReflectiveServiceLayer.setProperty(ReflectiveServiceLayer.java:234)
>  at 
> com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.setProperty(ServiceLayerDecorator.java:193)
>  at 
> com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.setProperty(ServiceLayerDecorator.java:193)
>  at 
> com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.setProperty(ServiceLayerDecorator.java:193)
>  at 
> com.google.web.bindery.requestfactory.server.SimpleRequestProcessor$1.visitValueProperty(SimpleRequestProcessor.java:541)
>  at 
> com.google.web.bindery.autobean.vm.impl.ProxyAutoBean.traverseProperties(ProxyAutoBean.java:289)
>  at 
> com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.traverse(AbstractAutoBean.java:166)
>  at 
> com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.accept(AbstractAutoBean.java:101)
>  at 
> com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.processOperationMessages(SimpleRequestProcessor.java:516)
>  at 
> com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:210)
>  at 
> com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:127)
>  at 
> com.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
>  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
>  at 
> fr.extelia.smdt.www.server.HttpHeadersFilter.doFilter(HttpHeadersFilter.java:64)
>  at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
>  at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
>  at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
>  at 
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
>  at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>  at 
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>  at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>  at 
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
>  at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>  at 
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>  at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>  at 
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
>  at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>  at 
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
>  at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>  at 
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>  at 
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>  at 
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
>  at 
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>  at 
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
>  at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
>  at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at 
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>  at 
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
>  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>  at 
> org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>  at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>  at 
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
>  at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>  at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
> at 
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
>  at 
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
> [ERROR] 500 - POST /gwtRequest (127.0.0.1) 49595 bytes
>    Request headers
>       Host: 127.0.0.1:8888
>       Connection: keep-alive
>       User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 
> (KHTML, like Gecko) Ubuntu/11.10 Chromium/18.0.1025.168 
> Chrome/18.0.1025.168 Safari/535.19
>       Accept: */*
>       Accept-Encoding: gzip,deflate,sdch
>       Accept-Language: 
> en-US,en;q=0.8,fr-FR;q=0.6,fr;q=0.4,es-419;q=0.2,es;q=0.2,pt-BR;q=0.2,pt;q=0.2
>       Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
>       Cookie: JSESSIONID=bq6wfphki10f
>       Content-Length: 681
>       Origin: http://127.0.0.1:8888
>       Content-Type: application/json; charset=UTF-8
>       Referer: http://127.0.0.1:8888/index.jsp?gwt.codesvr=127.0.0.1:9997
>       pageurl: 
> http://127.0.0.1:8888/index.jsp?gwt.codesvr=127.0.0.1:9997#userEdit:
>       X-GWT-Permutation: HostedMode
>    Response headers
>       Content-Type: text/html; charset=utf-8
>
>
> Thank you for any help.
>
> Best regards,
> -- 
> Tiago Rinck Caveden
>
>  

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/dixg0Ln6wxMJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to