You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by hi...@apache.org on 2009/06/17 21:15:39 UTC
svn commit: r785760 - in /harmony/enhanced/classlib/trunk/modules/swing/src:
main/java/common/javax/swing/text/ test/api/java.injected/javax/swing/text/
Author: hindessm
Date: Wed Jun 17 19:15:38 2009
New Revision: 785760
URL: http://svn.apache.org/viewvc?rev=785760&view=rev
Log:
Applied patches from "[#HARMONY-1767] [classlib][swing]
javax.swing.text.ComponentView(Element) throws unexpected NullPointerException
on user's implementation".
Modified:
harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/ComponentView.java
harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/ComponentViewTest.java
harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/StyleConstantsTest.java
Modified: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/ComponentView.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/ComponentView.java?rev=785760&r1=785759&r2=785760&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/ComponentView.java (original)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/ComponentView.java Wed Jun 17 19:15:38 2009
@@ -182,7 +182,8 @@
}
protected Component createComponent() {
- return StyleConstants.getComponent(getAttributes());
+ final AttributeSet attrs = getAttributes();
+ return attrs == null ? null : StyleConstants.getComponent(attrs);
}
private void isAxisValid(final int axis) {
Modified: harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/ComponentViewTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/ComponentViewTest.java?rev=785760&r1=785759&r2=785760&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/ComponentViewTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/ComponentViewTest.java Wed Jun 17 19:15:38 2009
@@ -33,6 +33,10 @@
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.SwingTestCase;
+import javax.swing.text.Element;
+import javax.swing.text.PlainDocument;
+import javax.swing.text.PlainView;
+
public class ComponentViewTest extends SwingTestCase {
StyledDocument document;
@@ -649,6 +653,47 @@
}
}
+ public void testSetParent_View() {
+ // Regression test for HARMONY-1767
+ PlainDocument doc = new PlainDocument();
+ Element e = doc.getDefaultRootElement();
+ ComponentView obj = new ComponentView(new TestElement());
+ obj.setParent(new PlainView(e));
+ }
+
+ private static class TestElement implements Element {
+ public boolean isLeaf() {
+ return false;
+ }
+ public Element getElement(int index) {
+ return null;
+ }
+ public int getElementCount() {
+ return 0;
+ }
+ public int getElementIndex(int offset) {
+ return 0;
+ }
+ public int getEndOffset() {
+ return 0;
+ }
+ public int getStartOffset() {
+ return 0;
+ }
+ public AttributeSet getAttributes() {
+ return null;
+ }
+ public String getName() {
+ return "AA";
+ }
+ public Element getParentElement() {
+ return null;
+ }
+ public Document getDocument() {
+ return null;
+ }
+ }
+
private void checkBounds(final int x, final int y, final int height, final Shape box) {
Rectangle bounds = box.getBounds();
assertEquals(x, bounds.x);
@@ -688,4 +733,4 @@
assertEquals(position, componentElement.getStartOffset());
}
}
-}
\ No newline at end of file
+}
Modified: harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/StyleConstantsTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/StyleConstantsTest.java?rev=785760&r1=785759&r2=785760&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/StyleConstantsTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java.injected/javax/swing/text/StyleConstantsTest.java Wed Jun 17 19:15:38 2009
@@ -434,6 +434,16 @@
assertEquals(val, StyleConstants.getComponent(attr));
}
+ public void testGetComponent_Null() {
+ // Regression test for HARMONY-1767
+ try {
+ StyleConstants.getComponent(null);
+ fail("NullPointerException should be thrown");
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
public void testSetComponent() {
attr.removeAttributes(attr);
Component val = new JLabel("test component");