[ http://issues.apache.org/struts/browse/WW-1385?page=all ]
Ted Husted updated WW-1385:
---------------------------
Summary: including an action in the freemarker decorator will
cause an IOException: Stream Closed (was: Strange behavior with <ww:action>
tag)
Fix Version/s: Future
(was: 2.0.1)
Affects Version/s: 2.0.0
(was: 2.0.1)
Nick Hill's comment from 17 Jul 06:
----
The patch provided by Toby fixes issue #2, however, issue #4 is not fixed. It
is caused by doing an action include in a freemarker sitemesh template. The
stack trace is below:
Jul 17, 2006 1:43:51 PM com.opensymphony.webwork.components.ActionComponent
executeAction
SEVERE: Could not execute action: //accountbox
java.io.IOException: Stream closed
at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:203)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:114)
at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:172)
at
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:604)
at
com.opensymphony.webwork.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:94)
at
com.jivesoftware.base.util.webwork.ServletDispatcherResult.doDefaultExecute(ServletDispatcherResult.java:129)
at
com.jivesoftware.base.util.webwork.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:115)
at
com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:143)
at
com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:311)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:206)
at
com.jivesoftware.base.action.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:40)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:168)
at
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
at
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.jivesoftware.base.action.interceptor.JiveObjectLoaderInterceptor.intercept(JiveObjectLoaderInterceptor.java:55)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.jivesoftware.base.action.interceptor.JiveLoginInterceptor.intercept(JiveLoginInterceptor.java:41)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.jivesoftware.forum.action.ForumsInterceptor.intercept(ForumsInterceptor.java:183)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.jivesoftware.base.action.interceptor.AuthInterceptor.intercept(AuthInterceptor.java:44)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.jivesoftware.forum.action.LocaleInterceptor.intercept(LocaleInterceptor.java:96)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:186)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at
com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
at
com.opensymphony.webwork.components.ActionComponent.executeAction(ActionComponent.java:226)
at
com.opensymphony.webwork.components.ActionComponent.end(ActionComponent.java:124)
at
com.opensymphony.webwork.views.freemarker.tags.CallbackWriter.afterBody(CallbackWriter.java:65)
at freemarker.core.Environment.visit(Environment.java:235)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:116)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.Environment.process(Environment.java:176)
at freemarker.template.Template.process(Template.java:231)
at com.jivesoftware.base.theme.ThemeFilter.applyDecorator(ThemeFilter.java:83)
at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:59)
at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at
com.jivesoftware.base.util.webwork.JiveActionContextCleanUp.doFilter(JiveActionContextCleanUp.java:63)
at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at com.jivesoftware.base.PresenceFilter.doFilter(PresenceFilter.java:105)
at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at
com.jivesoftware.util.SetRequestCharacterEncodingFilter.doFilter(SetRequestCharacterEncodingFilter.java:72)
at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at
com.jivesoftware.base.util.MaintenanceFilter.doFilter(MaintenanceFilter.java:83)
at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at com.jivesoftware.forum.upgrade.UpgradeFilter.doFilter(UpgradeFilter.java:46)
at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at
com.jivesoftware.base.util.ApplicationInitializedFilter.doFilter(ApplicationInitializedFilter.java:66)
at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
at org.mortbay.http.HttpServer.service(HttpServer.java:909)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
This could be a problem with the sitemesh freemarker decorator servlet or with
the webwork action tag. I'm not sure which is causing the problem. A simple way
to reproduce this is the pass in the ?freemarker=true parameter when viewing
the main page in the sample app. This parameter will tell the app to use a
freemarker decorator instead of the jsp decorator. You can see that main.ftl in
the app is the exact same as main.jsp, however, having the <@ww.action> tag
there causes a stream closed exception.
If you suspect this is a sitemesh problem, just let me know and I will work
with them on getting it resolved.
Thanks.
> including an action in the freemarker decorator will cause an IOException:
> Stream Closed
> ----------------------------------------------------------------------------------------
>
> Key: WW-1385
> URL: http://issues.apache.org/struts/browse/WW-1385
> Project: Struts 2
> Issue Type: Bug
> Components: Actions
> Affects Versions: 2.0.0, WW 2.2.2
> Reporter: tm_jee
> Assigned To: tm_jee
> Fix For: Future
>
>
> This is created as a reminder to port fixed from WW to Struts2
> http://jira.opensymphony.com/browse/WW-1288?page=comments#action_29344
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira