I have a component that generates images based on multiple inputs. Lately I increased the parameters for that component. The new parameters acquire their primitive values during an iteration in 2 loops. So 2 loops are eventually generated a set of images.
The image-generating component generates images with a url that invokes an event for the component and passes it's parameters as context. The images URLs are generated as expected but right before using one of the new primitive parameters (long) to generate the image, an error is thrown: Caused by: java.lang.NullPointerException: Property 'pieChartDetails' > (within property expression 'pieChartDetails.id', of > com.sc.ipk.portal.ixl.pages.IxlTrends@74a5eac1) is null. Here is my TML <t:loop t:source="ixlDao.getCsvResultFiles(ixlTest?.getTestType().getId())" > t:value="csvFileResults"> > <article t:type="if" t:test="displayPieCharts" class="module width_full" > style="text-align: center;"> > <div class="module_content" style="margin: 5px 5px;"> > <div class="pieChartImg" t:type="loop" t:source="availablePieCharts" > t:value="pieChartDetails"> > <img t:type="ixl/Chart" t:chartType="literal:pie" t:chartId="* > pieChartDetails.id*" t:csvResultFileId="*csvFileResults.id*" > t:requestId="ixlTest?.id" > t:from="formattedStartTime" t:to="formattedEndTime" > t:interval="profile.timeInterval" t:width="300" t:height="300" /> > </div> > </div> > </article> > </t:loop> So the error is thrown AFTER the image URL is correctly generated. I just don't know why does it try to re-acquire the parameters value once again from the page ! When I debug through the component (*IxlChart i.e. ixl/Chart*) I find that I'm about to generate an image, but I need the *chartId* parameter, inspecting it using eclipse shows the expected value, but still that line of code that uses that value, keeps throwing the following exception Caused by: org.apache.tapestry5.ioc.internal.OperationException: Failure > reading parameter 'chartId' of component ixl/Trends:chart: Property > 'pieChartDetails' (within property expression 'pieChartDetails.id', of > com.sc.ipk.portal.ixl.pages.ixlTrends@74a5eac1) is null. [at > classpath:com/sc/ipk/portal/ixl/pages/ixlTrends.tml, line 100] > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88) > at > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124) > at > org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146) > at > org.apache.tapestry5.internal.services.EventImpl.storeResult(EventImpl.java:84) > at > com.sc.ipk.portal.ixl.components.TapestryImage.dispatchComponentEvent(TapestryImage.java) > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:927) > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1112) > ... 76 more > Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: > Failure reading parameter 'chartId' of component ixl/Trends:chart: Property > 'pieChartDetails' (within property expression 'pieChartDetails.id', of > com.sc.ipk.portal.ixl.pages.ixlTrends@74a5eac1) is null. [at > classpath:com/sc/ipk/portal/ixl/pages/ixlTrends.tml, line 100] > at > org.apache.tapestry5.internal.transform.ParameterWorker$3$1.readFromBinding(ParameterWorker.java:268) > at > org.apache.tapestry5.internal.transform.ParameterWorker$3$1.get(ParameterWorker.java:381) > at > com.sc.ipk.portal.ixl.components.TapestryImage.conduit_get_chartId(TapestryImage.java) > at com.sc.ipk.portal.ixl.components.ixlChart.getPieChart(ixlChart.java:37) > at com.sc.ipk.portal.ixl.components.ixlChart.getImage(ixlChart.java:29) > at > com.sc.ipk.portal.ixl.components.TapestryImage$1.getStream(TapestryImage.java:125) > at > org.apache.tapestry5.internal.services.StreamResponseResultProcessor.processResultValue(StreamResponseResultProcessor.java:52) > at > org.apache.tapestry5.internal.services.StreamResponseResultProcessor.processResultValue(StreamResponseResultProcessor.java:28) > at $ComponentEventResultProcessor_7bcda80107c9.processResultValue(Unknown > Source) > at $ComponentEventResultProcessor_7bcda8010785.processResultValue(Unknown > Source) > at > org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:47) > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$6.handleResult(ComponentPageElementImpl.java:1084) > at > org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:89) > at > org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:86) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > ... 83 more > Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: > Property 'pieChartDetails' (within property expression > 'pieChartDetails.id', of com.sc.ipk.portal.ixl.pages.ixlTrends@74a5eac1) > is null. [at classpath:com/sc/ipk/portal/ixl/pages/ixlTrends.tml, line 100] > at > org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:63) > at > org.apache.tapestry5.internal.transform.ParameterWorker$3$1.readFromBinding(ParameterWorker.java:263) > ... 97 more > Caused by: java.lang.NullPointerException: Property 'pieChartDetails' > (within property expression 'pieChartDetails.id', of > com.sc.ipk.portal.ixl.pages.ixlTrends@74a5eac1) is null. > at > org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.nullTerm(PropertyConduitSourceImpl.java:1495) > at $InternalPropertyConduit_7bcda8010737.navigate(Unknown Source) > at $InternalPropertyConduit_7bcda8010737.get(Unknown Source) > at > org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:59) > ... 98 more Thank you for your time