[
https://issues.apache.org/jira/browse/PIVOT-954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14067040#comment-14067040
]
Roger Whitcomb commented on PIVOT-954:
--------------------------------------
Here is the diff that fixes the problem:
Index: wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java
===================================================================
--- wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java (revision 1611499)
+++ wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java (working copy)
@@ -966,11 +966,17 @@
int rowLength = textArea.getRowLength(start);
if (start - rowStart >= rowLength) {
start = rowStart + rowLength - 1;
+ if (start < 0) {
+ return;
+ }
char ch = textArea.getCharacterAt(start);
if (ch == '\r' || ch == '\n') {
start--;
}
}
+ if (start < 0) {
+ return;
+ }
char ch = textArea.getCharacterAt(start);
int selectionStart = start;
int selectionLength = 1;
> Double click in empty TextArea causes exception
> -----------------------------------------------
>
> Key: PIVOT-954
> URL: https://issues.apache.org/jira/browse/PIVOT-954
> Project: Pivot
> Issue Type: Bug
> Components: wtk
> Affects Versions: 2.0.4, 2.1
> Environment: All
> Reporter: Roger Whitcomb
> Assignee: Roger Whitcomb
> Priority: Minor
> Labels: doubleclick, textarea
> Fix For: 2.1, 2.0.5
>
>
> Start with an empty TextArea, then double click anywhere (which normally
> would select the current word), there will be basically an assertion error
> from here:
> java.lang.IndexOutOfBoundsException: index: index (-1) < min (0)
> at
> org.apache.pivot.wtk.Component.indexBoundsCheck(Component.java:2861)
> at org.apache.pivot.wtk.TextArea.getCharacterAt(TextArea.java:904)
> at
> org.apache.pivot.wtk.skin.TextAreaSkin.selectSpan(TextAreaSkin.java:969)
> at
> org.apache.pivot.wtk.skin.TextAreaSkin.mouseClick(TextAreaSkin.java:1023)
> The underlying problem is trying to get the character at offset -1 in the
> document.
> It could also occur in any document in which the first line is empty, and
> trying to double click there (with a slightly different stack trace):
> java.lang.IndexOutOfBoundsException: index: index (-1) < min (0)
> at
> org.apache.pivot.wtk.Component.indexBoundsCheck(Component.java:2861)
> at org.apache.pivot.wtk.TextArea.getCharacterAt(TextArea.java:904)
> at
> org.apache.pivot.wtk.skin.TextAreaSkin.selectSpan(TextAreaSkin.java:974)
> at
> org.apache.pivot.wtk.skin.TextAreaSkin.mouseClick(TextAreaSkin.java:1023)
> (This is from the "trunk" version).
--
This message was sent by Atlassian JIRA
(v6.2#6252)