History | Log In     View a printable version of the current page.  
Issue Details (XML)

Key: SDK-15572
Type: Bug Bug
Status: Closed Closed
Resolution: Deferred
Priority: B B
Assignee: Robert Vollmar (Adobe)
Reporter: Chikako
Votes: 1
Watchers: 3
Operations

If you were logged in you would be able to see more operations.
Flex SDK

Setting a DataGrid to disabled in the itemEditEnd event handler caues RTE

Created: 05/14/08 09:57 PM   Updated: 09/17/08 12:16 PM
Component/s: mx: DataGrid
Security Level: Public (All JIRA Users )

File Attachments: 1. File test.mxml (0.5 kb)


Severity: Runtime Error
Reproducibility: Every Time
Discoverability: High
Found in Version: SDK Flex 3 (Released)
Milestone: SDK Flex 3.2.0
Affected OS(s): Windows - XP
Steps to Reproduce:
Steps to reproduce:
1. Run test.mxml.
2. Click any cell in the DataGrid.
3. Press TAB key.
 
 Actual Results:
 FlashPlayer (9.0.124.0) crashes.
 
 Expected Results:
 
 
 Workaround (if any):
Put the disabling code in a callLater call.
 
 
 
Language Found: Japanese
Bugbase Id: none
Triaged: Yes
Regression: No
QA Owner: Robert Vollmar (Adobe)
Resolved by: Deepa Subramaniam
Participants: Chikako, Deepa Subramaniam, Lauren Park and Robert Vollmar (Adobe)
Browser: Internet Explorer 6.x


 All   Comments      Sort Order:
Robert Vollmar (Adobe) - [05/19/08 02:54 PM ]
Able to reproduce in Flex 3 and gumbo-fp10 iteration 1782. I tried itemFocusOut as a workaround, but still got an RTE.

The RTE is:
Error: Error #1023: Stack overflow occurred.
at mx.core::ScrollControlBase/set enabled()
at mx.controls.listClasses::ListBase/set enabled()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.controls::DataGrid/endEdit()
at mx.controls::DataGrid/set enabled()
at test4/__grid_itemEditEnd()

Robert Vollmar (Adobe) - [06/24/08 07:35 PM ]
Fix for 3.0.x

Lauren Park - [08/18/08 05:00 PM ]
Investigate for 3.2.0.

Lauren Park - [08/25/08 04:30 PM ]
Changed subject and severity to reflect this is a runtime error not a Flash Player crash.

Deepa Subramaniam - [09/16/08 03:35 PM ]
This is a tricky bug to fix - there is a very simple workaround (as much as it pains me to suggest using callLater()) to workaround this issue and I'd suggest using the workaround.

In the itemEditEnd event handler, put the disabling grid code in a callLater block and the infinite loops is prevented. A la:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private function disableGrid():void
{
grid.enabled=false;
}
]]>
</mx:Script>
<mx:DataGrid id="grid" editable="true"
itemEditEnd="callLater(disableGrid)">
<mx:columns>
<mx:DataGridColumn dataField="x"/>
<mx:DataGridColumn dataField="y"/>
<mx:DataGridColumn dataField="y"/>
</mx:columns>
<mx:dataProvider>
<mx:Array>
<mx:Object x="1" y="2" col3="3"/>
<mx:Object x="1" y="2" col3="3"/>
<mx:Object x="1" y="2" col3="3"/>
</mx:Array>
</mx:dataProvider>
</mx:DataGrid>
</mx:Application>


Deepa Subramaniam - [09/16/08 03:36 PM ]
Deferring - please use suggested workaround.