Hello
Tomasz i think that your idea on creating dynamic form based on
annotations is great. Maybe you could share some of your code, so more
people could use it and help you
with extending this solution. What do you think about it?
Best regards
Arek
W dniu 2011-11-15 12:08, tomasz bandura pisze:
Hello,
Maybe one of the issue is as presented below ( unfortunately I cannot
check it with MVEL sources but it looks like the reason is the null
value of one of my bean field)
regards
Tomasz
After upgrading 2.3.0 to snapshot( 2.3.1) the error occures on a page
which list the data from the db.
[Click] [error] handleException: java.lang.RuntimeException: [Error:
unable to access field]
[Near : {... Unknown ....}]
^
[Line: 1, Column: 0]
at org.apache.click.ClickServlet.initPage(ClickServlet.java:1303)
at org.apache.click.ClickServlet.createPage(ClickServlet.java:1089)
at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:348)
at org.apache.click.ClickServlet.doGet(ClickServlet.java:257)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at
com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at
com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: [Error: unable to access field]
[Near : {... Unknown ....}]
^
[Line: 1, Column: 0]
at
org.mvel2.optimizers.impl.refl.nodes.DynamicFieldAccessor.setValue(DynamicFieldAccessor.java:67)
at
org.mvel2.optimizers.impl.refl.nodes.VariableAccessor.setValue(VariableAccessor.java:47)
at
org.mvel2.optimizers.dynamic.DynamicSetAccessor.setValue(DynamicSetAccessor.java:62)
at
org.mvel2.compiler.CompiledAccExpression.setValue(CompiledAccExpression.java:47)
at
org.mvel2.ast.DeepAssignmentNode.getReducedValueAccelerated(DeepAssignmentNode.java:80)
at
org.mvel2.compiler.ExecutableAccessor.getValue(ExecutableAccessor.java:42)
at org.mvel2.MVEL.executeExpression(MVEL.java:1057)
at
org.apache.click.util.PropertyUtils.setValue(PropertyUtils.java:148)
at
org.apache.click.ClickServlet.processPageRequestParams(ClickServlet.java:1341)
at org.apache.click.ClickServlet.initPage(ClickServlet.java:1292)
... 34 more
Caused by: java.lang.NullPointerException
at org.mvel2.DataConversion.convert(DataConversion.java:116)
at
org.mvel2.optimizers.impl.refl.nodes.DynamicFieldAccessor.setValue(DynamicFieldAccessor.java:62)
... 43 more
[Click] [info ] renderTemplate:
/click/error.htm,/WEB-INF/common/template2.htm - 32 ms
W dniu 15 listopada 2011 11:57 użytkownik Malcolm Edgar
<[email protected] <mailto:[email protected]>> napisał:
Hi,
Click 2.3.1 is not release, hopefully by the end of the year it will
be available. MVEL replacement of OGNL still has a number of issues
which need to be resolved.
regards Malcolm Edgar
On Tue, Nov 15, 2011 at 6:58 PM, tomasz bandura
<[email protected] <mailto:[email protected]>> wrote:
> Hello,
>
> Currently I am working on a dynamic form component ( which
extends Form
> class).
> The idea is to build Form control on the basis of beans's fields
( that have
> getter/setter methods) declared as a model.
> So I added my own annotation and the dynamic form works fine,
>
> The problem is when i try to copy form values to the bean object
- it raises
> strange exception, because object has required methods:
>
> [Click] [debug] Error incurred invoking CarOption.id with null
error:
> ognl.MethodFailedException: Method "setId" failed for object
> pl.mypackage.model.CarOption@523df
[java.lang.IllegalAccessException: Method
> [public void pl.mypackage.model.CarOption.setId(java.lang.Long)]
cannot be
> accessed.]
>
> Then I tried to get the sources from repository... and the bug
disappeared (
> due to the exchange of ognl to mvel ?? )
> and the version of click was changed.
>
> My problem was solved itself, so what is my question? :)
>
> Is it official 2.3.1 release or not yet?
>
>
> Best regards,
> Tomasz
>