I am re-testing this... Best regards Ken in nashua
> From: [EMAIL PROTECTED] > To: users@tapestry.apache.org > Subject: RE: Does tapestry need an IntegerPropertySelectionModel ? > Date: Mon, 15 Oct 2007 12:09:28 -0400 > > > Just some feedback...Nothing works with latest OGNL build.Best regardsKen in > nashuan exception has occurred. > > > You may continue by restarting the session. > > > > > [ +/- ] Exception: > Unable to update OGNL expression '<parsed OGNL expression>' of > [EMAIL PROTECTED]/galleryWidget] to 3: Binding with value 2 > (StaticBinding[2]) may not be updated. > > org.apache.tapestry.BindingException > > > > Unable > to update OGNL expression '<parsed OGNL expression>' of > [EMAIL PROTECTED]/galleryWidget] to 3: Binding with value 2 > (StaticBinding[2]) may not be updated. > > > > binding: > ExpressionBinding[Home/galleryWidget tableSize] > > > location: > classpath:/org/trails/demo/components/Gallery.jwc, line > 12, column 467 > 8 <!-- <property name="tableSize" persist="session"/> --> > 9 <!-- <property name="pagingSpan" persist="session"/> --> > 10 > 11 <component id="tableSizeSelect" type="PropertySelection" > inherit-informal-parameters="true"> > 12 <binding name="value" value="tableSize"/> > 13 <binding name="model" value="tableSizeModel"/> > 14 </component> > 15 > 16 <component id="pagingSpanSelect" type="PropertySelection"> > 17 <binding name="value" value="pagingSpan"/> > > > > > > > > > > [ +/- ] Exception: > Unable to update OGNL expression '<parsed OGNL expression>' of > [EMAIL PROTECTED]/galleryWidget] to 3: Binding with value 2 > (StaticBinding[2]) may not be updated. > > org.apache.hivemind.ApplicationRuntimeException > > > > Unable > to update OGNL expression '<parsed OGNL expression>' of > [EMAIL PROTECTED]/galleryWidget] to 3: Binding with value 2 > (StaticBinding[2]) may not be updated. > > > > component: > [EMAIL PROTECTED]/galleryWidget] > > > location: > context:/WEB-INF/Home.html, line 94 <div > id="page.title"> > 5 <span jwcid="@Insert" value="Listings"/> > 6 </div> > 7 </h1> > 8 > 9 <div jwcid="[EMAIL PROTECTED]:Gallery" > 10 collectionType="ognl:@[EMAIL PROTECTED]" > 11 component="galleryWidget" > 12 collectionContentParm="collectionContent" > 13 autoPagingContentParm="autoPagingContent" > 14 tableSize="2" > > > > > > > > > > [ +/- ] Exception: > Binding with value 2 (StaticBinding[2]) may not be updated. > > > > org.apache.tapestry.BindingException > > > > Binding with value 2 (StaticBinding[2]) may not be > updated. > > > > binding: > StaticBinding[2] > > > location: > context:/WEB-INF/Home.html, line 94 <div > id="page.title"> > 5 <span jwcid="@Insert" value="Listings"/> > 6 </div> > 7 </h1> > 8 > 9 <div jwcid="[EMAIL PROTECTED]:Gallery" > 10 collectionType="ognl:@[EMAIL PROTECTED]" > 11 component="galleryWidget" > 12 collectionContentParm="collectionContent" > 13 autoPagingContentParm="autoPagingContent" > 14 tableSize="2" > > > > > > > > Stack Trace: > > > > > > > org.apache.tapestry.binding.AbstractBinding.createReadOnlyBindingException(AbstractBinding.java:115) > > org.apache.tapestry.binding.AbstractBinding.setObject(AbstractBinding.java:66) > > $Gallery_17.setTableSize($Gallery_17.java) > > $ASTProperty_115a46b08c2.set($ASTProperty_115a46b08c2.java) > > org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.write(ExpressionEvaluatorImpl.java:175) > > $ExpressionEvaluator_115a46b0873.write($ExpressionEvaluator_115a46b0873.java) > > org.apache.tapestry.binding.ExpressionBinding.setObject(ExpressionBinding.java:223) > > $PropertySelection_18.setValue($PropertySelection_18.java) > > org.apache.tapestry.form.PropertySelection.rewindFormComponent(PropertySelection.java:95) > > org.apache.tapestry.form.AbstractFormComponent.renderComponent(AbstractFormComponent.java:90) > > org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725) > > org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:179) > > org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539) > > org.apache.tapestry.components.Block.renderForComponent(Block.java:65) > > org.apache.tapestry.components.RenderBlock.renderComponent(RenderBlock.java:65) > > org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725) > > org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:179) > > org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539) > > org.apache.tapestry.form.FormSupportImpl.rewind(FormSupportImpl.java:625) > > org.apache.tapestry.form.Form.renderComponent(Form.java:196) > > org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725) > > org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:179) > > org.apache.tapestry.form.Form.rewind(Form.java:269) > > org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:453) > > org.apache.tapestry.form.Form.trigger(Form.java:280) > > org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:166) > > org.apache.tapestry.engine.DirectService.service(DirectService.java:142) > > $IEngineService_115a46b07bd.service($IEngineService_115a46b07bd.java) > > org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72) > > org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:241) > > org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54) > > $WebRequestServicer_115a46b0794.service($WebRequestServicer_115a46b0794.java) > > org.trails.i18n.LocaleFilter.service(LocaleFilter.java:26) > > $WebRequestServicerFilter_115a46b0792.service($WebRequestServicerFilter_115a46b0792.java) > > $WebRequestServicer_115a46b0796.service($WebRequestServicer_115a46b0796.java) > > $WebRequestServicer_115a46b078e.service($WebRequestServicer_115a46b078e.java) > > org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61) > > $ServletRequestServicer_115a46b0774.service($ServletRequestServicer_115a46b0774.java) > > org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55) > > $ServletRequestServicerFilter_115a46b0770.service($ServletRequestServicerFilter_115a46b0770.java) > > $ServletRequestServicer_115a46b0776.service($ServletRequestServicer_115a46b0776.java) > > org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52) > > $ServletRequestServicerFilter_115a46b076e.service($ServletRequestServicerFilter_115a46b076e.java) > > $ServletRequestServicer_115a46b0776.service($ServletRequestServicer_115a46b0776.java) > > org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53) > > $ServletRequestServicerFilter_115a46b0772.service($ServletRequestServicerFilter_115a46b0772.java) > > $ServletRequestServicer_115a46b0776.service($ServletRequestServicer_115a46b0776.java) > > $ServletRequestServicer_115a46b0768.service($ServletRequestServicer_115a46b0768.java) > > org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:126) > > org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:171) > > javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > > javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491) > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1074) > > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75) > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065) > > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) > > org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) > > org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) > > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) > > org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110) > > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) > > org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) > > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) > > org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) > > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) > > org.trails.security.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:152) > > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) > > org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:229) > > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) > > org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:286) > > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) > > org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149) > > org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065) > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365) > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185) > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689) > > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391) > > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146) > > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) > > org.mortbay.jetty.Server.handle(Server.java:285) > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457) > > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:765) > > org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:628) > > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209) > > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357) > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329) > > org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475) > > From: [EMAIL PROTECTED]: [EMAIL > PROTECTED]: RE: Does tapestry need an IntegerPropertySelectionModel ?Date: > Mon, 15 Oct 2007 09:14:37 -0400 > > > > > > > Hi Jesse,Did this weekends checkins for OGNL address this?Just curious. > Thanks if you got time to reply.Best regardsKen in nashuaFrom: [EMAIL > PROTECTED]: [EMAIL PROTECTED]: RE: Does tapestry need an > IntegerPropertySelectionModel ?Date: Fri, 12 Oct 2007 15:34:05 -0400 > > > > > > > Thanks Jesse...I will give your stuff a shot... but am already > building/trying an IntegerPropertySelectionModel right now to see if it > induces the proper coercian.I am happy to try any new builds/patches you > submit. It would be nice to know when it happens.Thanks for your > patience.Best regardsKen in nashuapackage org.trails.util;import > org.apache.tapestry.form.IPropertySelectionModel;public class > IntegerPropertySelectionModel implements IPropertySelectionModel{ private > Integer[] _set; public IntegerPropertySelectionModel(Integer[] set) { > _set = set; } public String getLabel(int index) { return > _set[index].toString(); } public Object getOption(int index) { > return _set[index]; } public int getOptionCount() { return > _set.length; } public String getValue(int index) { return > _set[index].toString(); } public boolean isDisabled(int index) { > return false; } public Object translateValue(String value) { > for (Integer e : _set) { if (e.toString().equals(value)) > return e; } return null; }}From: [EMAIL > PROTECTED]: [EMAIL PROTECTED]: Does tapestry need an > IntegerPropertySelectionModel ?Date: Fri, 12 Oct 2007 15:12:14 -0400 > > > > > > > I am trying to operate a PropertySelection that uses an array of strings but > their content are numbers.private static final String[] tableSizeOptions = > new String[] { "1", "2", "3"};I am assuming OGNL is smart enough > to coerce these during render cycle on IF conditions that attempt to perform > arithmetic.NOT the case... see stack trace below.Do I need to implement an > IntegerPropertySelectionModel for this to operate properly?Best regardsKen in > nashua2007-10-12 15:01:00,575 [btpool0-2] ERROR > org.apache.tapestry.services.impl.HiveMindExpressionCompiler - Error > generating OGNL getter for expression (index % tableSize) == 0 with root > [EMAIL PROTECTED]/galleryWidget] and body:{ return ($w) > ((ognl.OgnlOps.equal( ($w) ((($Gallery_17)$2).getIndex() % > (($Gallery_17)$2).getTableSize() ), ($w) > 0)));}org.apache.hivemind.ApplicationRuntimeException: Unable to add method > java.lang.Object get(ognl.OgnlContext, java.lang.Object) to class > $ASTEq_1159596f3b2: [source error] invalid types for % at > org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:278) > at > org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:176) > at ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:523) Windows > Live Hotmail and Microsoft Office Outlook – together at last. Get it now! > Windows Live Hotmail and Microsoft Office Outlook – together at last. Get it > now! > Boo! Scare away worms, viruses and so much more! Try Windows Live OneCare! > Try now! > > _________________________________________________________________ > Help yourself to FREE treats served up daily at the Messenger Café. Stop by > today. > http://www.cafemessenger.com/info/info_sweetstuff2.html?ocid=TXT_TAGLM_OctWLtagline _________________________________________________________________ Boo! Scare away worms, viruses and so much more! Try Windows Live OneCare! http://onecare.live.com/standard/en-us/purchase/trial.aspx?s_cid=wl_hotmailnews