
|
If you were logged in you would be able to see more operations.
|
|
|
|
|
| Component/s: |
Charts
|
|
Security Level:
|
Public
(All JIRA Users
)
|
|
| Severity: |
Crash/Hang
|
| Reproducibility: |
Every Time
|
| Discoverability: |
High
|
| Found in Version: |
SDK Moxie RC0
|
| Affected OS(s): |
Windows
- XP
|
| Steps to Reproduce: |
Steps to reproduce:
1. Develop a Flex component using Flex Component Kit using CS3.
2. Export the symbol component to a SWC file, then import it to a Flex project.
3. Extend the imported symbol component with IDataRenderer implemented so that it can be used as a chart item renderer.
Here is the hierarchy of the classes:
* public class RunwayBubble extends UIMovieClip {} // authored in CS3
* public class FlexBubble extends RunwayBubble implements IDataRenderer {} // authored in Flex
4. Use the extended class as a custom item renderer in a bubble series chart.
Here is a code fragment that shows the usage of it:
</mx:BubbleChart>
.....
<mx:series>
<mx:BubbleSeries id="bubbleSeries" dataProvider="{chartData}" xField="x" yField="y" radiusField="z">
<mx:itemRenderer>
<mx:Component>
<ms:FlexBubble visualType="{outerDocument.bubbleVisual}" click="outerDocument.onItemClick(this);"/>
</mx:Component>
</mx:itemRenderer>
</mx:BubbleSeries>
</mx:series>
</mx:BubbleChart>
Actual Results:
RTE with the stack trace:
ReferenceError: Error #1069: Property invalidateDisplayList not found on com.dv.multiStudy.view.RunwayCurve_inlineComponent1 and there is no default value.
at mx.charts.series::BubbleSeries/updateDisplayList()[C:\Work\flex\dmv_automation\projects\datavisualisation\src\mx\charts\series\BubbleSeries.as:790]
at mx.core::UIComponent/validateDisplayList()[E:\dev\flex_3_beta3\sdk\frameworks\projects\framework\src\mx\core\UIComponent.as:6204]
Expected Results:
It should not throw an error. It worked fine with the previous release beta2. (Regression).
Workaround (if any):
Add a bogus method as follows to FlexBubble class:
public function invalidateDisplayList():void {
// bogus
trace("bogus invalidateDisplayList");
}
Observation:
I have looked at the code that is troublesome (mx.charts.series.BubbleSeries, line 790):
if(v.itemRenderer is IProgrammaticSkin || v.itemRenderer is IUIComponent)
(v.itemRenderer as Object).invalidateDisplayList();
If you look at IProgrammaticSkin or IUIComponent, they do not define invalidateDisplayList().
My guess is that if the itemRenderer is IProgrammaticSkin or IUIComponent, then the chances are that they somehow must implement invalidateDisplayList(), but the assumption must have failed in this case.
Steps to reproduce:
1. Develop a Flex component using Flex Component Kit using CS3.
2. Export the symbol component to a SWC file, then import it to a Flex project.
3. Extend the imported symbol component with IDataRenderer implemented so that it can be used as a chart item renderer.
Here is the hierarchy of the classes:
* public class RunwayBubble extends UIMovieClip {} // authored in CS3
* public class FlexBubble extends RunwayBubble implements IDataRenderer {} // authored in Flex
4. Use the extended class as a custom item renderer in a bubble series chart.
Here is a code fragment that shows the usage of it:
</mx:BubbleChart>
.....
<mx:series>
<mx:BubbleSeries id="bubbleSeries" dataProvider="{chartData}" xField="x" yField="y" radiusField="z">
<mx:itemRenderer>
<mx:Component>
<ms:FlexBubble visualType="{outerDocument.bubbleVisual}" click="outerDocument.onItemClick(this);"/>
</mx:Component>
</mx:itemRenderer>
</mx:BubbleSeries>
</mx:series>
</mx:BubbleChart>
Actual Results:
RTE with the stack trace:
ReferenceError: Error #1069: Property invalidateDisplayList not found on com.dv.multiStudy.view.RunwayCurve_inlineComponent1 and there is no default value.
at mx.charts.series::BubbleSeries/updateDisplayList()[C:\Work\flex\dmv_automation\projects\datavisualisation\src\mx\charts\series\BubbleSeries.as:790]
at mx.core::UIComponent/validateDisplayList()[E:\dev\flex_3_beta3\sdk\frameworks\projects\framework\src\mx\core\UIComponent.as:6204]
Expected Results:
It should not throw an error. It worked fine with the previous release beta2. (Regression).
Workaround (if any):
Add a bogus method as follows to FlexBubble class:
public function invalidateDisplayList():void {
// bogus
trace("bogus invalidateDisplayList");
}
Observation:
I have looked at the code that is troublesome (mx.charts.series.BubbleSeries, line 790):
if(v.itemRenderer is IProgrammaticSkin || v.itemRenderer is IUIComponent)
(v.itemRenderer as Object).invalidateDisplayList();
If you look at IProgrammaticSkin or IUIComponent, they do not define invalidateDisplayList().
My guess is that if the itemRenderer is IProgrammaticSkin or IUIComponent, then the chances are that they somehow must implement invalidateDisplayList(), but the assumption must have failed in this case.
|
| Language Found: |
English
|
| Bugbase Id: |
none
|
| Regression: |
Yes
|
| QA Owner: |
Sangavi Gururaghavendran
|
| Resolved by: |
Sangavi Gururaghavendran
|
| Participants: |
BJ Jeong and Sangavi Gururaghavendran
|
| JDK: |
Sun 1.6.x
|
|
All
|
Comments
|
|
Sort Order:
|
|
FLEXDMV-1466. Fixed in the internal builds.