cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Fagerstrom <dani...@nada.kth.se>
Subject Re: Uploads not working with blocks, proposal for fix
Date Sat, 28 Oct 2006 10:12:40 GMT
Lars Trieloff skrev:
> Hi Daniel,
> 
> I've just noted that uploads with CForms are not working with the Blocks 
> Framework. The reason is a bug in 
> org.apache.cocoon.environment.http.HttpRequest.get() that checks for a 
> wrapped MultipartHttpServletRequest.

Checking for a class doesn't seem to be a good idea I think we should 
check for an interface instead.

> With the Blocks framework the 
> actual MultipartHttpServletRequest is wrapped into an anonymous 
> HttpServletRequestWrapper in DispatcherServlet.
> 
> My proposal to fix the bug without including cyclic dependencies is to 
> create a new abstract class 
> org.apache.cocoon.AbstractValueHttpServletRequestWrapper that includes a 
> get-method, extends HttpRequestWraper and will be extended by 
> MultipartHttpServletRequestWrapper as well as by the anonymous class in 
> DispatcherServlet. The HttpRequest would check for this class and 
> uploads are working again.
> 
> What do you think?

Using the MultipartFilter is optional so I don't think that the blocks 
fw should assume that it is used and that we have a 
MultipartHttpServletRequest as request.

Maybe we instead could make the DispatcherServlet less intrusive on the 
request object by modifying the getServletPath() and getPathInfo() on 
the incomming request object by a dynamic proxy instead of wrapping it 
with a request wrapper.

WDYT?

/Daniel


Mime
View raw message