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 2007/01/12 21:29:07 UTC

svn commit: r495724 - in /harmony/enhanced/classlib/trunk/modules/awt/src: main/java/common/java/awt/event/KeyEvent.java test/api/java/common/java/awt/event/KeyEventTest.java

Author: hindessm
Date: Fri Jan 12 12:29:06 2007
New Revision: 495724

URL: http://svn.apache.org/viewvc?view=rev&rev=495724
Log:
Applied patches from "[#HARMONY-2406] [classlib][awt]
j.a.e.KeyEvent.getKeyText(int) thows StringIndexOutOfBoundsException
while RI doesn't".  Modified test case to follow project conventions for
exception handling.

Modified:
    harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/event/KeyEvent.java
    harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/event/KeyEventTest.java

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/event/KeyEvent.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/event/KeyEvent.java?view=diff&rev=495724&r1=495723&r2=495724
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/event/KeyEvent.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/event/KeyEvent.java Fri Jan 12 12:29:06 2007
@@ -466,7 +466,7 @@
     }
 
     public static String getKeyText(int keyCode) {
-        String[] rawName = getPublicStaticFinalIntFieldName(keyCode, "VK_".length()); //$NON-NLS-1$
+        String[] rawName = getPublicStaticFinalIntFieldName(keyCode); //$NON-NLS-1$
 
         if ((rawName == null) || (rawName.length == 0)) {
             return ("Unknown keyCode: " + (keyCode >= 0 ? "0x" : "-0x") + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -510,7 +510,7 @@
         return ("AWT." + name); //$NON-NLS-1$
     }
 
-    private static String[] getPublicStaticFinalIntFieldName(int value, int prefixLength) {
+    private static String[] getPublicStaticFinalIntFieldName(int value) {
         Field[] allFields = KeyEvent.class.getDeclaredFields();
 
         try {
@@ -523,7 +523,9 @@
                         Modifier.isStatic(modifiers))
                 {
                     if (field.getInt(null) == value){
-                        return field.getName().substring(prefixLength).split("_"); //$NON-NLS-1$
+                        final String name = field.getName();
+                        final int prefixLength = name.indexOf("_") + 1;
+                        return name.substring(prefixLength).split("_"); //$NON-NLS-1$
                     }
                 }
             }

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/event/KeyEventTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/event/KeyEventTest.java?view=diff&rev=495724&r1=495723&r2=495724
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/event/KeyEventTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/event/KeyEventTest.java Fri Jan 12 12:29:06 2007
@@ -26,13 +26,16 @@
 
 public class KeyEventTest extends TestCase {
 
-    public final void testGetKeyText() {
+    public final void testGetKeyText() throws StringIndexOutOfBoundsException {
         assertEquals(KeyEvent.getKeyText(KeyEvent.VK_1), "1");
         assertEquals(KeyEvent.getKeyText(KeyEvent.VK_SHIFT), "Shift");
         assertEquals(KeyEvent.getKeyText(KeyEvent.VK_INVERTED_EXCLAMATION_MARK),
                 "Inverted Exclamation Mark");
 //        assertTrue(KeyEvent.getKeyText(KeyEvent.VK_SEPARATOR).startsWith("NumPad ,"));
         assertEquals(KeyEvent.getKeyText(-16), "Unknown keyCode: -0x10");
+        
+        // Regression test for HARMONY-2406
+        KeyEvent.getKeyText(4);
     }
 
     public final void testGetKeyModifiersText() {