I get this error when trying to post data back to my jsp-file. It seems like the outputstream is started when I manually start the response.sendRedirect, and when Magnolia starts rendering the template, the IllegalStateException is fired as the writing to outputstream has already begun.
Please advice. Best regards Rana On Tuesday, August 10, 2010, Rana Singh <[email protected]> wrote: > Dear all, > > We are using Magnolia version 4.3.5. > I am trying to redirect my response from my renderModel by using the > response-objects sendRedirect-method, but am facing exceptions as this starts > to commit the response before Magnolia is ready for it (am I right?). > I get the > java.lang.IllegalStateException: Cannot forward after response has been > committed > > I have a abstract super class which has method for redirecting urls. In my > class, I extend the abstract class and use the redirect-method, example as > below: > > public abstract class PortiaRenderModelSupport extends > RenderingModelImpl<RenderableDefinition> { > .... > protected void redirectToUrl(String url) { > try { > > getResponse().sendRedirect(getResponse().encodeRedirectURL(url)); > } catch (IOException e) { > logger.log(Level.WARNING, "Failed to redirect client to url: > " + url, e); > } > } > .... > } > > public class GenerateNewPasswordRenderModel extends PortiaRenderModelSupport { > ..... > @Override > public String execute() {..... > // redirect to some page > redirectToUrl("<some-valid-url>"); > > return super.execute(); > } > } > > Is this a bug in Magnolia or is there something I have forgotten/another way > to do forwarding? > > This is part of the stacktrace I get (rest is included in attachment-file): > java.lang.IllegalStateException: Cannot forward after response has been > committed > > info.magnolia.module.templating.renderers.JspTemplateRenderer.onRender(JspTemplateRenderer.java:73) > > info.magnolia.module.templating.AbstractRenderer.render(AbstractRenderer.java:86) > > info.magnolia.module.templating.renderers.AbstractTemplateRenderer.renderTemplate(AbstractTemplateRenderer.java:76) > > info.magnolia.module.templating.engine.DefaultRenderingEngine$RenderingHelper$2.render(DefaultRenderingEngine.java:105) > > info.magnolia.module.templating.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:168) > > info.magnolia.module.templating.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:127) > > info.magnolia.module.templating.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$dca34f60.render(<generated>) > > info.magnolia.module.templating.RenderingFilter.render(RenderingFilter.java:132) > > info.magnolia.module.templating.RenderingFilter.doFilter(RenderingFilter.java:92) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.BackwardCompatibilityFilter.doFilter(BackwardCompatibilityFilter.java:72) > > info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.InterceptFilter.doFilter(InterceptFilter.java:121) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.AggregatorFilter.doFilter(AggregatorFilter.java:103) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:61) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.RepositoryMappingFilter.doFilter(RepositoryMappingFilter.java:90) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:76) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84) > > info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:130) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:57) > > info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:123) > > info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:75) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:83) > > info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84) > > info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:61) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:89) > > info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:80) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84) > > info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:87) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:102) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:99) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) > > info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64) > > info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70) > > info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:96) > > info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:199) > > com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:67) > > com.wideplay.warp.persist.PersistenceFilter$3.run(PersistenceFilter.java:141) > > com.wideplay.warp.persist.internal.Lifecycles.failEarlyAndLeaveNoOneBehind(Lifecycles.java:29) > > com.wideplay.warp.persist.PersistenceFilter.doFilter(PersistenceFilter.java:155) > > com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:132) > > com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59) > > com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122) > com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110) > > > > Best regards and thanks for all help! > > -- > -- > Rana Ranjit Singh > Solutions Engineer | +47 413 50 220 > Iterate AS | www.iterate.no > The Lean Software Development Consultancy > -- -- Rana Ranjit Singh Solutions Engineer | +47 413 50 220 Iterate AS | www.iterate.no The Lean Software Development Consultancy ---------------------------------------------------------------- For list details see http://www.magnolia-cms.com/home/community/mailing-lists.html To unsubscribe, E-mail to: <[email protected]> ----------------------------------------------------------------
