From dd630f8aebde8c3138dc0d55ebf4a16d0db806b7 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 30 Oct 2012 17:04:47 -0400
Subject: [PATCH] Fix intermittent Wicket page expirations on EditNNN pages

---
 src/com/gitblit/wicket/pages/RootSubPage.java |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/RootSubPage.java b/src/com/gitblit/wicket/pages/RootSubPage.java
index 891c892..e7e12cc 100644
--- a/src/com/gitblit/wicket/pages/RootSubPage.java
+++ b/src/com/gitblit/wicket/pages/RootSubPage.java
@@ -19,6 +19,7 @@
 import java.util.List;
 
 import org.apache.wicket.PageParameters;
+import org.apache.wicket.Session;
 import org.apache.wicket.markup.html.basic.Label;
 
 import com.gitblit.Constants.AccessRestrictionType;
@@ -38,10 +39,27 @@
 
 	public RootSubPage() {
 		super();
+		createPageMapIfNeeded();
 	}
 
 	public RootSubPage(PageParameters params) {
 		super(params);
+		createPageMapIfNeeded();
+	}
+	
+	protected boolean requiresPageMap() {
+		return false;
+	}
+	
+	protected void createPageMapIfNeeded() {
+		if (requiresPageMap()) {
+			// because Gitblit strives for page-statelessness
+			// Wicket seems to get confused as to when it really should
+			// generate a page map for complex pages.  Conditionally ensure we
+			// have a page map for complex AJAX pages like the EditNNN pages.
+			Session.get().pageMapForName(null, true);
+			setVersioned(true);
+		}
 	}
 
 	@Override

--
Gitblit v1.9.1