We should look for other cases where the code is using "in" to detect
what has become a declared
instance variable of a class.


On Tue, Jul 15, 2008 at 11:16 PM, Henry Minsky
<[EMAIL PROTECTED]> wrote:
> So 'datasets' is a declared instance var of the LzCanvas class, so
> that is probably why 'in' is not
> the way to test for it. I should probably just initialize it to an
> empty hash table, {}, and remove that
> null check.
>
>
> On Tue, Jul 15, 2008 at 11:12 PM, Henry Minsky
> <[EMAIL PROTECTED]> wrote:
>> 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]
>>
>
>
>
> --
> Henry Minsky
> Software Architect
> [EMAIL PROTECTED]
>



-- 
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to