You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Muhammad Gelbana <m....@gmail.com> on 2013/02/27 01:31:23 UTC

[5.3.6] An image-generating component in a loop error

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

Re: [5.3.6] An image-generating component in a loop error

Posted by Muhammad Gelbana <m....@gmail.com>.
Solved !

I was referring to the components parameter rather than the parameter
acquired from the context. Ouch !

On Wed, Feb 27, 2013 at 3:08 AM, Muhammad Gelbana <m....@gmail.com>wrote:

> 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 <m....@gmail.com>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
>>
>
>

Re: [5.3.6] An image-generating component in a loop error

Posted by Muhammad Gelbana <m....@gmail.com>.
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 <m....@gmail.com>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
>