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 2016/04/24 20:38:24 UTC
[07/12] wicket git commit: WICKET-6129 handlers were never executed
nested actually, so no need to keep a stack of handlers
WICKET-6129 handlers were never executed nested actually, so no need to keep a stack of handlers
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/88db7274
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/88db7274
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/88db7274
Branch: refs/heads/master
Commit: 88db7274135b9ea293291936843e0b0e5473cffa
Parents: e02bdd8
Author: Sven Meier <sv...@apache.org>
Authored: Fri Apr 8 12:20:07 2016 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Sun Apr 24 20:00:54 2016 +0200
----------------------------------------------------------------------
.../wicket/request/RequestHandlerStack.java | 24 ++++++++++----------
1 file changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/88db7274/wicket-request/src/main/java/org/apache/wicket/request/RequestHandlerStack.java
----------------------------------------------------------------------
diff --git a/wicket-request/src/main/java/org/apache/wicket/request/RequestHandlerStack.java b/wicket-request/src/main/java/org/apache/wicket/request/RequestHandlerStack.java
index 8868f1b..206763c 100644
--- a/wicket-request/src/main/java/org/apache/wicket/request/RequestHandlerStack.java
+++ b/wicket-request/src/main/java/org/apache/wicket/request/RequestHandlerStack.java
@@ -17,7 +17,6 @@
package org.apache.wicket.request;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import org.apache.wicket.util.lang.Args;
@@ -35,19 +34,20 @@ public abstract class RequestHandlerStack
{
private static final Logger log = LoggerFactory.getLogger(RequestHandlerStack.class);
- // we need both Queue and List interfaces
- private final LinkedList<IRequestHandler> requestHandlers = new LinkedList<>();
+ private IRequestHandler active;
private final List<IRequestHandler> inactiveRequestHandlers = new ArrayList<>();
private IRequestHandler scheduledAfterCurrent = null;
/**
+ * Get the handler currently executed.
+ *
* @return active handler
*/
public IRequestHandler getActive()
{
- return requestHandlers.peek();
+ return active;
}
/**
@@ -59,14 +59,14 @@ public abstract class RequestHandlerStack
*/
public IRequestHandler execute(final IRequestHandler handler)
{
- requestHandlers.add(handler);
+ active = handler;
try
{
respond(handler);
}
finally
{
- requestHandlers.poll();
+ active = null;
inactiveRequestHandlers.add(handler);
}
@@ -127,7 +127,7 @@ public abstract class RequestHandlerStack
*/
public void replaceAll(final IRequestHandler handler)
{
- if (requestHandlers.isEmpty())
+ if (active == null)
{
execute(handler);
}
@@ -142,13 +142,13 @@ public abstract class RequestHandlerStack
*/
public void detach()
{
- if (!requestHandlers.isEmpty())
+ if (active != null)
{
- // All requests handlers should be inactive at this point
- log.warn("Some of the request handlers are still active.");
+ // no request handler should be active at this point
+ log.warn("request handler is still active.");
- inactiveRequestHandlers.addAll(requestHandlers);
- requestHandlers.clear();
+ inactiveRequestHandlers.add(active);
+ active = null;
}
for (IRequestHandler handler : inactiveRequestHandlers)