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
    >



Reply via email to