From 67696f3dcb968bde52bee4bb841b642c41fc6009 Mon Sep 17 00:00:00 2001 From: Henri Sara Date: Tue, 14 May 2013 15:25:58 +0300 Subject: SQLContainer.indexOfId() also searches backwards (#11849, #10376) Change-Id: Iea3f832cd50314f747b82b774c3be57797f9ac1d --- server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'server/src') diff --git a/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java b/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java index 64c16b2798..aa8234ebb9 100644 --- a/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java +++ b/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java @@ -629,23 +629,25 @@ public class SQLContainer implements Container, Container.Filterable, getPage(); } int size = size(); - boolean wrappedAround = false; - while (!wrappedAround) { + // this protects against infinite looping + int counter = 0; + while (counter < size) { for (Integer i : itemIndexes.keySet()) { if (itemIndexes.get(i).equals(itemId)) { return i; } + counter++; } // load in the next page. int nextIndex = (currentOffset / (pageLength * CACHE_RATIO) + 1) * (pageLength * CACHE_RATIO); if (nextIndex >= size) { // Container wrapped around, start from index 0. - wrappedAround = true; nextIndex = 0; } updateOffsetAndCache(nextIndex); } + // safeguard in case item not found return -1; } -- cgit v1.2.3 From 0c8edf1ff0502070d92dc6d8ef5af304d7570934 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Sat, 11 May 2013 20:35:22 +0300 Subject: Avoid marking AbstractField dirty in primitive getters (#11201) Change-Id: Ie289c15d5c56d3b602d87174f022b6197f0fedf0 --- server/src/com/vaadin/ui/AbstractField.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'server/src') diff --git a/server/src/com/vaadin/ui/AbstractField.java b/server/src/com/vaadin/ui/AbstractField.java index 422e0a1796..623dc5dbc3 100644 --- a/server/src/com/vaadin/ui/AbstractField.java +++ b/server/src/com/vaadin/ui/AbstractField.java @@ -325,7 +325,7 @@ public abstract class AbstractField extends AbstractComponent implements */ @Override public boolean isModified() { - return getState().modified; + return getState(false).modified; } private void setModified(boolean modified) { @@ -1270,7 +1270,7 @@ public abstract class AbstractField extends AbstractComponent implements */ @Override public int getTabIndex() { - return getState().tabIndex; + return getState(false).tabIndex; } /* @@ -1384,7 +1384,7 @@ public abstract class AbstractField extends AbstractComponent implements */ @Override public boolean isRequired() { - return getState().required; + return getState(false).required; } /** @@ -1638,6 +1638,11 @@ public abstract class AbstractField extends AbstractComponent implements return (AbstractFieldState) super.getState(); } + @Override + protected AbstractFieldState getState(boolean markAsDirty) { + return (AbstractFieldState) super.getState(markAsDirty); + } + @Override public void beforeClientResponse(boolean initial) { super.beforeClientResponse(initial); -- cgit v1.2.3