This is the mail archive of the mailing list for the Mauve project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

FYI: GapContent test fix

In the test for GapContent.insertString() we have tested the insertion of
a string at the index after the last character. There was a comment in
it saying that it is a bug in the JDK to not throw a
BadLocationException. However, AFAICS this is not the case. Suppose you
have the following content:


and now call GapContent.insertString(7, "XYZ"), then this will (quite
logically IMO) append this:


There is no need to throw a BadLocationException here. What might have
caused confusion here is the fact that the GapContent usually has a
trailing \n character, and normal insertion from an AbstractDocument
never inserts after the \n, but this is an implementation detail of the
document and not GapContent.

I checked in the appended patch to fix this problem.

2006-02-02  Roman Kennke  <>

        * gnu/testlet/javax/swing/text/GapContent/
        (testGeneral): Fixed boundary case to pass with the JDK.

Index: gnu/testlet/javax/swing/text/GapContent/
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/text/GapContent/,v
retrieving revision 1.3
diff -u -r1.3
--- gnu/testlet/javax/swing/text/GapContent/	24 Jan 2006 17:18:56 -0000	1.3
+++ gnu/testlet/javax/swing/text/GapContent/	2 Feb 2006 10:44:05 -0000
@@ -215,19 +215,17 @@
     harness.check(gc.length(), 7);
-    // insert at index of last character + 1 - the API docs say this should
-    // raise a BadLocationException, but JDK1.5.0_06 doesn't (I reported this
-    // to Sun as a bug in their implementation, will add a bug ID if one is assigned)
-    pass = false;
+    // Insert at index of last character + 1. This appends the new string to
+    // the existing string.
       gc.insertString(7, "XYZ");
     catch (BadLocationException e)
-      pass = true;
+      pass = false;
-    harness.check(pass);
+    harness.check(gc.length(), 10);
     // insert at index of last character + 2 
     pass = false;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]