diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java | 8 | ||||
-rw-r--r-- | server/src/com/vaadin/ui/AbstractField.java | 11 |
2 files changed, 13 insertions, 6 deletions
diff --git a/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java b/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java index 987466cdb7..e9a1a2d98f 100644 --- a/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java +++ b/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java @@ -648,23 +648,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; } diff --git a/server/src/com/vaadin/ui/AbstractField.java b/server/src/com/vaadin/ui/AbstractField.java index 6648f69ff9..3bca63a3b7 100644 --- a/server/src/com/vaadin/ui/AbstractField.java +++ b/server/src/com/vaadin/ui/AbstractField.java @@ -323,7 +323,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements */ @Override public boolean isModified() { - return getState().modified; + return getState(false).modified; } private void setModified(boolean modified) { @@ -1276,7 +1276,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements */ @Override public int getTabIndex() { - return getState().tabIndex; + return getState(false).tabIndex; } /* @@ -1408,7 +1408,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements */ @Override public boolean isRequired() { - return getState().required; + return getState(false).required; } /** @@ -1663,6 +1663,11 @@ public abstract class AbstractField<T> extends AbstractComponent implements } @Override + protected AbstractFieldState getState(boolean markAsDirty) { + return (AbstractFieldState) super.getState(markAsDirty); + } + + @Override public void beforeClientResponse(boolean initial) { super.beforeClientResponse(initial); |