You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ay...@apache.org on 2007/01/22 10:54:52 UTC

svn commit: r498567 - in /harmony/enhanced/classlib/trunk/modules/jndi/src: main/java/javax/naming/ main/java/org/apache/harmony/jndi/internal/nls/ test/java/org/apache/harmony/jndi/tests/javax/naming/

Author: ayza
Date: Mon Jan 22 01:54:51 2007
New Revision: 498567

URL: http://svn.apache.org/viewvc?view=rev&rev=498567
Log:
Applying patch from HARMONY-2525 ([classlib][jndi] javax.naming.CompoundName add(String), add(int, String) methods should follow exception throwing compatibility) 

Modified:
    harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/CompoundName.java
    harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/internal/nls/messages.properties
    harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/CompoundNameTest.java

Modified: harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/CompoundName.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/CompoundName.java?view=diff&rev=498567&r1=498566&r2=498567
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/CompoundName.java (original)
+++ harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/CompoundName.java Mon Jan 22 01:54:51 2007
@@ -649,6 +649,10 @@
 
     public Name add(String element) throws InvalidNameException {
         if (element == null) {
+            // jndi.8C=component must not be null
+            throw new IllegalArgumentException(Messages.getString("jndi.8C")); //$NON-NLS-1$
+        }
+        if (FLAT.equals(direction) && (size() > 0)) {
             // jndi.0A=A flat name can only have a single component
             throw new InvalidNameException(Messages.getString("jndi.0A")); //$NON-NLS-1$
         }
@@ -670,8 +674,12 @@
      */
     public Name add(int index, String element) throws InvalidNameException {
         if (element == null) {
-            // jndi.0B=A flat name can only zero or one component
-            throw new InvalidNameException(Messages.getString("jndi.0B")); //$NON-NLS-1$
+            // jndi.8C=component must not be null
+            throw new IllegalArgumentException(Messages.getString("jndi.8C")); //$NON-NLS-1$
+        }
+        if (FLAT.equals(direction) && (size() > 0)) {
+            // jndi.0A=A flat name can only have a single component
+            throw new InvalidNameException(Messages.getString("jndi.0A")); //$NON-NLS-1$
         }
         validateIndex(index, true);
         elem.add(index, element);

Modified: harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/internal/nls/messages.properties
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/internal/nls/messages.properties?view=diff&rev=498567&r1=498566&r2=498567
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/internal/nls/messages.properties (original)
+++ harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/internal/nls/messages.properties Mon Jan 22 01:54:51 2007
@@ -155,5 +155,6 @@
 jndi.89=Error marshalling return
 jndi.8A=Invalid method number: {0}
 jndi.8B=attrs must not be null
+jndi.8C=component must not be null
 
 jndi.err.00=. The stack trace of the root exception is: 

Modified: harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/CompoundNameTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/CompoundNameTest.java?view=diff&rev=498567&r1=498566&r2=498567
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/CompoundNameTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/CompoundNameTest.java Mon Jan 22 01:54:51 2007
@@ -1108,17 +1108,35 @@
 		assertNameEquals(name, "a", "'<b>/'");
 		name.add("'c");
 		assertNameEquals(name, "a", "'<b>/'", "'c");
+
+        // regression for HARMONY-2525
+        name = new CompoundName("a", new Properties());
+		try {
+			name.add("b");
+			fail("InvalidNameException expected");
+		} catch (InvalidNameException e) {
+			//expected
+		}
 	}
 
+    // regression for HARMONY-2525
 	public void testAdd_Null() throws InvalidNameException {
 		log.setMethod("testAdd_Null()");
 		CompoundName name;
 
-		name = new CompoundName("", props);
+        name = new CompoundName("", props);
 		try {
 			name.add(null);
-			fail("InvalidNameException expected");
-		} catch (InvalidNameException e) {
+			fail("IllegalArgumentException expected");
+		} catch (IllegalArgumentException e) {
+			//expected
+		}
+
+		name = new CompoundName("", new Properties());
+		try {
+			name.add(null);
+			fail("IllegalArgumentException expected");
+		} catch (IllegalArgumentException e) {
 			//expected
 		}
 	}
@@ -1139,23 +1157,47 @@
 			name.addAll(-1, new CompoundName("d", props));
 			fail();
 		} catch (ArrayIndexOutOfBoundsException e) {
+			//expected
 		}
 		try {
 			name.addAll(5, new CompoundName("d", props));
 			fail();
 		} catch (ArrayIndexOutOfBoundsException e) {
+			//expected
+		}
+
+        // regression for HARMONY-2525
+		name = new CompoundName("a", new Properties());
+		try {
+			name.add(0, "b");
+			fail("InvalidNameException expected");
+		} catch (InvalidNameException e) {
+			//expected
+		}
+		try {
+			name.add(1, "b");
+			fail("InvalidNameException expected");
+		} catch (InvalidNameException e) {
+			//expected
+		}
+		try {
+			name.add(-1, "b");
+			fail("InvalidNameException expected");
+		} catch (InvalidNameException e) {
+			//expected
 		}
 	}
 
-	public void testAdd_Indexed_Null() throws InvalidNameException {
+    // regression for HARMONY-2525
+    public void testAdd_Indexed_Null() throws InvalidNameException {
 		log.setMethod("testAdd_Indexed_Null()");
 		CompoundName name;
 
 		name = new CompoundName("", props);
 		try {
 			name.add(0, null);
-			fail("InvalidNameException expected");
-		} catch (InvalidNameException e) {
+			fail("IllegalArgumentException expected");
+		} catch (IllegalArgumentException e) {
 			//expected
 		}
 
@@ -1163,8 +1205,16 @@
 		name = new CompoundName("", props);
 		try {
 			name.add(11, null);
-			fail("InvalidNameException expected");
-		} catch (InvalidNameException e) {
+			fail("IllegalArgumentException expected");
+		} catch (IllegalArgumentException e) {
+			//expected
+		}
+
+		name = new CompoundName("", new Properties());
+		try {
+			name.add(0, null);
+			fail("IllegalArgumentException expected");
+		} catch (IllegalArgumentException e) {
 			//expected
 		}
 	}