Tyler Hansen created FLEX-33295:
-----------------------------------
Summary: Flash player will go into an infinite loop on certain
cases of trying to wrap text.
Key: FLEX-33295
URL: https://issues.apache.org/jira/browse/FLEX-33295
Project: Apache Flex
Issue Type: Bug
Components: Spark: TextArea
Affects Versions: Adobe Flex SDK 4.6 (Release)
Environment: Win 7x64, Win 8x64
Flash Player 11.4, Flash Player 11.5
Mac OS works fine.
Reporter: Tyler Hansen
Setting text on a spark textarea depending on how the word wrap lays, will
crash flashplayer on windows only with this error:
Error: Error #1502: A script has executed for longer than the default timeout
period of 15 seconds.
at
flashx.textLayout.elements::FlowElement/getAbsoluteStart()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\elements\FlowElement.as:888]
at flashx.textLayout.compose::TextFlowLine/get
location()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\TextFlowLine.as:351]
at flashx.textLayout.compose::TextFlowLine/get
spaceBefore()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\TextFlowLine.as:504]
at
flashx.textLayout.compose::BaseCompose/fitLineToParcel()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\BaseCompose.as:1613]
at
flashx.textLayout.compose::ComposeState/composeNextLine()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\ComposeState.as:399]
at
flashx.textLayout.compose::BaseCompose/composeParagraphElementIntoLines()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\BaseCompose.as:791]
at
flashx.textLayout.compose::BaseCompose/composeParagraphElement()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\BaseCompose.as:688]
at
flashx.textLayout.compose::ComposeState/composeParagraphElement()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\ComposeState.as:316]
at
flashx.textLayout.compose::BaseCompose/composeBlockElement()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\BaseCompose.as:358]
at
flashx.textLayout.compose::BaseCompose/composeInternal()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\BaseCompose.as:673]
at
flashx.textLayout.compose::ComposeState/composeInternal()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\ComposeState.as:143]
at
flashx.textLayout.compose::BaseCompose/composeTextFlow()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\BaseCompose.as:458]
at
flashx.textLayout.compose::ComposeState/composeTextFlow()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\ComposeState.as:106]
at
flashx.textLayout.compose::StandardFlowComposer/http://ns.adobe.com/textLayout/internal/2008::callTheComposer()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\StandardFlowComposer.as:676]
at
flashx.textLayout.compose::StandardFlowComposer/internalCompose()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\StandardFlowComposer.as:760]
at
flashx.textLayout.compose::StandardFlowComposer/updateToController()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\StandardFlowComposer.as:556]
at
flashx.textLayout.compose::StandardFlowComposer/updateAllControllers()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\compose\StandardFlowComposer.as:517]
at
flashx.textLayout.container::TextContainerManager/updateContainer()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\container\TextContainerManager.as:1343]
at
spark.components::RichEditableText/updateDisplayList()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\RichEditableText.as:2974]
at
mx.core::UIComponent/validateDisplayList()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:8999]
at
mx.managers::LayoutManager/validateDisplayList()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:736]
at
mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:819]
at
mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1180]
I have been able to recreate this with a real use client case, as well as some
lorem ipsum text of the same length(but not every time since the lorem ipsum
text is randomly generated). Removing the first two words in the text fixes
the issue, however still remains when removing the same amount of characters at
the end of the text instead. This leads me to believe this is a random text
wrapping issue.
We tried testing on a mac and everything ran as expected, it appears to be a
windows only issue.
Here is some simple code to reproduce the issue:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
creationComplete="application1_creationCompleteHandler(event)">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects)
here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
[Bindable]private var testText:String = '';
protected function
application1_creationCompleteHandler(event:FlexEvent):void
{
testText = "The learning tasks and activities
are aligned with the instructional outcomes and are designed to challenge
student thinking, resulting in active intellectual engagement by students and
teacher scaffolding. The pacing of the lesson is appropriate providing most
students the time needed to be intellectually engaged.Ms. Pruden begins the
math and Reading lesson by strategically placing her chair between two rows of
desks and methodically assisting one student then another. She first assists a
student to her left (Artice) on simple addition, such as 1 + 4 = 5; then she
turns to her right to work with another student (Fode) on reading the numbers
of his address. She methodically moves her chair down the middle of the two
rows to work with the other remaining students. One student (Dexter) works
independently on a calendar; he places the word 'cloudy' on today's date:
October 25. He is getting his assignments from his individual basket of daily
tasks. Ms. Pruden then worked with Aujana who isworking on a ruber puzzle of
the alphabet. She asks her t repeat after her as she points to each letter and
names each letter of the alphabet. Ms. Pruden worked back and forth with Fode,
Artice and Auana. Ms. Gordon, her teacher assistant, worked with Dejuan as he
counts dots that are pasted on a paper dinosaur. After 45 minutes, Ms. Pruden
stops and directs all of the students to join her at the semi-circle table to
work on consonant sound for the letter 'C.' The teacher passes out a picture of
a cat, and emphasizes the 'KK' sound as she hands the cat to each student.
Then, sheallows time for students to color their picture. Then she passes out a
picture of cupcake, and follows the same procedure."
}
]]>
</fx:Script>
<s:TextArea width="729" height="200" text="{testText}"/>
</s:Application>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira