You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2006/03/13 14:09:54 UTC

svn commit: r385541 - in /incubator/harmony/enhanced/classlib/trunk/modules/luni/src: main/java/java/util/Vector.java test/java/org/apache/harmony/tests/java/util/AllTests.java test/java/org/apache/harmony/tests/java/util/VectorTest.java

Author: tellison
Date: Mon Mar 13 05:09:52 2006
New Revision: 385541

URL: http://svn.apache.org/viewcvs?rev=385541&view=rev
Log:
Fix Vector#toString() to work with self-referencing elements

Added:
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/VectorTest.java
Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Vector.java
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/AllTests.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Vector.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Vector.java?rev=385541&r1=385540&r2=385541&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Vector.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Vector.java Mon Mar 13 05:09:52 2006
@@ -940,15 +940,23 @@
 	 */
 	public synchronized String toString() {
 		if (elementCount == 0)
-			return "[]"; //$NON-NLS-1$
+			return "[]";
 		int length = elementCount - 1;
 		StringBuffer buffer = new StringBuffer(size() * 16);
 		buffer.append('[');
 		for (int i = 0; i < length; i++) {
-			buffer.append(elementData[i]);
-			buffer.append(", "); //$NON-NLS-1$
+			if (elementData[i] == this) {
+				buffer.append("(this Collection)");
+			} else {
+				buffer.append(elementData[i]);
+			}
+			buffer.append(", ");
+		}
+		if (elementData[length] == this) {
+			buffer.append("(this Collection)");
+		} else {
+			buffer.append(elementData[length]);
 		}
-		buffer.append(elementData[length]);
 		buffer.append(']');
 		return buffer.toString();
 	}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/AllTests.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/AllTests.java?rev=385541&r1=385540&r2=385541&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/AllTests.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/AllTests.java Mon Mar 13 05:09:52 2006
@@ -34,6 +34,7 @@
 		suite.addTestSuite(WeakHashMapTest.class);
 		suite.addTestSuite(IdentityHashMapTest.class);
 		suite.addTestSuite(DateTest.class);
+		suite.addTestSuite(VectorTest.class);
 		suite.addTestSuite(LocaleTest.class);
 		//$JUnit-END$
 		return suite;

Added: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/VectorTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/VectorTest.java?rev=385541&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/VectorTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/tests/java/util/VectorTest.java Mon Mar 13 05:09:52 2006
@@ -0,0 +1,35 @@
+/* Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.tests.java.util;
+
+import java.util.Vector;
+
+import junit.framework.TestCase;
+
+public class VectorTest extends TestCase {
+
+	/**
+	 * @tests java.util.Vector#toString()
+	 */
+	public void test_toString() {
+		// Ensure toString works with self-referencing elements.
+		Vector vec = new Vector(3);
+		vec.add(null);
+		vec.add(new Object());
+		vec.add(vec);
+		vec.toString();
+	}
+}