summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenri Sara <hesara@vaadin.com>2012-11-30 14:49:04 +0200
committerHenri Sara <hesara@vaadin.com>2012-11-30 14:49:04 +0200
commit84099ee2b8363c12a813157f9752981add5db113 (patch)
tree7ef93b6e3bca805d5c19cb31a24edda74c02b731
parentfaf6b3861d26571ffefd3dc60c2ff7d5685576d0 (diff)
downloadvaadin-framework-84099ee2b8363c12a813157f9752981add5db113.tar.gz
vaadin-framework-84099ee2b8363c12a813157f9752981add5db113.zip
Return null as non-existing property for IndexedContainer (#10445)
Change-Id: I9829173dda84d5f496114b7d08204648bf86fc77
-rw-r--r--server/src/com/vaadin/data/util/IndexedContainer.java4
-rw-r--r--server/tests/src/com/vaadin/data/util/TestIndexedContainer.java8
2 files changed, 11 insertions, 1 deletions
diff --git a/server/src/com/vaadin/data/util/IndexedContainer.java b/server/src/com/vaadin/data/util/IndexedContainer.java
index 81ee4ae2a0..aeb0ca96eb 100644
--- a/server/src/com/vaadin/data/util/IndexedContainer.java
+++ b/server/src/com/vaadin/data/util/IndexedContainer.java
@@ -164,7 +164,9 @@ public class IndexedContainer extends
*/
@Override
public Property getContainerProperty(Object itemId, Object propertyId) {
- if (!containsId(itemId)) {
+ // map lookup more efficient than propertyIds if there are many
+ // properties
+ if (!containsId(itemId) || !types.containsKey(propertyId)) {
return null;
}
diff --git a/server/tests/src/com/vaadin/data/util/TestIndexedContainer.java b/server/tests/src/com/vaadin/data/util/TestIndexedContainer.java
index 20aadfcb8b..971cdb5f62 100644
--- a/server/tests/src/com/vaadin/data/util/TestIndexedContainer.java
+++ b/server/tests/src/com/vaadin/data/util/TestIndexedContainer.java
@@ -376,4 +376,12 @@ public class TestIndexedContainer extends AbstractInMemoryContainerTest {
}
}
+ // test getting non-existing property (#10445)
+ public void testNonExistingProperty() {
+ IndexedContainer ic = new IndexedContainer();
+ String object1 = new String("Obj1");
+ ic.addItem(object1);
+ assertNull(ic.getContainerProperty(object1, "xyz"));
+ }
+
}