OK, if I change this code in LzDataset.setName, then it works
- if (!('datasets' in canvas) || null == canvas.datasets ) {
+ if (!(canvas['datasets']) || null == canvas.datasets ) {
canvas.datasets = {};
}
so "in" is not behaving the same in swf8 and swf9
On Tue, Jul 15, 2008 at 11:04 PM, Henry Minsky
<[EMAIL PROTECTED]> wrote:
> I created a bug for this
>
> http://www.openlaszlo.org/jira/browse/LPP-6668
>
>
> What is really weird is that I put some tracing in, and the bug is
> happening on the failing datapointer
> because when it sets is xpath to "ds1:/persons", the name
> canvas.datasets['ds1'] is unbound,
> (but canvas['ds1'] is bound!). How can that be? Why is the other
> dataset, ds2, behaving properly?
> Who is responsible for setting canvas.datasets[DSETNAME] ? Why would
> it be getting set
> in one case but not the other?
>
>
>
> On Tue, Jul 15, 2008 at 8:44 PM, Henry Minsky <[EMAIL PROTECTED]> wrote:
>> I've isolated the issue with multiple tests failing down to this test
>> case. There are two
>> datasets and a datapointer for each one. In the "good" case, the order
>> in the app is
>> dataset, datapointer, dataset, datapointer.
>>
>> Both datapointers' ondata events fire.
>>
>>
>> GOOD:
>>
>> <canvas width="100%" height="600" debug="true">
>> <dataset name="ds1"
>> src="http:namespace.xml" request="true" type="http"
>> ondata="Debug.write('[1] dataset ds1 got ondata')"/>
>> <datapointer xpath="ds1:/persons" name="pointer_ds1"
>> ondata="Debug.write('pointer_ds1 ondata received')"/>
>>
>> <dataset name="ds2"
>> src="http:namespace.xml" request="true" type="http"
>> ondata="Debug.write('[2] dataset ds2 got ondata')"/>
>>
>> <datapointer xpath="ds2:/persons" name="pointer_ds2"
>> ondata="Debug.write('pointer_ds2 ondata received')"/>
>> </canvas>
>>
>>
>> However, if the two datasets come first, and then the two datapointes,
>> the first datapointer never seems
>> to run its ondata handler. So what would the order of these objects
>> have to do with it? argh. The debug trace
>> shows that both datasets fire their ondata events. So is there some
>> sort of race condition where the
>> datapointer misses it's event? How do I tell? I guess putting a trace
>> onto the event sender code, to see
>> if the datapointer is actually registered for the event or not when it is
>> sent.
>>
>> This bug does not occur in swf8 or dhtml
>>
>>
>>
>> BAD:
>> <canvas width="100%" height="600" debug="true">
>>
>> <dataset name="ds1"
>> src="http:namespace.xml" request="true" type="http"
>> ondata="Debug.write('[1] dataset ds1 got ondata')"/>
>> <dataset name="ds2"
>> src="http:namespace.xml" request="true" type="http"
>> ondata="Debug.write('[2] dataset ds2 got ondata')"/>
>>
>> <datapointer xpath="ds1:/persons" name="pointer_ds1"
>> ondata="Debug.write('pointer_ds1 ondata received')"/>
>> <datapointer xpath="ds2:/persons" name="pointer_ds2"
>> ondata="Debug.write('pointer_ds2 ondata received')"/>
>> </canvas>
>>
>>
>> --
>> Henry Minsky
>> Software Architect
>> [EMAIL PROTECTED]
>>
>
>
>
> --
> Henry Minsky
> Software Architect
> [EMAIL PROTECTED]
>
--
Henry Minsky
Software Architect
[EMAIL PROTECTED]