From 70be73db7d458f17de957043fc28c687c981f03b Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 23 Jun 2009 11:11:09 +0000 Subject: Fix for #3081/#3015: Added uniqueness check to generated id in IndexedContainer svn changeset:8226/svn branch:6.0 --- src/com/vaadin/data/util/IndexedContainer.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/com/vaadin/data/util/IndexedContainer.java b/src/com/vaadin/data/util/IndexedContainer.java index 60686abe22..5e52c729ee 100644 --- a/src/com/vaadin/data/util/IndexedContainer.java +++ b/src/com/vaadin/data/util/IndexedContainer.java @@ -670,8 +670,19 @@ public class IndexedContainer implements Container.Indexed, return id; } + /** + * Generates an unique identifier for use as an item id. Guarantees that the + * generated id is not currently used as an id. + * + * @return + */ private Serializable generateId() { - return new Integer(nextGeneratedItemId++); + Serializable id; + do { + id = new Integer(nextGeneratedItemId++); + } while (items.containsKey(id)); + + return id; } /* Event notifiers */ -- cgit v1.2.3