[ 
https://issues.apache.org/jira/browse/PLUTO-238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David DeWolf resolved PLUTO-238.
--------------------------------

    Resolution: Won't Fix

> Wrapping RenderResponse causes ClassCastException
> -------------------------------------------------
>
>                 Key: PLUTO-238
>                 URL: https://issues.apache.org/jira/browse/PLUTO-238
>             Project: Pluto
>          Issue Type: Bug
>          Components: portlet container
>    Affects Versions: 1.0.1
>            Reporter: Eric Dalquist
>         Assigned To: Elliot Metsger
>             Fix For: 1.0.2
>
>         Attachments: CacheManagingDispatcherPortlet.java, 
> CachingHttpServletResponse.java, PLUTO238-01.patch
>
>
> I have a portlet that is attempting to wrap the RenderResponse to capture 
> data written to the PrintWriter or OutputStream to do some more advanced 
> caching. It appears that pluto depends on the implementation of the 
> RenderResponse that is passed into the PortletRequestDispatcher. I don't 
> think this is required by the portlet specification as the portlet 
> request/response objects are defined by interfaces implying the 
> implementation should not matter. The stack trace I get is:
> java.lang.ClassCastException: 
> edu.wisc.my.portlet.caching.support.CachingRenderResponse
>       at 
> org.apache.pluto.core.CoreUtils.getInternalResponse(CoreUtils.java:46)
>       at 
> org.apache.pluto.core.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:45)
>       at 
> org.springframework.web.portlet.DispatcherPortlet.render(DispatcherPortlet.java:948)
>       at 
> edu.wisc.my.portlet.caching.CacheManagingDispatcherPortlet.render(CacheManagingDispatcherPortlet.java:209)
>       at 
> org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:726)
>       at 
> edu.wisc.my.portlet.caching.CacheManagingDispatcherPortlet.doRenderService(CacheManagingDispatcherPortlet.java:179)
>       at 
> org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:420)
>       at 
> org.springframework.web.portlet.FrameworkPortlet.doDispatch(FrameworkPortlet.java:391)
>       at javax.portlet.GenericPortlet.render(GenericPortlet.java:178)
>       at 
> org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:205)
>       at org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:145)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>       at org.apache.pluto.core.PortletServlet.service(PortletServlet.java:140)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
>       at 
> org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120)
>       at 
> org.apache.pluto.invoker.impl.PortletInvokerImpl.render(PortletInvokerImpl.java:73)
>       at 
> org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:105)
>       at 
> org.jasig.portal.channels.portlet.CPortletAdapter.getMarkup(CPortletAdapter.java:690)
>       at 
> org.jasig.portal.channels.portlet.CPortletAdapter.renderCharacters(CPortletAdapter.java:593)
>       at 
> org.jasig.portal.MultithreadedCharacterChannelAdapter.renderCharacters(MultithreadedCharacterChannelAdapter.java:41)
>       at 
> org.jasig.portal.ChannelRenderer$Worker.execute(ChannelRenderer.java:603)
>       at org.jasig.portal.utils.threading.BaseTask.run(BaseTask.java:27)
>       at 
> edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:431)
>       at 
> edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:166)
>       at 
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:643)
>       at 
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:668)
>       at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to