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

Reply via email to