[
https://issues.apache.org/jira/browse/FLEX-34098?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Shigeru Nakagaki updated FLEX-34098:
------------------------------------
Priority: Critical (was: Major)
Description:
Case 1
Step 1. Input "𣘺" to s:TextInput
Step 2. delete string of [Step 1] by DELETE/BACKSPACE key
An RTE happens like below
RangeError: Invalid splitting of a surrogate pair
at flashx.textLayout.elements::SpanElement/replaceText()
at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
at
flashx.textLayout.edit::TextFlowEdit$/http://ns.adobe.com/textLayout/internal/2008::deleteRange()
at flashx.textLayout.edit::ModelEdit$/deleteText()
at flashx.textLayout.operations::DeleteTextOperation/doOperation()
at flashx.textLayout.edit::EditManager/doInternal()
at flashx.textLayout.edit::EditManager/doOperation()
at flashx.textLayout.edit::EditManager/deletePreviousCharacter()
at flashx.textLayout.edit::EditManager/keyDownHandler()
at flashx.textLayout.container::ContainerController/keyDownHandler()
at flashx.textLayout.container::TextContainerManager/keyDownHandler()
at
spark.components.supportClasses::RichEditableTextContainerManager/keyDownHandler()
Case 2
Step 1. Input "𣘺" to s:TextInput
Step 2. copy this string : "A"
Step 3. select string of [Step 1]
Step 4. press [Ctrl + V]
Two RTE happen like below
RangeError: Invalid splitting of a surrogate pair
at flashx.textLayout.elements::SpanElement/replaceText()
at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
at
flashx.textLayout.edit::TextFlowEdit$/http://ns.adobe.com/textLayout/internal/2008::deleteRange()
at flashx.textLayout.edit::ModelEdit$/deleteText()
at flashx.textLayout.operations::DeleteTextOperation/doOperation()
at flashx.textLayout.operations::InsertTextOperation/doDelete()
at flashx.textLayout.operations::InsertTextOperation/doInternal()
at flashx.textLayout.operations::InsertTextOperation/doOperation()
at flashx.textLayout.edit::EditManager/doInternal()
at flashx.textLayout.edit::EditManager/doOperation()
at flashx.textLayout.edit::EditManager/flushPendingOperations()
at flashx.textLayout.edit::EditManager/insertText()
at spark.components::RichEditableText/handlePasteOperation()
at
spark.components::RichEditableText/textContainerManager_flowOperationEndHandler()
at flash.events::EventDispatcher/dispatchEvent()
at flashx.textLayout.container::TextContainerManager/dispatchEvent()
at flash.events::EventDispatcher/dispatchEvent()
at flashx.textLayout.elements::TextFlow/dispatchEvent()
at flashx.textLayout.edit::EditManager/doInternal()
at flashx.textLayout.edit::EditManager/doOperation()
at flashx.textLayout.edit::EditManager/pasteTextScrap()
at flashx.textLayout.edit::EditManager/editHandler()
at flashx.textLayout.container::ContainerController/editHandler()
at flashx.textLayout.container::TextContainerManager/editHandler()
at flash.desktop::NativeApplication/_onKeyDownBubble()
RangeError: Invalid splitting of a surrogate pair
at flashx.textLayout.elements::SpanElement/replaceText()
at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
at
flashx.textLayout.edit::TextFlowEdit$/http://ns.adobe.com/textLayout/internal/2008::deleteRange()
at flashx.textLayout.edit::ModelEdit$/deleteText()
at flashx.textLayout.operations::DeleteTextOperation/doOperation()
at flashx.textLayout.operations::PasteOperation/doOperation()
at flashx.textLayout.edit::EditManager/doInternal()
at flashx.textLayout.edit::EditManager/doOperation()
at flashx.textLayout.edit::EditManager/pasteTextScrap()
at flashx.textLayout.edit::EditManager/editHandler()
at flashx.textLayout.container::ContainerController/editHandler()
at flashx.textLayout.container::TextContainerManager/editHandler()
at flash.desktop::NativeApplication/_onKeyDownBubble()
was:
Step 1. Input "𣘺" to s:TextInput
Step 2. copy this string : "A"
Step 3. select string of [Step 1]
Step 4. press [Ctrl + V]
The string of [Step 1] is a Surrogate-Pair string in Japanese.
And RTE is below.
RangeError: Invalid splitting of a surrogate pair
at flashx.textLayout.elements::SpanElement/replaceText()
at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
at
flashx.textLayout.edit::TextFlowEdit$/http://ns.adobe.com/textLayout/internal/2008::deleteRange()
at flashx.textLayout.edit::ModelEdit$/deleteText()
at flashx.textLayout.operations::DeleteTextOperation/doOperation()
at flashx.textLayout.edit::EditManager/doInternal()
at flashx.textLayout.edit::EditManager/doOperation()
at flashx.textLayout.edit::EditManager/deletePreviousCharacter()
at flashx.textLayout.edit::EditManager/keyDownHandler()
at flashx.textLayout.container::ContainerController/keyDownHandler()
at flashx.textLayout.container::TextContainerManager/keyDownHandler()
at
spark.components.supportClasses::RichEditableTextContainerManager/keyDownHandler()
> Replacing Surrogate-Pair string causes RTE in TLF
> -------------------------------------------------
>
> Key: FLEX-34098
> URL: https://issues.apache.org/jira/browse/FLEX-34098
> Project: Apache Flex
> Issue Type: Bug
> Components: Spark: RichEditableText
> Affects Versions: Apache Flex 4.11.0
> Environment: Windows 7 JP
> Reporter: Shigeru Nakagaki
> Priority: Critical
>
> Case 1
> Step 1. Input "𣘺" to s:TextInput
> Step 2. delete string of [Step 1] by DELETE/BACKSPACE key
> An RTE happens like below
> RangeError: Invalid splitting of a surrogate pair
> at flashx.textLayout.elements::SpanElement/replaceText()
> at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
> at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
> at
> flashx.textLayout.edit::TextFlowEdit$/http://ns.adobe.com/textLayout/internal/2008::deleteRange()
> at flashx.textLayout.edit::ModelEdit$/deleteText()
> at flashx.textLayout.operations::DeleteTextOperation/doOperation()
> at flashx.textLayout.edit::EditManager/doInternal()
> at flashx.textLayout.edit::EditManager/doOperation()
> at flashx.textLayout.edit::EditManager/deletePreviousCharacter()
> at flashx.textLayout.edit::EditManager/keyDownHandler()
> at flashx.textLayout.container::ContainerController/keyDownHandler()
> at flashx.textLayout.container::TextContainerManager/keyDownHandler()
> at
> spark.components.supportClasses::RichEditableTextContainerManager/keyDownHandler()
> Case 2
> Step 1. Input "𣘺" to s:TextInput
> Step 2. copy this string : "A"
> Step 3. select string of [Step 1]
> Step 4. press [Ctrl + V]
> Two RTE happen like below
> RangeError: Invalid splitting of a surrogate pair
> at flashx.textLayout.elements::SpanElement/replaceText()
> at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
> at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
> at
> flashx.textLayout.edit::TextFlowEdit$/http://ns.adobe.com/textLayout/internal/2008::deleteRange()
> at flashx.textLayout.edit::ModelEdit$/deleteText()
> at flashx.textLayout.operations::DeleteTextOperation/doOperation()
> at flashx.textLayout.operations::InsertTextOperation/doDelete()
> at flashx.textLayout.operations::InsertTextOperation/doInternal()
> at flashx.textLayout.operations::InsertTextOperation/doOperation()
> at flashx.textLayout.edit::EditManager/doInternal()
> at flashx.textLayout.edit::EditManager/doOperation()
> at flashx.textLayout.edit::EditManager/flushPendingOperations()
> at flashx.textLayout.edit::EditManager/insertText()
> at spark.components::RichEditableText/handlePasteOperation()
> at
> spark.components::RichEditableText/textContainerManager_flowOperationEndHandler()
> at flash.events::EventDispatcher/dispatchEvent()
> at flashx.textLayout.container::TextContainerManager/dispatchEvent()
> at flash.events::EventDispatcher/dispatchEvent()
> at flashx.textLayout.elements::TextFlow/dispatchEvent()
> at flashx.textLayout.edit::EditManager/doInternal()
> at flashx.textLayout.edit::EditManager/doOperation()
> at flashx.textLayout.edit::EditManager/pasteTextScrap()
> at flashx.textLayout.edit::EditManager/editHandler()
> at flashx.textLayout.container::ContainerController/editHandler()
> at flashx.textLayout.container::TextContainerManager/editHandler()
> at flash.desktop::NativeApplication/_onKeyDownBubble()
> RangeError: Invalid splitting of a surrogate pair
> at flashx.textLayout.elements::SpanElement/replaceText()
> at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
> at flashx.textLayout.edit::TextFlowEdit$/deleteRangeInternal()
> at
> flashx.textLayout.edit::TextFlowEdit$/http://ns.adobe.com/textLayout/internal/2008::deleteRange()
> at flashx.textLayout.edit::ModelEdit$/deleteText()
> at flashx.textLayout.operations::DeleteTextOperation/doOperation()
> at flashx.textLayout.operations::PasteOperation/doOperation()
> at flashx.textLayout.edit::EditManager/doInternal()
> at flashx.textLayout.edit::EditManager/doOperation()
> at flashx.textLayout.edit::EditManager/pasteTextScrap()
> at flashx.textLayout.edit::EditManager/editHandler()
> at flashx.textLayout.container::ContainerController/editHandler()
> at flashx.textLayout.container::TextContainerManager/editHandler()
> at flash.desktop::NativeApplication/_onKeyDownBubble()
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)