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-34649) Fatal errors in TextBlock after pasting text of specific length in TextArea
Date Tue, 02 Dec 2014 13:14:14 GMT

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

Mihai Chira edited comment on FLEX-34649 at 12/2/14 1:13 PM:
-------------------------------------------------------------

I attached some trace outputs from pasting a text which doesn't reproduce the bug, and from
the one which does. (For more info about the trace format, see traffic-debug-tools on github.)
If you do a diff, you can see that although the resulting text in the TextArea of the AIR
application has the same number of lines (3 lines with text, and two empty new lines), the
construction is done differently in BaseCompose.composeBlockElement():

In the *no* bug scenario:
# After the paste, EditManager.pasteTextScrap() calls [many functions] which end up calling
FlowElement.shallowCopy(), which creates three instances of ParagraphElement ("ParagraphElement-3",
"ParagraphElement-4" and "ParagraphElement-5")
# among others, BaseCompose.composeBlockElement() calls BaseCompose.composeParagraphElement(ParagraphElement-4)
## in turn, this calls ParagraphElement-4.createTextBlock() and
## ParagraphElement-4.releaseTextBlock()

Everything is identical in the buggy scenario, except the last step, where ParagraphElement-4.releaseTextBlock()
doesn't happen. I don't understand the algorithm in BaseCompose.composeParagraphElement()
around the okToRelease variable which controls this.

PS: there are other differences in the diff between the buggy and no-bug scenarios; the one
above is just the first one.


was (Author: evolverine):
I attached some trace outputs from pasting a text which doesn't reproduce the bug, and from
the one which does. (For more info about the trace format, see traffic-debug-tools on github.)
If you do a diff, you can see that although the resulting text in the TextArea of the AIR
application has the same number of lines (3 lines with text, and two empty new lines), the
construction is done differently in BaseCompose.composeBlockElement():

In the *no* bug scenario:
# After the paste, EditManager.pasteTextScrap() calls ... which calls FlowElement.shallowCopy(),
which creates three instances of ParagraphElement ("ParagraphElement-3", "ParagraphElement-4"
and "ParagraphElement-5")
# among others, BaseCompose.composeBlockElement() calls BaseCompose.composeParagraphElement(ParagraphElement-4)
## in turn, this calls ParagraphElement-4.createTextBlock() and
## ParagraphElement-4.releaseTextBlock()

Everything is identical in the buggy scenario, except the last step, where ParagraphElement-4.releaseTextBlock()
doesn't happen. I don't understand the algorithm in BaseCompose.composeParagraphElement()
around the okToRelease variable which controls this.

PS: there are other differences in the diff between the buggy and no-bug scenarios; the one
above is just the first one.

> Fatal errors in TextBlock after pasting text of specific length in TextArea
> ---------------------------------------------------------------------------
>
>                 Key: FLEX-34649
>                 URL: https://issues.apache.org/jira/browse/FLEX-34649
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Spark: TextArea
>    Affects Versions: Apache Flex 4.12.1
>            Reporter: Mihai Chira
>            Assignee: Mihai Chira
>              Labels: easytest
>         Attachments: FLEX-34649.ZIP, bug.txt, noBug.txt
>
>
> h2. Scenario 1
> *Steps to reproduce*:
> # Compile and run the attached project
> # Click on the TextArea and press SPACE, then LEFT
> # Paste this text, _including the empty line at the end_: {noformat}This sentence needs
to wrap with one or two characters lik: w
> {noformat}
> # Press DELETE
> *Desired behaviour*: the space is deleted without a fatal
> *Actual behaviour*: {noformat}TypeError: Error #1009: Cannot access a property or method
of a null object reference.
> at flashx.textLayout.elements::ParagraphElement/findNextAtomBoundary()[C:\Users\evolverine\Adobe
Flash Builder 4.7\FLEX-26478\src\flashx\textLayout\elements\ParagraphElement.as:576]
> at flashx.textLayout.utils::NavigationUtil$/nextAtomHelper()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/utils/NavigationUtil.as:93]
> at flashx.textLayout.utils::NavigationUtil$/doIncrement()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/utils/NavigationUtil.as:58]
> at flashx.textLayout.utils::NavigationUtil$/nextAtomPosition()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/utils/NavigationUtil.as:104]
> at flashx.textLayout.edit::EditManager/deleteNextCharacter()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/edit/EditManager.as:1273]
> at flashx.textLayout.edit::EditManager/keyDownHandler()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/edit/EditManager.as:371]
> at flashx.textLayout.container::ContainerController/keyDownHandler()[C:\Users\evolverine\Adobe
Flash Builder 4.7\FLEX-26478\src\flashx\textLayout\container\ContainerController.as:2539]
> at flashx.textLayout.container::TextContainerManager/keyDownHandler()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/container/TextContainerManager.as:1889]
> at spark.components.supportClasses::RichEditableTextContainerManager/keyDownHandler()[/Users/aharui/release4.13.0/frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as:665]
> {noformat}
> ----
> h2. Scenario 2
> *Steps to reproduce*:
> # Compile and run the attached project
> # Click on the TextArea
> # Paste this text: {noformat}:Boolean = tl.getAtomBidiLevel(currentAtomIndex)
> if{noformat}
> # Press LEFT / BACKSPACE
> *Desired behaviour*: the cursor moves left without an error / the last character ("f")
is deleted without an error.
> *Actual behaviour*: {noformat}TypeError: Error #1009: Cannot access a property or method
of a null object reference.
> at flashx.textLayout.elements::ParagraphElement/findPreviousAtomBoundary()[C:\Users\evolverine\Adobe
Flash Builder 4.7\FLEX-26478\src\flashx\textLayout\elements\ParagraphElement.as:493]
> at flashx.textLayout.utils::NavigationUtil$/previousAtomHelper()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/utils/NavigationUtil.as:70]
> at flashx.textLayout.utils::NavigationUtil$/doIncrement()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/utils/NavigationUtil.as:58]
> at flashx.textLayout.utils::NavigationUtil$/previousAtomPosition()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/utils/NavigationUtil.as:81]
> at flashx.textLayout.utils::NavigationUtil$/moveBackwardHelper()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/utils/NavigationUtil.as:229]
> at flashx.textLayout.utils::NavigationUtil$/previousCharacter()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/utils/NavigationUtil.as:292]
> at flashx.textLayout.edit::SelectionManager/handleLeftArrow()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/edit/SelectionManager.as:1640]
> at flashx.textLayout.edit::SelectionManager/handleKeyEvent()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/edit/SelectionManager.as:1807]
> at flashx.textLayout.edit::SelectionManager/keyDownHandler()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/edit/SelectionManager.as:1870]
> at flashx.textLayout.edit::EditManager/keyDownHandler()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/edit/EditManager.as:291]
> at flashx.textLayout.container::ContainerController/keyDownHandler()[C:\Users\evolverine\Adobe
Flash Builder 4.7\FLEX-26478\src\flashx\textLayout\container\ContainerController.as:2539]
> at flashx.textLayout.container::TextContainerManager/keyDownHandler()[/Users/aharui/git/flex/master/flex-tlf/textLayout/src/flashx/textLayout/container/TextContainerManager.as:1889]
> at spark.components.supportClasses::RichEditableTextContainerManager/keyDownHandler()[/Users/aharui/release4.13.0/frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as:665]
> {noformat}



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

Mime
View raw message