Actually this bug seems to occur when the empty span is *not* removed.
Thanks for taking a look!

On 13 April 2016 at 12:53, Harbs <harbs.li...@gmail.com> wrote:
> I think TLF is more aggressive than it used to be in removing empty spans.
>
> I’ll try to look into this when I find the time.
>
> On Apr 13, 2016, at 1:22 PM, Mihai Chira <mihai.ch...@gmail.com> wrote:
>
>> Hey guys, I feel I've done as much as I can on this ticket to pave the
>> way for someone with more TLF knowledge to hopefully have an easy time
>> understanding and fixing it. Do any of you have time to take a look?
>> Many thanks!
>>
>> On 13 April 2016 at 11:50, Mihai Chira (JIRA) <j...@apache.org> wrote:
>>>
>>>    [ 
>>> https://issues.apache.org/jira/browse/FLEX-35078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15238824#comment-15238824
>>>  ]
>>>
>>> Mihai Chira edited comment on FLEX-35078 at 4/13/16 9:49 AM:
>>> -------------------------------------------------------------
>>>
>>> * in {{TextFlowLine.makeSelectionBlocks()}} 
>>> {{textLine.getAtomIndexAtCharIndex(27) == -1}} although 
>>> {{textLine.rawTextLength == 37}}
>>> * after validation (see the *Workaround* in the ticket description) the 
>>> text flow
>>> {noformat}
>>> <TextFlow whiteSpaceCollapse="preserve" version="3.0.0" 
>>> xmlns="http://ns.adobe.com/textLayout/2008";><p><span 
>>> fontSize="15"></span><span>The bug is in the function 
>>> TextFlowLine.adjustEndElementForBidi</span></p></TextFlow>
>>> {noformat} is converted into {noformat}
>>> <TextFlow whiteSpaceCollapse="preserve" version="3.0.0" 
>>> xmlns="http://ns.adobe.com/textLayout/2008";><p><span>The bug is in the 
>>> function 
>>> TextFlowLine.adjustEndElementForBidi</span></p></TextFlow>{noformat}
>>> (where the empty span is where the bullet text used to be) and the fatal 
>>> isn't thrown.
>>>
>>>
>>> was (Author: evolverine):
>>> * in {{TextFlowLine.makeSelectionBlocks()}} 
>>> {{textLine.getAtomIndexAtCharIndex(27) == -1}} although 
>>> {{textLine.rawTextLength == 37}}
>>> * after validation (see the *Workaround* in the ticket description) the 
>>> text flow
>>> {noformat}
>>> <TextFlow whiteSpaceCollapse="preserve" version="3.0.0" 
>>> xmlns="http://ns.adobe.com/textLayout/2008";><p><span 
>>> fontSize="15"></span><span>The bug is in the function 
>>> TextFlowLine.adjustEndElementForBidi</span></p></TextFlow>
>>> {noformat} is converted into {noformat}
>>> <TextFlow whiteSpaceCollapse="preserve" version="3.0.0" 
>>> xmlns="http://ns.adobe.com/textLayout/2008";><p><span>The bug is in the 
>>> function 
>>> TextFlowLine.adjustEndElementForBidi</span></p></TextFlow>{noformat}
>>> where the empty span is where the bullet text used to be.
>>>
>>>> Fatal when SelectionManager tries to reapply selection onto changed 
>>>> textFlow
>>>> ----------------------------------------------------------------------------
>>>>
>>>>                Key: FLEX-35078
>>>>                URL: https://issues.apache.org/jira/browse/FLEX-35078
>>>>            Project: Apache Flex
>>>>         Issue Type: Bug
>>>>         Components: Spark: RichEditableText, TLF
>>>>   Affects Versions: Apache Flex 4.15.0
>>>>           Reporter: Mihai Chira
>>>>           Assignee: Mihai Chira
>>>>            Fix For: Apache Flex 4.16.0
>>>>
>>>>        Attachments: Main.mxml
>>>>
>>>>
>>>> *Steps to reproduce*:
>>>> * run the attached mxml
>>>> * click on the "Bullets" button
>>>> *Expected results*: the bullet text is removed from the paragraph and the 
>>>> RichEditableText is focused.
>>>> *Actual results*: the bullet text is removed, but when the focus moves 
>>>> back to the RichEditableText component, the following fatal is thrown:
>>>> {noformat}
>>>> [Fault] exception, information=RangeError: Error #2006: The supplied index 
>>>> is out of bounds.
>>>> at flash.text.engine::TextLine/getAtomBidiLevel()
>>>> at 
>>>> flashx.textLayout.compose::TextFlowLine/adjustEndElementForBidi()[C:\Users\evolverine\Adobe
>>>>  Flash Builder 
>>>> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:2499]
>>>> at 
>>>> flashx.textLayout.compose::TextFlowLine/makeSelectionBlocks()[C:\Users\evolverine\Adobe
>>>>  Flash Builder 
>>>> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:1812]
>>>> at 
>>>> flashx.textLayout.compose::TextFlowLine/http://ns.adobe.com/textLayout/internal/2008::calculateSelectionBounds()[C:\Users\evolverine\Adobe
>>>>  Flash Builder 
>>>> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:1517]
>>>> at 
>>>> flashx.textLayout.compose::TextFlowLine/getSelectionShapesCacheEntry()[C:\Users\evolverine\Adobe
>>>>  Flash Builder 
>>>> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:1428]
>>>> at 
>>>> flashx.textLayout.compose::TextFlowLine/createSelectionShapes()[C:\Users\evolverine\Adobe
>>>>  Flash Builder 
>>>> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:1664]
>>>> at 
>>>> flashx.textLayout.compose::TextFlowLine/http://ns.adobe.com/textLayout/internal/2008::hiliteBlockSelection()[C:\Users\evolverine\Adobe
>>>>  Flash Builder 
>>>> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:2196]
>>>> at 
>>>> flashx.textLayout.container::ContainerController/http://ns.adobe.com/textLayout/internal/2008::addSelectionShapes()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\container\ContainerController.as:2920]
>>>> at 
>>>> flashx.textLayout.edit::SelectionManager/addSelectionShapes()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\edit\SelectionManager.as:1240]
>>>> at 
>>>> flashx.textLayout.edit::SelectionManager/refreshSelection()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\edit\SelectionManager.as:1272]
>>>> at 
>>>> flashx.textLayout.edit::SelectionManager/http://ns.adobe.com/textLayout/internal/2008::setSelectionFormatState()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\edit\SelectionManager.as:896]
>>>> at 
>>>> flashx.textLayout.edit::SelectionManager/focusInHandler()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\edit\SelectionManager.as:2279]
>>>> at 
>>>> flashx.textLayout.container::ContainerController/focusInHandler()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\container\ContainerController.as:2452]
>>>> at 
>>>> flashx.textLayout.container::TextContainerManager/focusInHandler()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\container\TextContainerManager.as:2089]
>>>> at 
>>>> spark.components.supportClasses::RichEditableTextContainerManager/focusInHandler()[C:\Users\evolverine\workspace\flex-sdk\frameworks\projects\spark\src\spark\components\supportClasses\RichEditableTextContainerManager.as:642]
>>>> at 
>>>> flashx.textLayout.container::ContainerController/http://ns.adobe.com/textLayout/internal/2008::requiredFocusInHandler()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\container\ContainerController.as:2470]
>>>> at flash.display::Stage/set focus()
>>>> at 
>>>> mx.core::UIComponent/setFocus()[C:\Users\evolverine\workspace\flex-sdk\frameworks\projects\framework\src\mx\core\UIComponent.as:10437]
>>>> at 
>>>> spark.components::RichEditableText/setFocus()[C:\Users\evolverine\workspace\flex-sdk\frameworks\projects\spark\src\spark\components\RichEditableText.as:3122]
>>>> at Main/bulletList_clickHandler()[C:\Users\evolverine\Adobe Flash Builder 
>>>> 4.7\FLEX-33058\src\Main.mxml:39]
>>>> at Main/__bulletsButton_click()[C:\Users\evolverine\Adobe Flash Builder 
>>>> 4.7\FLEX-33058\src\Main.mxml:71]
>>>> {noformat}
>>>> *Workaround*: call {{display.validateNow();}} before 
>>>> {{display.setFocus();}}
>>>> *Notes*:
>>>> * couldn't reproduce the bug with only one line; we seem to need the text 
>>>> to wrap around the second line.
>>>> * couldn't reproduce the bug if the span representing the bullet text 
>>>> wasn't set to an explicit font size (of any value).
>>>> * could reproduce the bug with many random (non-empty) strings for the 
>>>> bullet text, including one space.
>>>> * could reproduce the bug when I set the fontWeight instead of the 
>>>> fontSize on the bullet span. It seems that anything that will get the 
>>>> bullet placed into a separate span rather than merged with the span 
>>>> containing the main text will reproduce the bug.
>>>
>>>
>>>
>>> --
>>> This message was sent by Atlassian JIRA
>>> (v6.3.4#6332)
>

Reply via email to