From 2a9e60812575a6a15647d45300c5f279903205d5 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 14 Sep 2012 19:50:24 +0300 Subject: FieldGroup.setReadOnly should propagate to all fields (#9600) --- server/src/com/vaadin/data/fieldgroup/FieldGroup.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'server') diff --git a/server/src/com/vaadin/data/fieldgroup/FieldGroup.java b/server/src/com/vaadin/data/fieldgroup/FieldGroup.java index 9fe99610b2..5d0c23e779 100644 --- a/server/src/com/vaadin/data/fieldgroup/FieldGroup.java +++ b/server/src/com/vaadin/data/fieldgroup/FieldGroup.java @@ -209,6 +209,9 @@ public class FieldGroup implements Serializable { */ public void setReadOnly(boolean fieldsReadOnly) { readOnly = fieldsReadOnly; + for (Field field : getFields()) { + field.setReadOnly(fieldsReadOnly); + } } /** -- cgit v1.2.3 From fb50d90d5bb213516c56264c9cb484e774e7c29b Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 14 Sep 2012 20:01:36 +0300 Subject: Fixed javadoc reference to wrong CloseListener --- server/src/com/vaadin/ui/UI.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'server') diff --git a/server/src/com/vaadin/ui/UI.java b/server/src/com/vaadin/ui/UI.java index 7f0710c813..3ad0cc57fa 100644 --- a/server/src/com/vaadin/ui/UI.java +++ b/server/src/com/vaadin/ui/UI.java @@ -799,8 +799,8 @@ public abstract class UI extends AbstractComponentContainer implements /** * Remove the given subwindow from this UI. * - * Since Vaadin 6.5, {@link CloseListener}s are called also when explicitly - * removing a window by calling this method. + * Since Vaadin 6.5, {@link Window.CloseListener}s are called also when + * explicitly removing a window by calling this method. * * Since Vaadin 6.5, returns a boolean indicating if the window was removed * or not. -- cgit v1.2.3 From fba2fa761488d3d45523fc9f570b51820e607f15 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 18 Sep 2012 12:49:26 +0300 Subject: Allow browser details request to initialize a new session (#9652) --- server/src/com/vaadin/server/VaadinServlet.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'server') diff --git a/server/src/com/vaadin/server/VaadinServlet.java b/server/src/com/vaadin/server/VaadinServlet.java index 9372a08e10..fd95852c6a 100644 --- a/server/src/com/vaadin/server/VaadinServlet.java +++ b/server/src/com/vaadin/server/VaadinServlet.java @@ -677,7 +677,10 @@ public class VaadinServlet extends HttpServlet implements Constants { * without using the bootstrap page. */ return true; - + } else if (requestType == RequestType.BROWSER_DETAILS) { + // This is the first request if you are embedding by writing the + // embedding code yourself + return true; } else if (requestType == RequestType.OTHER) { /* * I.e URIs that are not application resources or static (theme) -- cgit v1.2.3 From 41c0e015c48079c60d1a37d8bdecf9c55a821191 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Tue, 18 Sep 2012 13:20:18 +0300 Subject: Add WrappedRequest.getWrappedSession(boolean) (#9655) --- server/src/com/vaadin/server/CombinedRequest.java | 7 ++++++- .../com/vaadin/server/WrappedHttpServletRequest.java | 8 +++++++- .../src/com/vaadin/server/WrappedPortletRequest.java | 8 +++++++- server/src/com/vaadin/server/WrappedRequest.java | 20 +++++++++++++++++++- 4 files changed, 39 insertions(+), 4 deletions(-) (limited to 'server') diff --git a/server/src/com/vaadin/server/CombinedRequest.java b/server/src/com/vaadin/server/CombinedRequest.java index 2364527a65..91c5093ece 100644 --- a/server/src/com/vaadin/server/CombinedRequest.java +++ b/server/src/com/vaadin/server/CombinedRequest.java @@ -114,7 +114,12 @@ public class CombinedRequest implements WrappedRequest { @Override public WrappedSession getWrappedSession() { - return secondRequest.getWrappedSession(); + return getWrappedSession(true); + } + + @Override + public WrappedSession getWrappedSession(boolean allowSessionCreation) { + return secondRequest.getWrappedSession(allowSessionCreation); } @Override diff --git a/server/src/com/vaadin/server/WrappedHttpServletRequest.java b/server/src/com/vaadin/server/WrappedHttpServletRequest.java index 87c6c521af..adfbde87ef 100644 --- a/server/src/com/vaadin/server/WrappedHttpServletRequest.java +++ b/server/src/com/vaadin/server/WrappedHttpServletRequest.java @@ -56,7 +56,12 @@ public class WrappedHttpServletRequest extends HttpServletRequestWrapper @Override public WrappedSession getWrappedSession() { - return new WrappedHttpSession(getSession()); + return getWrappedSession(true); + } + + @Override + public WrappedSession getWrappedSession(boolean allowSessionCreation) { + return new WrappedHttpSession(getSession(allowSessionCreation)); } /** @@ -111,4 +116,5 @@ public class WrappedHttpServletRequest extends HttpServletRequestWrapper } return (WrappedHttpServletRequest) request; } + } \ No newline at end of file diff --git a/server/src/com/vaadin/server/WrappedPortletRequest.java b/server/src/com/vaadin/server/WrappedPortletRequest.java index dd46194a2a..78bfe838b1 100644 --- a/server/src/com/vaadin/server/WrappedPortletRequest.java +++ b/server/src/com/vaadin/server/WrappedPortletRequest.java @@ -114,7 +114,13 @@ public class WrappedPortletRequest implements WrappedRequest { @Override public WrappedSession getWrappedSession() { - return new WrappedPortletSession(request.getPortletSession()); + return getWrappedSession(true); + } + + @Override + public WrappedSession getWrappedSession(boolean allowSessionCreation) { + return new WrappedPortletSession( + request.getPortletSession(allowSessionCreation)); } /** diff --git a/server/src/com/vaadin/server/WrappedRequest.java b/server/src/com/vaadin/server/WrappedRequest.java index 504f21aed4..aeaff2b384 100644 --- a/server/src/com/vaadin/server/WrappedRequest.java +++ b/server/src/com/vaadin/server/WrappedRequest.java @@ -161,7 +161,8 @@ public interface WrappedRequest extends Serializable { public String getRequestPathInfo(); /** - * Gets the session associated with this request. + * Gets the session associated with this request, creating a new if there is + * no session. * * @see WrappedSession * @see HttpServletRequest#getSession() @@ -171,6 +172,23 @@ public interface WrappedRequest extends Serializable { */ public WrappedSession getWrappedSession(); + /** + * Gets the session associated with this request, optionally creating a new + * if there is no session. + * + * @param allowSessionCreation + * true to create a new session for this request if + * necessary; false to return null if + * there's no current session + * + * @see WrappedSession + * @see HttpServletRequest#getSession(boolean) + * @see PortletRequest#getPortletSession(boolean) + * + * @return the wrapped session for this request + */ + public WrappedSession getWrappedSession(boolean allowSessionCreation); + /** * Returns the MIME type of the body of the request, or null if the type is * not known. -- cgit v1.2.3 From efb7fc901d0aaa0e87f529c8dc1a2442cfd3ea70 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Tue, 18 Sep 2012 13:47:32 +0300 Subject: Add null checks when wrapping session (#9655) --- server/src/com/vaadin/server/WrappedHttpServletRequest.java | 8 +++++++- server/src/com/vaadin/server/WrappedPortletRequest.java | 10 ++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'server') diff --git a/server/src/com/vaadin/server/WrappedHttpServletRequest.java b/server/src/com/vaadin/server/WrappedHttpServletRequest.java index adfbde87ef..99e8881ec1 100644 --- a/server/src/com/vaadin/server/WrappedHttpServletRequest.java +++ b/server/src/com/vaadin/server/WrappedHttpServletRequest.java @@ -18,6 +18,7 @@ package com.vaadin.server; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; +import javax.servlet.http.HttpSession; import com.vaadin.server.VaadinServlet.ServletService; @@ -61,7 +62,12 @@ public class WrappedHttpServletRequest extends HttpServletRequestWrapper @Override public WrappedSession getWrappedSession(boolean allowSessionCreation) { - return new WrappedHttpSession(getSession(allowSessionCreation)); + HttpSession session = getSession(allowSessionCreation); + if (session != null) { + return new WrappedHttpSession(session); + } else { + return null; + } } /** diff --git a/server/src/com/vaadin/server/WrappedPortletRequest.java b/server/src/com/vaadin/server/WrappedPortletRequest.java index 78bfe838b1..d4670cfd92 100644 --- a/server/src/com/vaadin/server/WrappedPortletRequest.java +++ b/server/src/com/vaadin/server/WrappedPortletRequest.java @@ -23,6 +23,7 @@ import java.util.Map; import javax.portlet.ClientDataRequest; import javax.portlet.PortletRequest; +import javax.portlet.PortletSession; import javax.portlet.ResourceRequest; import com.vaadin.server.VaadinPortlet.PortletService; @@ -119,8 +120,13 @@ public class WrappedPortletRequest implements WrappedRequest { @Override public WrappedSession getWrappedSession(boolean allowSessionCreation) { - return new WrappedPortletSession( - request.getPortletSession(allowSessionCreation)); + PortletSession session = request + .getPortletSession(allowSessionCreation); + if (session != null) { + return new WrappedPortletSession(session); + } else { + return null; + } } /** -- cgit v1.2.3 From 959802d73e42904fc1fa3b2e35b7d49c74a36220 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 18 Sep 2012 14:19:29 +0300 Subject: Lock session when handling browser details request (#9656) --- server/src/com/vaadin/server/AbstractCommunicationManager.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'server') diff --git a/server/src/com/vaadin/server/AbstractCommunicationManager.java b/server/src/com/vaadin/server/AbstractCommunicationManager.java index 32800506a3..5832b144ec 100644 --- a/server/src/com/vaadin/server/AbstractCommunicationManager.java +++ b/server/src/com/vaadin/server/AbstractCommunicationManager.java @@ -2464,9 +2464,11 @@ public abstract class AbstractCommunicationManager implements Serializable { public void handleBrowserDetailsRequest(WrappedRequest request, WrappedResponse response, VaadinSession session) throws IOException { - assert UI.getCurrent() == null; + session.getLock().lock(); try { + assert UI.getCurrent() == null; + CombinedRequest combinedRequest = new CombinedRequest(request); response.setContentType("application/json; charset=UTF-8"); @@ -2495,6 +2497,8 @@ public abstract class AbstractCommunicationManager implements Serializable { } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); + } finally { + session.getLock().unlock(); } } -- cgit v1.2.3