You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@click.apache.org by tomasz bandura <to...@gmail.com> on 2011/11/15 08:58:31 UTC

OGNL bug and the new [2.3.1] click release

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

Re: OGNL bug and the new [2.3.1] click release

Posted by Arkadiusz Milewski <ar...@gmail.com>.
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 
> <malcolm.edgar@gmail.com <ma...@gmail.com>> 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
>     <tomasz.bandura@gmail.com <ma...@gmail.com>> 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
>     >
>
>


Re: OGNL bug and the new [2.3.1] click release

Posted by tomasz bandura <to...@gmail.com>.
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 <
malcolm.edgar@gmail.com> 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
> <to...@gmail.com> 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
> >
>

Re: OGNL bug and the new [2.3.1] click release

Posted by Malcolm Edgar <ma...@gmail.com>.
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
<to...@gmail.com> 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
>