diff options
Diffstat (limited to 'server/src')
3 files changed, 18 insertions, 1 deletions
diff --git a/server/src/com/vaadin/data/util/converter/StringToDoubleConverter.java b/server/src/com/vaadin/data/util/converter/StringToDoubleConverter.java index 1c95d4fceb..ef14549182 100644 --- a/server/src/com/vaadin/data/util/converter/StringToDoubleConverter.java +++ b/server/src/com/vaadin/data/util/converter/StringToDoubleConverter.java @@ -75,6 +75,11 @@ public class StringToDoubleConverter implements Converter<String, Double> { throw new ConversionException("Could not convert '" + value + "' to " + getModelType().getName()); } + if (parsedValue == null) { + // Convert "" to null + return null; + } + return parsedValue.doubleValue(); } diff --git a/server/src/com/vaadin/server/AbstractCommunicationManager.java b/server/src/com/vaadin/server/AbstractCommunicationManager.java index 0832a1a33a..19b0ac2aee 100644 --- a/server/src/com/vaadin/server/AbstractCommunicationManager.java +++ b/server/src/com/vaadin/server/AbstractCommunicationManager.java @@ -2733,6 +2733,9 @@ public abstract class AbstractCommunicationManager implements Serializable { } if (ui != null) { ui.setLastHeartbeatTimestamp(System.currentTimeMillis()); + // Ensure that the browser does not cache heartbeat responses. + // iOS 6 Safari requires this (#10370) + response.setHeader("Cache-Control", "no-cache"); } else { response.sendError(HttpServletResponse.SC_NOT_FOUND, "UI not found"); } diff --git a/server/src/com/vaadin/ui/LoginForm.java b/server/src/com/vaadin/ui/LoginForm.java index 15c917e454..c75326b99c 100644 --- a/server/src/com/vaadin/ui/LoginForm.java +++ b/server/src/com/vaadin/ui/LoginForm.java @@ -157,7 +157,9 @@ public class LoginForm extends CustomComponent { + "</head><body onload='setTarget();' style='margin:0;padding:0; background:transparent;' class=\"" + ApplicationConstants.GENERATED_BODY_CLASSNAME + "\">" - + "<div class='v-app v-app-loginpage' style=\"background:transparent;\">" + + "<div class='v-app v-app-loginpage " + + getUIThemeClassName() + + "' style=\"background:transparent;\">" + "<iframe name='logintarget' style='width:0;height:0;" + "border:0;margin:0;padding:0;display:block'></iframe>" + "<form id='loginf' target='logintarget' onkeypress=\"submitOnEnter(event)\" method=\"post\">" @@ -174,6 +176,13 @@ public class LoginForm extends CustomComponent { + "</span></span></div></div></form></div>" + "</body></html>"; } + private String getUIThemeClassName() { + if (getUI() != null) { + return getUI().getTheme(); + } + return ""; + } + /** * This event is sent when login form is submitted. */ |