You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2015/06/27 22:41:13 UTC

[2/2] wicket git commit: WICKET-5929 create page update if necessary only

WICKET-5929 create page update if necessary only


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/976f3ba0
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/976f3ba0
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/976f3ba0

Branch: refs/heads/master
Commit: 976f3ba0cc2b4a22b71c49b1463254fb8d91f8e7
Parents: 0ae393c
Author: Sven Meier <sv...@apache.org>
Authored: Sat Jun 27 22:40:18 2015 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Sat Jun 27 22:40:18 2015 +0200

----------------------------------------------------------------------
 .../ws/api/WebSocketRequestHandler.java         | 44 ++++++++++----------
 1 file changed, 23 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/976f3ba0/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java
----------------------------------------------------------------------
diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java
index 949bf98..1b9e7e1 100644
--- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java
+++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequestHandler.java
@@ -18,7 +18,7 @@ package org.apache.wicket.protocol.ws.api;
 
 import java.io.IOException;
 import java.util.Collection;
-import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.Collections;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
@@ -50,13 +50,7 @@ public class WebSocketRequestHandler implements IWebSocketRequestHandler
 
 	private final IWebSocketConnection connection;
 
-	private final PartialPageUpdate update;
-
-	/**
-	 * A flag indicating that there is data to be written to construct an &lt;ajax-response&gt;
-	 * There is no need to push empty response if only #push() is used
-	 */
-	private final AtomicBoolean hasData = new AtomicBoolean(false);
+	private PartialPageUpdate update;
 
 	private PageLogData logData;
 
@@ -64,7 +58,6 @@ public class WebSocketRequestHandler implements IWebSocketRequestHandler
 	{
 		this.page = Args.notNull(component, "component").getPage();
 		this.connection = Args.notNull(connection, "connection");
-		this.update = new XmlPartialPageUpdate(page);
 	}
 
 	@Override
@@ -110,8 +103,14 @@ public class WebSocketRequestHandler implements IWebSocketRequestHandler
 	@Override
 	public void add(Component component, String markupId)
 	{
-		hasData.set(true);
-		update.add(component, markupId);
+		getUpdate().add(component, markupId);
+	}
+
+	private PartialPageUpdate getUpdate() {
+		if (update == null) {
+			update = new XmlPartialPageUpdate(page);
+		}
+		return update;
 	}
 
 	@Override
@@ -151,21 +150,23 @@ public class WebSocketRequestHandler implements IWebSocketRequestHandler
 	@Override
 	public void appendJavaScript(CharSequence javascript)
 	{
-		hasData.set(true);
-		update.appendJavaScript(javascript);
+		getUpdate().appendJavaScript(javascript);
 	}
 
 	@Override
 	public void prependJavaScript(CharSequence javascript)
 	{
-		hasData.set(true);
-		update.prependJavaScript(javascript);
+		getUpdate().prependJavaScript(javascript);
 	}
 
 	@Override
 	public Collection<? extends Component> getComponents()
 	{
-		return update.getComponents();
+		if (update == null) {
+			return Collections.emptyList();
+		} else {
+			return update.getComponents();
+		}
 	}
 
 	@Override
@@ -184,8 +185,7 @@ public class WebSocketRequestHandler implements IWebSocketRequestHandler
 	@Override
 	public IHeaderResponse getHeaderResponse()
 	{
-		hasData.set(true);
-		return update.getHeaderResponse();
+		return getUpdate().getHeaderResponse();
 	}
 
 	@Override
@@ -233,7 +233,7 @@ public class WebSocketRequestHandler implements IWebSocketRequestHandler
 	@Override
 	public void respond(IRequestCycle requestCycle)
 	{
-		if (hasData.get())
+		if (update != null)
 		{
 			update.writeTo(requestCycle.getResponse(), "UTF-8");
 		}
@@ -247,7 +247,9 @@ public class WebSocketRequestHandler implements IWebSocketRequestHandler
 			logData = new PageLogData(page);
 		}
 
-		update.detach(requestCycle);
-		hasData.set(false);
+		if (update != null) {
+			update.detach(requestCycle);
+			update = null;
+		}
 	}
 }