flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mihai Chira (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (FLEX-34807) TLF - EditManager - TextFlowEdit -insertTextScrap
Date Wed, 09 Sep 2015 16:24:46 GMT

    [ https://issues.apache.org/jira/browse/FLEX-34807?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14737128#comment-14737128
] 

Mihai Chira edited comment on FLEX-34807 at 9/9/15 4:24 PM:
------------------------------------------------------------

*Investigation update*: this bug was (highly likely) introduced by commit [33df98ab9d2c69c84d4de6ab2ae969f9c5f93e35|https://fisheye6.atlassian.com/changelog/flex-tlf?cs=33df98ab9d2c69c84d4de6ab2ae969f9c5f93e35]
on the 5th Oct 2014 by [~harbs]. If I comment out the last if clause of {{ParagraphElement.ensureTerminatorAfterReplace()}},
which was added by that commit (and subsequently edited into its current form), the bug disappears.
That's because the algorithm in {{TextFlowEdit.insertTextScrap()}} requires at least one FlowLeafElement
before which to add the pasted contents, and before this bug was introduced, that used to
be {{ParagraphElement.terminatorSpan}}. But since the commit the terminatorSpan has been merged
into the previous span.
This seems to imply that there is an expectation in {{TextFlowEdit.insertTextScrap()}} that
{{destinationLeaf}} should never be null (despite the null check in the line {code}insertPosition
= destinationLeaf ? destinationLeaf.getAbsoluteStart() : textFlow.textLength - 1;{code}.
I imagine that just commenting out the code is not a viable solution, as it will break other
functionality. So we'll need either [~harbs] or [~pete21] to throw in some thoughts, if they
have the time. Much appreciated.


was (Author: evolverine):
Investigation update: this bug was (highly likely) introduced by commit [33df98ab9d2c69c84d4de6ab2ae969f9c5f93e35|https://fisheye6.atlassian.com/changelog/flex-tlf?cs=33df98ab9d2c69c84d4de6ab2ae969f9c5f93e35]
on the 5th Oct 2014 by [~harbs]. If I comment out the last if clause of {{ParagraphElement.ensureTerminatorAfterReplace()}},
which was added by that commit (and subsequently edited into its current form), the bug disappears.
That's because the algorithm in {{TextFlowEdit.insertTextScrap()}} requires at least one FlowLeafElement
before which to add the pasted contents, and before this bug was introduced, that used to
be {{ParagraphElement.terminatorSpan}}. But since the commit the terminatorSpan has been merged
into the previous span.
This seems to imply that there is an expectation in {{TextFlowEdit.insertTextScrap()}} that
{{destinationLeaf}} should never be null (despite the null check in the line {code}insertPosition
= destinationLeaf ? destinationLeaf.getAbsoluteStart() : textFlow.textLength - 1;{code}.
I imagine that just commenting out the code is not a viable solution, as it will break other
functionality. So we'll need either [~harbs] or [~pete21] to throw in some thoughts, if they
have the time. Much appreciated.

> TLF - EditManager - TextFlowEdit -insertTextScrap
> -------------------------------------------------
>
>                 Key: FLEX-34807
>                 URL: https://issues.apache.org/jira/browse/FLEX-34807
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Spark: RichEditableText
>    Affects Versions: Apache Flex 4.12.0, Apache Flex 4.13.0, Apache Flex 4.14.0
>            Reporter: Robbyn Gerhardt
>            Assignee: Mihai Chira
>              Labels: editmanager, richeditabletext, tlf
>         Attachments: Bildschirmfoto 2015-03-19 um 15.28.19.png, Bildschirmfoto 2015-03-20
um 09.06.47.png, TextEditorTest.air, TextEditorTest.fxp
>
>
> 1. Copy Formatted text from RichEditableText Editor, see Image
> 2. Insert Formatted text from the clipboard with Ctrl + V in the editor. Then comes the
error.
> TypeError: Error #1009: Cannot access a property or method of a null object reference.
> 	at flashx.textLayout.edit::TextFlowEdit$/insertTextScrap()[/Users/erik/Documents/ApacheFlex/git/flex-tlf/textLayout/src/flashx/textLayout/edit/TextFlowEdit.as:244]
> 	at flashx.textLayout.operations::PasteOperation/doOperation()[/Users/erik/Documents/ApacheFlex/git/flex-tlf/textLayout/src/flashx/textLayout/operations/PasteOperation.as:102]
> 	at flashx.textLayout.edit::EditManager/doInternal()[/Users/erik/Documents/ApacheFlex/git/flex-tlf/textLayout/src/flashx/textLayout/edit/EditManager.as:767]
> 	at flashx.textLayout.edit::EditManager/doOperation()[/Users/erik/Documents/ApacheFlex/git/flex-tlf/textLayout/src/flashx/textLayout/edit/EditManager.as:647]
> 	at flashx.textLayout.edit::EditManager/pasteTextScrap()[/Users/erik/Documents/ApacheFlex/git/flex-tlf/textLayout/src/flashx/textLayout/edit/EditManager.as:1806]
> 	at flashx.textLayout.edit::EditManager/editHandler()[/Users/erik/Documents/ApacheFlex/git/flex-tlf/textLayout/src/flashx/textLayout/edit/EditManager.as:270]
> 	at flashx.textLayout.container::ContainerController/editHandler()[/Users/erik/Documents/ApacheFlex/git/flex-tlf/textLayout/src/flashx/textLayout/container/ContainerController.as:2739]
> 	at flashx.textLayout.container::TextContainerManager/editHandler()[/Users/erik/Documents/ApacheFlex/git/flex-tlf/textLayout/src/flashx/textLayout/container/TextContainerManager.as:1876]
> 	at flash.display::NativeMenuItem/select()
> 	at flash.display::NativeMenuItem/performKeyEquivalent()
> 	at flash.display::NativeMenu/_menuItemPerformKeyEquivalent()
> 	at flash.display::NativeMenu/performKeyEquivalent()
> 	at flash.display::NativeMenuItem/_menuPerformKeyEquivalent()
> 	at flash.display::NativeMenuItem/performKeyEquivalent()
> 	at flash.display::NativeMenu/_menuItemPerformKeyEquivalent()
> 	at flash.display::NativeMenu/performKeyEquivalent()
> 	at flash.desktop::NativeApplication/_menuPerformKeyEquivalent()
> 	at flash.desktop::NativeApplication/_onKeyDownCapture()



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message