James Moger
2012-10-30 dd630f8aebde8c3138dc0d55ebf4a16d0db806b7
Fix intermittent Wicket page expirations on EditNNN pages
4 files modified
33 ■■■■■ changed files
src/com/gitblit/wicket/pages/EditRepositoryPage.java 5 ●●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/EditTeamPage.java 5 ●●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/EditUserPage.java 5 ●●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/RootSubPage.java 18 ●●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -115,6 +115,11 @@
        setStatelessHint(false);
        setOutputMarkupId(true);
    }
    @Override
    protected boolean requiresPageMap() {
        return true;
    }
    protected void setupPage(RepositoryModel model) {
        this.repositoryModel = model;
src/com/gitblit/wicket/pages/EditTeamPage.java
@@ -75,6 +75,11 @@
        setOutputMarkupId(true);
    }
    @Override
    protected boolean requiresPageMap() {
        return true;
    }
    protected void setupPage(final TeamModel teamModel) {
        if (isCreate) {
            super.setupPage(getString("gb.newTeam"), "");
src/com/gitblit/wicket/pages/EditUserPage.java
@@ -76,6 +76,11 @@
        setStatelessHint(false);
        setOutputMarkupId(true);
    }
    @Override
    protected boolean requiresPageMap() {
        return true;
    }
    protected void setupPage(final UserModel userModel) {
        if (isCreate) {
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