I tried adding a t:formState to the loops, but it was no good. I even took the the whole loop outside of the form component and surprisingly, I'm still having the same error !!
On Wed, Feb 27, 2013 at 2:31 AM, Muhammad Gelbana <[email protected]>wrote: > 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 >
