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]

Re: FYI: GapContent test fix

Hi Roman,

The API docs describe the first parameter (where) as:

|"where| - the starting position >= 0, < length()"

...and in this particular test I've used length(), so I'd expect the BadLocationException to be thrown. To back this up further, the exact same test on StringContent *does* throw the exception. I didn't hear back from Sun yet on the bug report (apart from the automated response), but I do expect that they'll accept it and fix it eventually.

Anyway, I'll let you know when I hear from them.



Roman Kennke wrote:

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]