You are right Alejandro, it's the bug you report for this problem. Then I have another problem I've written in another message and still another one having to do with polimorphism: apparently passing a concrete class implementing an interface A to a binding accepting A objects throws a ClassCastException. This also just happens (after some time?) on production server and there's an easy workaournd explicitly (and uselessly from java point of view) casting the object to A.
I'm going to open a bug for this one as it seems that nobody else reported it. Tnx for your help. On 10/23/07, Alejandro Scandroli <[EMAIL PROTECTED]> wrote: > Hi Martino > > We are seeing these stack traces too, but the applications doesn't hang. > http://jira.opensymphony.com/browse/OGNL-115 > The error happens when a getter method doesn't have the matching setter > method. > Does the page still work? or it brakes your app? > > In case you don't need a setter method an option to avoid the stack > traces is to explicitly call the getter, like this: > > <component id="mobile" type="Insert"> > <binding name="value" value="ognl:getMobile()"/> > </component> > > > Salutti. > Alejandro. > > On 10/23/07, Martino Piccinato <[EMAIL PROTECTED]> wrote: > > Hi, > > > > we are experiencing a very strange problem just on our production > > server, from time to time bindings/ognl starts giving strange > > exceptions it does not give on our dev workstations. The problem is > > also difficult to reproduce on production server so I think it might > > be some race condition problem. > > > > > > We are using tapetry 4.1.2 and latest stable OGNL. It might be worth > > mentioning that the production server is 64bit (and obviously much > > faster) than our poor workstations. > > > > as an example of these exception take this component: > > > > <component id="mobile" type="Insert"> > > <binding name="value">mobile</binding> > > </component> > > > > the component is used on a page called ViewPoSPage having a > > String getMobile() method. > > > > > > This is the exception that comes out from time to time: > > > > 2007-10-23 09:41:35,947 ERROR > > [org.apache.tapestry.services.impl.HiveMindExpressionCompiler] - Error > > generating OGNL getter for expression mobile with root $ViewPoSPag > > [EMAIL PROTECTED] and body: > > { return (($ViewPoSPage_149)$2).mobile();} > > org.apache.hivemind.ApplicationRuntimeException: Unable to add method > > java.lang.Object get(ognl.OgnlContext, java.lang.Object) to class > > $ASTProperty_115c9fd5cb4: [sour > > ce error] mobile() not found in $ViewPoSPage_149 > > at > > org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:278) > > at > > org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:172) > > at ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:498) > > at ognl.Ognl.compileExpression(Ognl.java:141) > > at > > org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:152) > > at > > org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:115) > > at > > $ExpressionCache_115c9fd5801.getCompiledExpression($ExpressionCache_115c9fd5801.java) > > at > > org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:134) > > at > > org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:125) > > at > > org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84) > > at $Insert_6.getValue($Insert_6.java) > > at > > org.apache.tapestry.components.Insert.renderComponent(Insert.java:48) > > at > > org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725) > > at > > org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180) > > > > .... > > > > > > at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) > > at > > org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) > > at > > org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) > > at > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) > > at java.lang.Thread.run(Thread.java:595) > > Caused by: javassist.CannotCompileException: [source error] mobile() > > not found in $ViewPoSPage_149 > > at javassist.CtBehavior.setBody(CtBehavior.java:347) > > at javassist.CtBehavior.setBody(CtBehavior.java:316) > > at > > org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:272) > > ... 91 more > > Caused by: compile error: mobile() not found in $ViewPoSPage_149 > > at > > javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:716) > > at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681) > > at > > javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156) > > at javassist.compiler.ast.CallExpr.accept(CallExpr.java:45) > > at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:235) > > at javassist.compiler.CodeGen.compileExpr(CodeGen.java:222) > > at javassist.compiler.CodeGen.atReturnStmnt2(CodeGen.java:591) > > at javassist.compiler.JvstCodeGen.atReturnStmnt(JvstCodeGen.java > > > > the only "strange" thing I can see on the page is a > > > > String mobile(Person person) > > > > so I thought it might have been > > http://jira.opensymphony.com/browse/OGNL-129 but the signature as you > > can see is different and the problem is not happening everytime... > > > > Any suggestion? > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]