Hmm, I wonder if there is anything better that the compiler or runtime can
do to  warn about
constraints that cannot work.

The runtime error you were seeing was a clue, maybe we can make a beefed up
check in the
constraint execution code  in debug mode to try and help flag cases where
the constraint
is ill-formed.



On Tue, Apr 6, 2010 at 10:10 AM, Roger Yarrow <[email protected]> wrote:

> Thanks everyone for the prompt replies.  With lots of commenting out
> sections and trial/error, I found the problematic constraint.  I had a
> constraint inside a class that was based upon an array. The array is defined
> in the class such as this:
>
>         <attribute name="range_array" type="expression" value="$once{new
> Array()}"/>
>
> The constraint was like this:
>
>         <view visible="${classroot.range_array.length>1}">
>
> This was the point of failure.  To resolve, I made an attribute that held
> the current value of the array's length.  I then modified the constraint to
> use this attribute value instead, and it works!  Problem solved!
>
>
>
> On Tue, Apr 6, 2010 at 1:33 AM, Max Carlson <[email protected]> wrote:
>
>> Wow - congratulations on the port!
>>
>> I'd suggest running in debug mode with backtrace enabled.  Then, you can
>> click on the errors and see exactly what's causing them.  If it's something
>> in our code you can click the bug report button and use that to submit a
>> report to http://jira.openlaszlo.org/ so we can get it fixed for you.
>>
>> Let me know what you find!
>>
>> Regards,
>> Max Carlson
>> OpenLaszlo.org
>>
>>
>> On 4/5/10 8:33 PM, Roger Yarrow wrote:
>>
>>> Hi,
>>>
>>> I have a large app (18000+ lines) that I migrated from 4.1.1 swf8 to
>>> 4.7.1 swf9.  I have it all working (finally!) with debug=true.  When
>>> debug=true, the application will compile and execute but I get about a
>>> handful of errors like this:
>>>
>>> ERROR @core/LzNode.lzs˜1518: TypeError: Error #1034: Type Coercion
>>> failed: cannot convert [...@2c2b5821 to LzEventable.
>>> ERROR @core/LzNode.lzs˜1518: TypeError: Error #1034: Type Coercion
>>> failed: cannot convert [...@b297f59 to LzEventable.
>>> ERROR @core/LzNode.lzs˜1518: TypeError: Error #1034: Type Coercion
>>> failed: cannot convert [...@c91ec11 to LzEventable.
>>> ERROR @core/LzNode.lzs˜1518: TypeError: Error #1034: Type Coercion
>>> failed: cannot convert [...@a6610b1 to LzEventable.
>>>
>>> The errors are during initialization as I have lots of views/classes
>>> being instantiated in a variety of ways.
>>>
>>> When I attempt to deploy the app using debug=false, it will not fully
>>> execute.  Adobe Flash (debugger version) pops up with errors such as:
>>>
>>> TypeError: Error #1034: Type Coercion failed: cannot convert [...@1d6a2661
>>> to .LzEventable.
>>>     at LzNode/applyConstraintMethod()
>>>     at LzNode/applyConstraintExpr()
>>>     at LzNode/__LZresolveReferences()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZclearPreventInit()
>>>     at LzState/apply()
>>>     at LzState/$lzc$set_applied()
>>>     at LzEventable/setAttribute()
>>>     at MethodInfo-2268()
>>>     at LzNode/applyConstraintMethod()
>>>     at LzNode/applyConstraintExpr()
>>>     at LzNode/__LZresolveReferences()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZinstantiationDone()
>>>     at LzView/__LZinstantiationDone()
>>>     at LzInstantiatorService/makeSomeViews()
>>>     at LzInstantiatorService/checkQ()
>>>     at 
>>> Function/http://adobe.com/AS3/2006/builtin::call()<http://adobe.com/AS3/2006/builtin::call%28%29>
>>>     at LzEvent/sendEvent()
>>>     at LzIdleKernel$/__update()
>>>
>>> And:
>>>
>>> TypeError: Error #1034: Type Coercion failed: cannot convert [...@1fc27079
>>> to .LzEventable.
>>>     at LzNode/applyConstraintMethod()
>>>     at LzNode/applyConstraintExpr()
>>>     at LzNode/__LZresolveReferences()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZclearPreventInit()
>>>     at LzState/apply()
>>>     at LzState/$lzc$set_applied()
>>>     at LzEventable/setAttribute()
>>>     at MethodInfo-2286()
>>>     at LzNode/applyConstraintMethod()
>>>     at LzNode/applyConstraintExpr()
>>>     at LzNode/__LZresolveReferences()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZcallInit()
>>>     at LzNode/__LZinstantiationDone()
>>>     at LzView/__LZinstantiationDone()
>>>     at LzInstantiatorService/makeSomeViews()
>>>     at LzInstantiatorService/createImmediate()
>>>     at LzNode/createChildren()
>>>     at LzNode()
>>>     at LzView()
>>>     at $lzc$class_generic_widget()
>>>     at $lzc$class_countdown_timer()
>>>     at $lzc$class_m3107/reload()
>>>     at $lzc$class_m3100/show_desktop()
>>>     at $lzc$class_m1974/clearMessage()
>>>     at 
>>> Function/http://adobe.com/AS3/2006/builtin::call()<http://adobe.com/AS3/2006/builtin::call%28%29>
>>>     at LzDelegate/execute()
>>>     at MethodInfo-437()
>>>     at 
>>> Function/http://adobe.com/AS3/2006/builtin::apply()<http://adobe.com/AS3/2006/builtin::apply%28%29>
>>>     at LzTimeKernelClass/timerHandler()
>>>     at flash.utils::Timer/_timerDispatch()
>>>     at flash.utils::Timer/tick()
>>>
>>> The nature of the errors (Error #1034) are the same so I'm assuming they
>>> are one in the same.  When debug=true, Flash can "handle" the error and
>>> allows my app to execute normally.  When debug=false, it cannot handle
>>> the error and the app dies during instantiation and executes but only
>>> "halfway" alive.
>>>
>>> How do I figure out where the problem is?  I looked in core/LzNode and
>>> the problem area is related to applyConstraintMethod, so I'm guessing I
>>> have a constraint going haywire somewhere.  Perhaps a constraint is
>>> based upon a view not yet instantiated?  How do I "dig deeper" to find
>>> out where the issue is?
>>>
>>> I am desperate here... if I have to, I can just deploy using a
>>> debug=true and hide the debug window.  Obviously, I'd rather not do that.
>>>
>>> Thanks!!
>>>
>>> - Roger
>>>
>>
>


-- 
Henry Minsky
Software Architect
[email protected]

Reply via email to