summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/src/com/vaadin/data/util/ContainerHierarchicalWrapper.java3
-rw-r--r--server/src/com/vaadin/data/util/IndexedContainer.java9
-rw-r--r--server/tests/src/com/vaadin/data/util/AbstractContainerTestBase.java5
3 files changed, 8 insertions, 9 deletions
diff --git a/server/src/com/vaadin/data/util/ContainerHierarchicalWrapper.java b/server/src/com/vaadin/data/util/ContainerHierarchicalWrapper.java
index 199d186fab..8590528f43 100644
--- a/server/src/com/vaadin/data/util/ContainerHierarchicalWrapper.java
+++ b/server/src/com/vaadin/data/util/ContainerHierarchicalWrapper.java
@@ -538,10 +538,9 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
*/
@Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
-
// Null ids are not accepted
if (itemId == null) {
- throw new NullPointerException("Container item id can not be null");
+ return null;
}
final Item item = container.addItem(itemId);
diff --git a/server/src/com/vaadin/data/util/IndexedContainer.java b/server/src/com/vaadin/data/util/IndexedContainer.java
index b851baf674..c00dfe8e05 100644
--- a/server/src/com/vaadin/data/util/IndexedContainer.java
+++ b/server/src/com/vaadin/data/util/IndexedContainer.java
@@ -269,7 +269,9 @@ public class IndexedContainer extends
public Item addItem(Object itemId) {
Item item = internalAddItemAtEnd(itemId, new IndexedContainerItem(
itemId), false);
- if (!isFiltered()) {
+ if (item == null) {
+ return null;
+ } else if (!isFiltered()) {
// always the last item
fireItemAdded(size() - 1, itemId, item);
} else if (passesFilters(itemId) && !containsId(itemId)) {
@@ -726,11 +728,6 @@ public class IndexedContainer extends
* the Item ID of the new Item.
*/
private IndexedContainerItem(Object itemId) {
-
- // Gets the item contents from the host
- if (itemId == null) {
- throw new NullPointerException();
- }
this.itemId = itemId;
}
diff --git a/server/tests/src/com/vaadin/data/util/AbstractContainerTestBase.java b/server/tests/src/com/vaadin/data/util/AbstractContainerTestBase.java
index 52acc5ab76..9071f5eb40 100644
--- a/server/tests/src/com/vaadin/data/util/AbstractContainerTestBase.java
+++ b/server/tests/src/com/vaadin/data/util/AbstractContainerTestBase.java
@@ -211,6 +211,9 @@ public abstract class AbstractContainerTestBase extends TestCase {
// Add again
Item item2 = container.addItem("foo");
Assert.assertNull(item2);
+
+ // Null is not a valid itemId
+ Assert.assertNull(container.addItem(null));
} catch (UnsupportedOperationException e) {
// Ignore contains which do not support addItem*
}
@@ -526,7 +529,7 @@ public abstract class AbstractContainerTestBase extends TestCase {
/**
* Override in subclasses to return false if the container getItem() method
* returns a non-null value for an item that has been filtered out.
- *
+ *
* @return
*/
protected boolean isFilteredOutItemNull() {