Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 81890 invoked from network); 17 Jan 2007 08:22:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 Jan 2007 08:22:42 -0000 Received: (qmail 89325 invoked by uid 500); 17 Jan 2007 08:22:48 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 89304 invoked by uid 500); 17 Jan 2007 08:22:48 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 89295 invoked by uid 99); 17 Jan 2007 08:22:48 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Jan 2007 00:22:48 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Jan 2007 00:22:41 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 84E161A981A; Wed, 17 Jan 2007 00:21:37 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r496958 - in /harmony/enhanced/classlib/trunk/modules/swing/src: main/java/common/javax/swing/text/ test/api/java/common/javax/swing/text/ Date: Wed, 17 Jan 2007 08:21:37 -0000 To: commits@harmony.apache.org From: hindessm@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070117082137.84E161A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: hindessm Date: Wed Jan 17 00:21:35 2007 New Revision: 496958 URL: http://svn.apache.org/viewvc?view=rev&rev=496958 Log: Applying patches from "[#HARMONY-2777] [classlib][swing] j.s.text.AbstractDocument.BranchElement.get{Start, End}Offset throw ArrayIndexOutOfBoundsException rather than NPE" (again). Included the additional fix to AbstractDocumentTest.java. Modified: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocumentTest.java harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocument_BranchElementTest.java Modified: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java?view=diff&rev=496958&r1=496957&r2=496958 ============================================================================== --- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java (original) +++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java Wed Jan 17 00:21:35 2007 @@ -401,6 +401,9 @@ @Override public int getEndOffset() { + if (elements.length == 0) { + throw new NullPointerException(); + } return elements[elements.length - 1].getEndOffset(); } @@ -412,6 +415,9 @@ @Override public int getStartOffset() { + if (elements.length == 0) { + throw new NullPointerException(); + } return elements[0].getStartOffset(); } Modified: harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocumentTest.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocumentTest.java?view=diff&rev=496958&r1=496957&r2=496958 ============================================================================== --- harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocumentTest.java (original) +++ harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocumentTest.java Wed Jan 17 00:21:35 2007 @@ -159,33 +159,20 @@ assertNull(branch.getElement(0)); assertNull(branch.getElement(1)); assertEquals(0, branch.getElementCount()); + // Since this branch element has no children yet, it has no start and // end offsets. Thus calling get{Start,End}Offset on an empty branch // element causes the exception being thrown. - if (BasicSwingTestCase.isHarmony()) { - // Our implementation - try { - assertEquals(0, branch.getStartOffset()); - fail("getStartOffset on an empty BranchElement " + "causes exception"); - } catch (ArrayIndexOutOfBoundsException e) { - } - try { - assertEquals(1, branch.getEndOffset()); - fail("getEndOffset on an empty BranchElement causes exception"); - } catch (ArrayIndexOutOfBoundsException e) { - } - } else { - // Reference implementation - try { - assertEquals(0, branch.getStartOffset()); - fail("getStartOffset on an empty BranchElement " + "causes exception"); - } catch (NullPointerException e) { - } - try { - assertEquals(1, branch.getEndOffset()); - fail("getEndOffset on an empty BranchElement causes exception"); - } catch (ArrayIndexOutOfBoundsException e) { - } + try { + assertEquals(0, branch.getStartOffset()); + fail("getStartOffset is expected to throw NullPointerException"); + } catch (NullPointerException e) { + } + + try { + assertEquals(1, branch.getEndOffset()); + fail("getEndOffset is expected to throw NullPointerException"); + } catch (NullPointerException e) { } } Modified: harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocument_BranchElementTest.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocument_BranchElementTest.java?view=diff&rev=496958&r1=496957&r2=496958 ============================================================================== --- harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocument_BranchElementTest.java (original) +++ harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/AbstractDocument_BranchElementTest.java Wed Jan 17 00:21:35 2007 @@ -243,9 +243,31 @@ assertEquals(0, par.getStartOffset()); } + // Regression for HARMONY-2777 + public void testGetStartOffsetNoChildren() { + par = doc.new BranchElement(null, null); + try { + par.getStartOffset(); + fail("NullPointerException is expected"); + } catch (NullPointerException e) { + // expected + } + } + public void testGetEndOffset() { assertEquals(15, bidi.getEndOffset()); assertEquals(15, par.getEndOffset()); + } + + // Regression for HARMONY-2777 + public void testGetEndOffsetNoChildren() { + par = doc.new BranchElement(null, null); + try { + par.getEndOffset(); + fail("NullPointerException is expected"); + } catch (NullPointerException e) { + // expected + } } public void testGetElementCount() {