http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/PersistedPanel.java ---------------------------------------------------------------------- diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/PersistedPanel.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/PersistedPanel.java new file mode 100644 index 0000000..4705f5d --- /dev/null +++ b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/PersistedPanel.java @@ -0,0 +1,201 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.devutils.diskstore.browser; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import org.apache.wicket.PageReference; +import org.apache.wicket.Session; +import org.apache.wicket.ajax.AbstractAjaxTimerBehavior; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; +import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; +import org.apache.wicket.devutils.inspector.InspectorPage; +import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; +import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; +import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; +import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable; +import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; +import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.MarkupStream; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.form.DropDownChoice; +import org.apache.wicket.markup.html.link.Link; +import org.apache.wicket.markup.html.panel.GenericPanel; +import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; +import org.apache.wicket.pageStore.DefaultPageContext; +import org.apache.wicket.pageStore.IPageContext; +import org.apache.wicket.pageStore.IPersistedPage; +import org.apache.wicket.pageStore.IPersistentPageStore; +import org.apache.wicket.util.time.Duration; + +/** + * A panel that shows data about {@link IPersistedPage}s in an {@link IPersistentPageStore}. + */ +public class PersistedPanel extends GenericPanel<IPersistentPageStore> +{ + + /** + * Construct. + * + * @param id + * the component id + */ + public PersistedPanel(String id, IModel<IPersistentPageStore> store) + { + super(id, store); + + final Label storeLabel = new Label("store", () -> { + IPersistentPageStore s = getModelObject(); + + if (s == null) { + return "N/A"; + } + + return String.format("%s - %s", s.getClass().getName(), s.getTotalSize()); + }); + storeLabel.setOutputMarkupId(true); + add(storeLabel); + + final DropDownChoice<String> sessionsSelector = createSessionsSelector("sessions"); + sessionsSelector.setOutputMarkupId(true); + add(sessionsSelector); + + final DataTable<IPersistedPage, String> table = createTable("table", sessionsSelector.getModel()); + table.setOutputMarkupId(true); + add(table); + + AjaxFallbackLink<Void> refreshLink = new AjaxFallbackLink<Void>("refresh") + { + @Override + public void onClick(Optional<AjaxRequestTarget> targetOptional) + { + targetOptional.ifPresent(target -> target.add(table)); + } + }; + add(refreshLink); + + AjaxFallbackLink<Void> currentSessionLink = new AjaxFallbackLink<Void>("currentSessionLink") + { + @Override + public void onClick(Optional<AjaxRequestTarget> targetOptional) + { + sessionsSelector.setModelObject(getCurrentSessionIdentifier()); + targetOptional.ifPresent(target -> target.add(sessionsSelector, table)); + } + + @Override + public boolean isVisible() + { + return PersistedPanel.this.getSession().isTemporary() == false; + } + }; + currentSessionLink.setOutputMarkupPlaceholderTag(true); + add(currentSessionLink); + + sessionsSelector.add(new AjaxFormComponentUpdatingBehavior("change") + { + @Override + protected void onUpdate(AjaxRequestTarget target) + { + target.add(storeLabel); + target.add(sessionsSelector); + target.add(table); + } + }); + + add(new AbstractAjaxTimerBehavior(Duration.seconds(5)) { + + @Override + protected void onTimer(AjaxRequestTarget target) + { + target.add(storeLabel); + target.add(table); + } + }); + } + + private DropDownChoice<String> createSessionsSelector(String id) + { + DropDownChoice<String> sessionsSelector = new DropDownChoice<String>("sessions", + Model.of(getCurrentSessionIdentifier()), new SessionIdentifiersModel(getModel())); + + return sessionsSelector; + } + + private String getCurrentSessionIdentifier() + { + IPersistentPageStore store = getModelObject(); + if (store == null) { + return null; + } + + IPageContext context = new DefaultPageContext(Session.get()); + + return store.getContextIdentifier(context); + } + + private DataTable<IPersistedPage, String> createTable(String id, IModel<String> sessionId) + { + PersistedPagesProvider provider = new PersistedPagesProvider(sessionId, getModel()); + + List<IColumn<IPersistedPage, String>> columns = new ArrayList<>(); + + columns.add(new AbstractColumn<IPersistedPage, String>(Model.of("Id"), "pageId") + { + @Override + public void populateItem(Item<ICellPopulator<IPersistedPage>> cellItem, String componentId, IModel<IPersistedPage> rowModel) + { + cellItem.add(new Link<IPersistedPage>(componentId, rowModel) + { + @Override + protected void onComponentTag(ComponentTag tag) + { + tag.setName("a"); + + super.onComponentTag(tag); + } + + @Override + public void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) + { + replaceComponentTagBody(markupStream, openTag, "" + getModelObject().getPageId()); + } + + @Override + public void onClick() + { + setResponsePage(new InspectorPage(new PageReference(getModelObject().getPageId()))); + } + }); + } + }); + columns.add(new PropertyColumn<>(Model.of("Type"), "pageType", "pageType")); + columns.add(new PropertyColumn<>(Model.of("Size"), "pageSize", "pageSize")); + + DefaultDataTable<IPersistedPage, String> browserTable = new DefaultDataTable<>(id, columns, provider, 20); + browserTable.setOutputMarkupId(true); + + return browserTable; + } + +}
http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/SessionIdentifiersModel.java ---------------------------------------------------------------------- diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/SessionIdentifiersModel.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/SessionIdentifiersModel.java new file mode 100644 index 0000000..06592b9 --- /dev/null +++ b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/SessionIdentifiersModel.java @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.devutils.diskstore.browser; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.apache.wicket.Session; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.LoadableDetachableModel; +import org.apache.wicket.pageStore.DefaultPageContext; +import org.apache.wicket.pageStore.DiskPageStore; +import org.apache.wicket.pageStore.IPageContext; +import org.apache.wicket.pageStore.IPersistentPageStore; + +/** + * A model that collects the keys from the {@link DiskPageStore} folder + */ +public class SessionIdentifiersModel extends LoadableDetachableModel<List<String>> +{ + private final IModel<IPersistentPageStore> store; + + public SessionIdentifiersModel(IModel<IPersistentPageStore> store) + { + this.store = store; + } + + @Override + protected List<String> load() + { + IPersistentPageStore store = this.store.getObject(); + if (store == null) + { + return Collections.emptyList(); + } + + ArrayList<String> identifiers = new ArrayList<>(store.getContextIdentifiers()); + + IPageContext context = new DefaultPageContext(Session.get()); + String current = store.getContextIdentifier(context); + if (identifiers.contains(current) == false) + { + // identifiers of the store seem no to match their sessions ids, + // thus add the default identifier so the select works properly + identifiers.add(current); + } + + return identifiers; + } + + @Override + public void detach() + { + super.detach(); + + store.detach(); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/SessionsProviderModel.java ---------------------------------------------------------------------- diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/SessionsProviderModel.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/SessionsProviderModel.java deleted file mode 100644 index 6638303..0000000 --- a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/SessionsProviderModel.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.wicket.devutils.diskstore.browser; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import org.apache.wicket.Application; -import org.apache.wicket.devutils.diskstore.DebugDiskDataStore; -import org.apache.wicket.model.LoadableDetachableModel; -import org.apache.wicket.pageStore.DiskDataStore; - -/** - * A model that collects the session ids from the {@link DiskDataStore} folder - */ -public class SessionsProviderModel extends LoadableDetachableModel<List<String>> -{ - - @Override - protected List<String> load() - { - List<String> sessionIds = new ArrayList<>(); - if (Application.exists()) - { - DebugDiskDataStore dataStore = DataStoreHelper.getDataStore(); - File appStoreFolder = dataStore.getStoreFolder(); - if (appStoreFolder.isDirectory()) - { - String[] sessionIdFileNames = appStoreFolder.list(); - if (sessionIdFileNames != null) - { - for (String sessionId : sessionIdFileNames) - { - sessionIds.add(sessionId); - } - } - } - } - - return sessionIds; - } -} http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java ---------------------------------------------------------------------- diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java index 2710327..61deca5 100644 --- a/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java +++ b/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java @@ -86,42 +86,13 @@ public final class EnhancedPageView extends GenericPanel<Page> * * @param id * See Component - * @param page + * @param model * The page to be analyzed */ - public EnhancedPageView(String id, Page page) + public EnhancedPageView(String id, IModel<Page> model) { - this(id, getModelFor(page == null ? null : page.getPageReference())); - } - - private static IModel<Page> getModelFor(final PageReference pageRef) - { - return new LoadableDetachableModel<Page>() - { - private static final long serialVersionUID = 1L; - - @Override - protected Page load() - { - if (pageRef == null) - return null; - Page page = pageRef.getPage(); - return page; - } - }; - } - - /** - * Constructor. - * - * @param id - * See Component - * @param pageModel - * The page to be analyzed - */ - public EnhancedPageView(String id, IModel<Page> pageModel) - { - super(id, pageModel); + super(id, model); + expandState = new ExpandState(); expandState.expandAll(); showStatefulAndParentsOnly = false; http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/InspectorPage.java ---------------------------------------------------------------------- diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/InspectorPage.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/InspectorPage.java index 023583d..0ab7837 100644 --- a/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/InspectorPage.java +++ b/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/InspectorPage.java @@ -18,15 +18,15 @@ package org.apache.wicket.devutils.inspector; import org.apache.wicket.Application; import org.apache.wicket.Page; +import org.apache.wicket.PageReference; import org.apache.wicket.Session; import org.apache.wicket.devutils.DevUtilsPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.link.BookmarkablePageLink; -import org.apache.wicket.page.IManageablePage; +import org.apache.wicket.model.IModel; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.request.resource.PackageResourceReference; -import org.apache.wicket.util.string.StringValueConversionException; /** @@ -47,23 +47,19 @@ public final class InspectorPage extends DevUtilsPage */ public InspectorPage(final PageParameters parameters) { + this(new PageReference(parameters.get("pageId").toInt())); + } + + public InspectorPage(PageReference reference) + { add(new ApplicationView("application", Application.get())); add(new SessionView("session", Session.get())); - IManageablePage page = null; - try - { - final int pageId = parameters.get("pageId").toInt(); - page = Session.get().getPageManager().getPage(pageId); - } - catch (StringValueConversionException e) - { - // Ignore - } - catch (NullPointerException e) - { - // Ignore - } - add(new EnhancedPageView("page", (Page)page)); + + IModel<Page> page = () -> { + return reference.getPage(); + }; + + add(new EnhancedPageView("page", page)); add(new Image("bug", new PackageResourceReference(InspectorPage.class, "bug.png"))); add(new BookmarkablePageLink<>("allsessions", LiveSessionsPage.class)); add(new Label("wicketVersion", getApplication().getFrameworkSettings().getVersion())); http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java b/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java index 3896404..f557a59 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java @@ -16,10 +16,10 @@ */ package org.apache.wicket.examples.frames; -import org.apache.wicket.markup.html.WebPage; -import org.apache.wicket.request.IRequestHandler; import org.apache.wicket.core.request.handler.PageProvider; import org.apache.wicket.core.request.handler.RenderPageRequestHandler; +import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.request.IRequestHandler; /** @@ -41,7 +41,7 @@ public class BodyFrame extends WebPage { // create a new page instance, passing this 'master page' as an argument LeftFrame leftFrame = new LeftFrame(this); - getSession().getPageManager().touchPage(leftFrame); + getSession().getPageManager().addPage(leftFrame); // get the url to that page IRequestHandler leftFrameHandler = new RenderPageRequestHandler(new PageProvider(leftFrame)); // and create a simple component that modifies it's src attribute to http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-examples/src/test/java/org/apache/wicket/examples/StartExamples.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/test/java/org/apache/wicket/examples/StartExamples.java b/wicket-examples/src/test/java/org/apache/wicket/examples/StartExamples.java index 18e6c26..9f08961 100644 --- a/wicket-examples/src/test/java/org/apache/wicket/examples/StartExamples.java +++ b/wicket-examples/src/test/java/org/apache/wicket/examples/StartExamples.java @@ -16,6 +16,7 @@ */ package org.apache.wicket.examples; +import java.io.File; import java.lang.management.ManagementFactory; import javax.management.MBeanServer; @@ -28,6 +29,8 @@ import org.eclipse.jetty.server.SecureRequestCustomizer; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.SslConnectionFactory; +import org.eclipse.jetty.server.session.DefaultSessionCache; +import org.eclipse.jetty.server.session.FileSessionDataStore; import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.webapp.WebAppContext; @@ -97,12 +100,18 @@ public class StartExamples bb.setContextPath("/"); bb.setWar("src/main/webapp"); + // uncomment next lines if you want to test with session persistence +// DefaultSessionCache sessionCache = new DefaultSessionCache(bb.getSessionHandler()); +// FileSessionDataStore sessionStore = new FileSessionDataStore(); +// sessionStore.setStoreDir(new File("./jetty-session-data")); +// sessionCache.setSessionDataStore(sessionStore); +// bb.getSessionHandler().setSessionCache(sessionCache); + ServerContainer serverContainer = WebSocketServerContainerInitializer.configureContext(bb); serverContainer.addEndpoint(new WicketServerEndpointConfig()); // uncomment next line if you want to test with JSESSIONID encoded in the urls - // ((AbstractSessionManager) - // bb.getSessionHandler().getSessionManager()).setUsingCookies(false); +// ((AbstractSessionManager) bb.getSessionHandler().getSessionManager()).setUsingCookies(false); server.setHandler(bb); http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java index a8a70ef..8302650 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java @@ -16,7 +16,6 @@ */ package org.apache.wicket.extensions.ajax.markup.html.modal; -import com.github.openjson.JSONObject; import org.apache.wicket.Component; import org.apache.wicket.Page; import org.apache.wicket.WicketRuntimeException; @@ -45,6 +44,8 @@ import org.apache.wicket.util.io.IClusterable; import org.apache.wicket.util.lang.EnumeratedType; import org.apache.wicket.util.string.AppendingStringBuffer; +import com.github.openjson.JSONObject; + /** * Modal window component. * <p> @@ -1043,7 +1044,7 @@ public class ModalWindow extends Panel CharSequence pageUrl; RequestCycle requestCycle = RequestCycle.get(); - page.getSession().getPageManager().touchPage(page); + page.getSession().getPageManager().addPage(page); if (page.isPageStateless()) { pageUrl = requestCycle.urlFor(page.getClass(), page.getPageParameters()); http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-jmx/src/main/java/org/apache/wicket/jmx/StoreSettingsMBean.java ---------------------------------------------------------------------- diff --git a/wicket-jmx/src/main/java/org/apache/wicket/jmx/StoreSettingsMBean.java b/wicket-jmx/src/main/java/org/apache/wicket/jmx/StoreSettingsMBean.java index 7f40a26..079019e 100644 --- a/wicket-jmx/src/main/java/org/apache/wicket/jmx/StoreSettingsMBean.java +++ b/wicket-jmx/src/main/java/org/apache/wicket/jmx/StoreSettingsMBean.java @@ -16,8 +16,7 @@ */ package org.apache.wicket.jmx; -import org.apache.wicket.pageStore.DiskDataStore; -import org.apache.wicket.pageStore.IDataStore; +import org.apache.wicket.pageStore.DiskPageStore; /** * JMX MBean for Application's StoreSettings @@ -26,19 +25,13 @@ public interface StoreSettingsMBean { /** - * @return the number of page instances which will be stored in the http session for faster - * retrieval - */ - int getInmemoryCacheSize(); - - /** - * @return maximum page size. After this size is exceeded, the {@link DiskDataStore} will start + * @return maximum page size. After this size is exceeded, the {@link DiskPageStore} will start * saving the pages at the beginning of file. */ long getMaxSizePerSession(); /** - * @return the location of the folder where {@link DiskDataStore} will store the files with page + * @return the location of the folder where {@link DiskPageStore} will store the files with page * instances per session */ String getFileStoreFolder(); @@ -50,7 +43,7 @@ public interface StoreSettingsMBean /** * @return {@code true} when the HTTP worker thread doesn't wait for the storing of the page's - * bytes in {@link IDataStore} + * bytes in {@link IPageStore} */ boolean isAsynchronous(); } http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-jmx/src/main/java/org/apache/wicket/jmx/wrapper/StoreSettings.java ---------------------------------------------------------------------- diff --git a/wicket-jmx/src/main/java/org/apache/wicket/jmx/wrapper/StoreSettings.java b/wicket-jmx/src/main/java/org/apache/wicket/jmx/wrapper/StoreSettings.java index 9a658fd..b40793e 100644 --- a/wicket-jmx/src/main/java/org/apache/wicket/jmx/wrapper/StoreSettings.java +++ b/wicket-jmx/src/main/java/org/apache/wicket/jmx/wrapper/StoreSettings.java @@ -37,12 +37,6 @@ public class StoreSettings implements StoreSettingsMBean } @Override - public int getInmemoryCacheSize() - { - return application.getStoreSettings().getInmemoryCacheSize(); - } - - @Override public long getMaxSizePerSession() { return application.getStoreSettings().getMaxSizePerSession().bytes(); http://git-wip-us.apache.org/repos/asf/wicket/blob/c43d3a33/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java index ca3569d..d3c9d4f 100644 --- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java +++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java @@ -300,7 +300,7 @@ public abstract class AbstractWebSocketProcessor implements IWebSocketProcessor { if (Session.exists()) { - Session.get().getPageManager().commitRequest(); + Session.get().getPageManager().detach(); } } });
