You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2006/10/20 06:34:42 UTC
svn commit: r465985 - in
/incubator/harmony/enhanced/classlib/trunk/modules/swing/src:
main/java/common/javax/swing/plaf/basic/
test/api/java/common/javax/swing/plaf/basic/
test/api/java/common/javax/swing/text/
Author: mloenko
Date: Thu Oct 19 21:34:41 2006
New Revision: 465985
URL: http://svn.apache.org/viewvc?view=rev&rev=465985
Log:
applied patch from HARMONY-1475
[classlib][swing/text] Editing text in JTextComponent after updateUI() throws NPE
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicTextUI.java
incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/plaf/basic/BasicTextUIRTest.java
incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/JTextComponentRTest.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicTextUI.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicTextUI.java?view=diff&rev=465985&r1=465984&r2=465985
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicTextUI.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicTextUI.java Thu Oct 19 21:34:41 2006
@@ -929,6 +929,9 @@
uninstallDefaults();
uninstallKeyboardActions();
uninstallListeners();
+ ((AbstractDocument) component.getDocument())
+ .removeDocumentListener(listener);
+ component.removePropertyChangeListener(listener);
//DnD support
//java.awt.Component doesn't support DnD
Modified: incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/plaf/basic/BasicTextUIRTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/plaf/basic/BasicTextUIRTest.java?view=diff&rev=465985&r1=465984&r2=465985
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/plaf/basic/BasicTextUIRTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/plaf/basic/BasicTextUIRTest.java Thu Oct 19 21:34:41 2006
@@ -29,6 +29,7 @@
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.SwingTestCase;
+import javax.swing.text.AbstractDocument;
import javax.swing.text.JTextComponent;
public class BasicTextUIRTest extends SwingTestCase {
@@ -115,6 +116,17 @@
textComp.setEditable(true);
checkNotEditableFTK(textComp);
+ }
+
+ public void testUninstallUI() {
+ // Regression for HARMONY-1475
+ JTextComponent textComp = new JTextField();
+ AbstractDocument doc = ((AbstractDocument) textComp.getDocument());
+ assertTrue("listeners installed",
+ doc.getDocumentListeners().length > 0);
+ textComp.getUI().uninstallUI(textComp);
+ assertEquals("no listeners installed", 0,
+ doc.getDocumentListeners().length);
}
}
Modified: incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/JTextComponentRTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/JTextComponentRTest.java?view=diff&rev=465985&r1=465984&r2=465985
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/JTextComponentRTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/swing/src/test/api/java/common/javax/swing/text/JTextComponentRTest.java Thu Oct 19 21:34:41 2006
@@ -25,6 +25,16 @@
import junit.framework.TestCase;
public class JTextComponentRTest extends TestCase {
+
+ class JMyTextComponent extends JTextComponent {
+ public String getUIClassID() {
+ return "TextFieldUI";
+ }
+
+ public void test(final KeyEvent event) {
+ processKeyEvent(event);
+ }
+ };
protected void setUp() throws Exception {
super.setUp();
@@ -35,18 +45,17 @@
}
public void testProcessKeyEvent() {
- class JMyTextComponent extends JTextComponent {
- public String getUIClassID() {
- return "TextFieldUI";
- }
-
- public void test(final KeyEvent event) {
- processKeyEvent(event);
- }
- };
JMyTextComponent c = new JMyTextComponent();
KeyEvent event = new KeyEvent(c, KeyEvent.KEY_TYPED, 0, 0, KeyEvent.VK_UNDEFINED, '\n');
c.setKeymap(null);
c.test(event);
+ }
+
+ public void testUpdateUI() {
+ // regression test for HARMONY-1475
+ JMyTextComponent c = new JMyTextComponent();
+ c.updateUI();
+ c.setText("q");
+ assertEquals("q", c.getText());
}
}