Sample code and full stack. I'm at my day job and unable to recreate my actual data model, so please keep in mind I use a multi tier selection model, ie Category, Year, Make, Model, Trim. This worked without issue prior to 5.4.21. The selectModel data is dependent upon the select model value, so I'm unable to rebuild this using onPrepare. It can be persisted, however this isn't the most ideal repair.
<html t:type="layout" t:title="Select Demo" xmlns:t=" http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter"> <form t:type="form"> <select t:type="select" t:id="computer" t:model="computerModels" t:zone="ajaxZone"/> <t:zone t:id="ajaxZone" id="ajaxZone"> <select t:type="select"t t:id="monitor" t:model="monitorModels"/> </t:zone> </form> </html> public class SelectDemo { @Property private Computer computer; @Property private Monitor monitor; @Property private SelectModel computerModels; @Property private SelectModel monitorModels; @Inject private SelectModelFactory selectModelFactory; @InjectComponent private Zone ajaxZone; @Inject private Session session; public void setupRender() { List<Computer> computers = session.createCriteria(Computer.class).list(); computerModels = selectModelFactory.create(computers, "name"); monitorModels = selectModelFactory.create(new ArrayList<>()); } Object onValueChangedFromMonitor(Computer computer) { List<Monitor> monitors = session.createCriteria(Monitor.class).add(Restrictions.eq("computer", computer)).list(); monitorModels = selectModelFactory.create(monitors, "name"); return ajaxZone.getBody(); } } The full stack trace - Application Exception - - Tapestry Version: 5.4-alpha-22 - - Application Version: 1.1-SNAPSHOT-DEV An exception has occurred processing this request. Parameter 'model' of component SelectDemo:computer is bound to null. This parameter is not allowed to be null. org.apache.tapestry5.ioc.internal.OperationException *Parameter 'model' of component SelectDemo:computer is bound to null. This parameter is not allowed to be null.* locationclasspath:org/company/tapdemo/pages/SelectDemo.tml, line 31<html t:type="layout" t:title="Select Demo" xmlns:t=" http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">2 <form t:type="form">3 <select t:type="select" t:id="computer" t:model="computerModels" t:zone="ajaxZone"/> 4 5 <t:zone t:id="ajaxZone" id="ajaxZone">6 <select t:type="select" t:id="monitor" t:model="monitorModels"/>7 </t:zone>8 </form>trace - Handling Ajax 'change' component event request for SelectDemo:computer. - Triggering event 'change' on SelectDemo:computer org.apache.tapestry5.runtime.ComponentEventException *Parameter 'model' of component SelectDemo:computer is bound to null. This parameter is not allowed to be null.* context eventTypechangelocationclasspath:org/company/tapdemo/pages/SelectDemo.tml, line 3 org.apache.tapestry5.ioc.internal.util.TapestryException *Parameter 'model' of component SelectDemo:computer is bound to null. This parameter is not allowed to be null.* locationclasspath:org/company/tapdemo/pages/SelectDemo.tml, line 3 Filter Frames? Stack trace: - org.apache.tapestry5.internal.transform.ParameterWorker$3$1.readFromBinding(ParameterWorker.java:275) - org.apache.tapestry5.internal.transform.ParameterWorker$3$1.get(ParameterWorker.java:381) - org.apache.tapestry5.corelib.components.Select.findValueInModel(Select.java:273) - org.apache.tapestry5.corelib.components.Select.toValue(Select.java:262) - org.apache.tapestry5.corelib.components.Select.onChange(Select.java:238) - org.apache.tapestry5.corelib.components.Select.dispatchComponentEvent(Select.java) - org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:950) - org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1127) - org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1072) - org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1069) - org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:145) - org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1068) - org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:109) - org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56) - org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) - org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75) - org.apache.tapestry5.modules.TapestryModule$37.handle(TapestryModule.java:2185) - org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43) - org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39) - org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:55) - org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:52) - org.apache.tapestry5.internal.services.RequestOperationTracker.handleComponentEvent(RequestOperationTracker.java:47) - org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46) - org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:299) - org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) - org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.java:844) - org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:834) - org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89) - org.company.tapdemo.services.AppModule$1.service(AppModule.java:101) - org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) - org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95) - org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) - org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) - org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:250) - org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59) - org.company.tapdemo.services.impl.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:31) - org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) - org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) - org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:794) - org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:166) RequestContext Path/TapDemoPath/selectdemo.computer:changeLocaleen_USServer NamelocalhostFlagsXHRPorts (local/server)8080 / 8080MethodPOSTQuery Parameterst:formcomponentidSelectDemo:formt:formidformt:selectvalue2t:zoneid ajaxZoneHeadersAccept*/*Accept-Encodinggzip, deflateAccept-Language en-US,en;q=0.5Cache-Controlno-cacheConnectionkeep-aliveContent-Length91 Content-Typeapplication/x-www-form-urlencoded; charset=UTF-8Cookie JSESSIONID=8zhf85bxcr15DNT1Hostlocalhost:8080Pragmano-cache Proxy-AuthorizationBasic Z21jMDc6RmFsbGluZzIwMTM=Referer http://localhost:8080/TapDemo/selectdemoUser-AgentMozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0X-Requested-With XMLHttpRequestAttributespage-nameSelectDemoservletAPI.characterEncodingUTF-8 servletAPI.contentLength91servletAPI.contentTypeapplication/x-www-form-urlencoded; charset=UTF-8servletAPI.protocolHTTP/1.1servletAPI.schemehttp tapestry.active-page-loadedtrueContext Attributes com.sun.jsp.tagFileJarUrlsCache{}com.sun.jsp.taglibraryCache{} javax.servlet.context.tempdir C:\Users\gmc07\Documents\NetBeansProjects\TapDemo\target\work org.apache.tapestry5.application-registry org.apache.tapestry5.ioc.internal.RegistryWrapper@3fc70554 On Wed, Oct 16, 2013 at 8:43 AM, Lance Java <lance.j...@googlemail.com>wrote: > Can you post a stack trace? > -- George Christman www.CarDaddy.com P.O. Box 735 Johnstown, New York