Return-Path: Delivered-To: apmail-myfaces-dev-archive@www.apache.org Received: (qmail 53792 invoked from network); 27 Feb 2009 18:33:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 27 Feb 2009 18:33:35 -0000 Received: (qmail 20336 invoked by uid 500); 27 Feb 2009 18:33:30 -0000 Delivered-To: apmail-myfaces-dev-archive@myfaces.apache.org Received: (qmail 20292 invoked by uid 500); 27 Feb 2009 18:33:30 -0000 Mailing-List: contact dev-help@myfaces.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "MyFaces Development" Delivered-To: mailing list dev@myfaces.apache.org Received: (qmail 20272 invoked by uid 99); 27 Feb 2009 18:33:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Feb 2009 10:33:30 -0800 X-ASF-Spam-Status: No, hits=1.8 required=10.0 tests=MIME_QP_LONG_LINE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [195.245.225.21] (HELO technikum-wien.at) (195.245.225.21) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Feb 2009 18:33:20 +0000 Received: from localhost (unknown [127.0.0.1]) by technikum-wien.at (Postfix) with ESMTP id 049773E4019 for ; Fri, 27 Feb 2009 18:33:00 +0000 (UTC) Received: from technikum-wien.at ([127.0.0.1]) by localhost (polyxena.technikum-wien.at [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13315-06 for ; Fri, 27 Feb 2009 19:32:59 +0100 (CET) Received: from polyxena.technikum-wien.at (unknown [10.127.0.37]) by technikum-wien.at (Postfix) with ESMTP id 99F763E400C for ; Fri, 27 Feb 2009 19:32:59 +0100 (CET) Received: from 85-126-212-30.work.xdsl-line.inode.at (85-126-212-30.work.xdsl-line.inode.at [85.126.212.30]) by webmail.technikum-wien.at (Horde MIME library) with HTTP; Fri, 27 Feb 2009 19:32:59 +0100 Message-ID: <20090227193259.tbde8ojfs0o44kc8@webmail.technikum-wien.at> Date: Fri, 27 Feb 2009 19:32:59 +0100 From: se08m041@technikum-wien.at To: dev@myfaces.apache.org Subject: [ExtVal] + facelets - EL syntax issue? MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable User-Agent: Internet Messaging Program (IMP) H3 (4.0.4) X-Virus-Scanned: amavisd-new at technikum-wien.at X-Virus-Checked: Checked by ClamAV on apache.org Hello, I'm sorry if this ends up in the wrong place, i'm new to this. I encountered a problem as i tried to use extval together with facelets extval 1.1.1 facelets 1.1.14 The Problem concerns the DefaultELHelper and a special case of EL usage=20 in custom facelet tags. I am using custom composition tags in facelets like shown in this IBM=20 article by Richard Hightower: http://www.ibm.com/developerworks/java/library/j-facelets/#N102EF custom tag inside a facelet: (the viewBean has an address property) custom tag source: =09 =09=09 =09=09... =09 Problem and StackTrace: fieldName contains the String "address", which is what we want to be evaluat= ed so we cant put the '' around the fieldName ValueBindingExpression =3D "#{entity[fieldName]}" result value =3D "entity[address]" =3D> no '' around address code line 93: int index1 =3D expression.lastIndexOf("']"); =09expression does not contain '] but it contains ] =09therefore index1 and index2 are -1 and the else branch is executed =09which does not set base, so it remains null =09finally this leads to an exception Daemon Thread [http-8080-2] (Suspended (breakpoint at line 93 in=20 ValueBindingExpression)) =09ValueBindingExpression.(String) line: 93 =09DefaultELHelper.getValueBindingExpression(UIComponent, boolean) line: 104 =09DefaultELHelper.getPropertyDetailsOfValueBinding(UIComponent) line: 138 =09DefaultComponentMetaDataExtractor.extract(FacesContext, Object) line: 85 =09ValidationInterceptorWithSkipValidationSupport(ValidationInterceptor).ini= tComponent(FacesContext, UIComponent) line:=20 74 =09ValidationInterceptorWithSkipValidationSupport(ValidationInterceptor).bef= oreEncodeBegin(FacesContext, UIComponent, Renderer) line:=20 53 =09ExtValGenericRendererWrapper(ExtValRendererWrapper).encodeBegin(FacesCont= ext,=20 UIComponent) line: 208 =09ExtValGenericRendererWrapper.intercept(Object, Method, Object[],=20 MethodProxy) line: 71 =09HtmlMenuRenderer$$EnhancerByCGLIB$$ba4b3ba9.encodeBegin(FacesContext,=20 UIComponent) line: not available =09HtmlSelectOneMenu(UIComponentBase).encodeBegin(FacesContext) line: 746 =09ComponentSupport.encodeRecursive(FacesContext, UIComponent) line: 242 =09ComponentSupport.encodeRecursive(FacesContext, UIComponent) line: 249 =09ComponentSupport.encodeRecursive(FacesContext, UIComponent) line: 249 =09FaceletViewHandler.renderView(FacesContext, UIViewRoot) line: 594 =09AjaxViewHandler(ViewHandlerWrapper).renderView(FacesContext,=20 UIViewRoot) line: 101 =09AjaxViewHandler.renderView(FacesContext, UIViewRoot) line: 222 =09RenderResponseExecutor.execute(FacesContext) line: 41 =09LifecycleImpl.render(FacesContext) line: 146 =09FacesServlet.service(ServletRequest, ServletResponse) line: 147 =09ApplicationFilterChain.internalDoFilter(ServletRequest,=20 ServletResponse) line: 290 =09ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 20= 6 =09AuthorizationFilter.doFilter(ServletRequest, ServletResponse,=20 FilterChain) line: 97 =09ApplicationFilterChain.internalDoFilter(ServletRequest,=20 ServletResponse) line: 235 =09ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 20= 6 =09ExtensionsFilter.doFilter(ServletRequest, ServletResponse,=20 FilterChain) line: 246 =09ApplicationFilterChain.internalDoFilter(ServletRequest,=20 ServletResponse) line: 235 =09ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 20= 6 =09EncodingFilter.doFilter(ServletRequest, ServletResponse, FilterChain)=20 line: 22 =09ApplicationFilterChain.internalDoFilter(ServletRequest,=20 ServletResponse) line: 235 =09ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 20= 6 =09ExtensionsFilter(ExtensionsFilter).doFilter(ServletRequest,=20 ServletResponse, FilterChain) line: 301 =09ApplicationFilterChain.internalDoFilter(ServletRequest,=20 ServletResponse) line: 235 =09ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 20= 6 =09StandardWrapperValve.invoke(Request, Response) line: 233 =09StandardContextValve.invoke(Request, Response) line: 191 =09StandardHostValve.invoke(Request, Response) line: 128 =09ErrorReportValve.invoke(Request, Response) line: 102 =09StandardEngineValve.invoke(Request, Response) line: 109 =09CoyoteAdapter.service(Request, Response) line: 286 =09Http11AprProcessor.process(long) line: 857 =09Http11AprProtocol$Http11ConnectionHandler.process(long) line: 565 =09AprEndpoint$Worker.run() line: 1509 =09Thread.run() line: 619 without extval this expression evaluates and works fine, so i guess=20 this is a lack of facelets/EL support. please correct me if i am wrong, and feel free to kill me if this is=20 not the right place to report such a problem. kind regards, thomas