summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/java/util/AbstractCollection.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/java/util/AbstractCollection.java')
-rw-r--r--libjava/classpath/java/util/AbstractCollection.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/libjava/classpath/java/util/AbstractCollection.java b/libjava/classpath/java/util/AbstractCollection.java
index 00ee23ebd43..3ae98e07311 100644
--- a/libjava/classpath/java/util/AbstractCollection.java
+++ b/libjava/classpath/java/util/AbstractCollection.java
@@ -423,7 +423,9 @@ public abstract class AbstractCollection implements Collection
* of the form "[a, b, ...]" where a and b etc are the results of calling
* toString on the elements of the collection. This implementation obtains an
* Iterator over the Collection and adds each element to a StringBuffer as it
- * is returned by the iterator.
+ * is returned by the iterator. "<this>" is inserted when the collection
+ * contains itself (only works for direct containment, not for collections
+ * inside collections).
*
* @return a String representation of the Collection
*/
@@ -431,10 +433,16 @@ public abstract class AbstractCollection implements Collection
{
Iterator itr = iterator();
StringBuffer r = new StringBuffer("[");
- for (int pos = size(); pos > 0; pos--)
+ boolean hasNext = itr.hasNext();
+ while (hasNext)
{
- r.append(itr.next());
- if (pos > 1)
+ Object o = itr.next();
+ if (o == this)
+ r.append("<this>");
+ else
+ r.append(o);
+ hasNext = itr.hasNext();
+ if (hasNext)
r.append(", ");
}
r.append("]");
OpenPOWER on IntegriCloud