Hi Felix,
just tested it and it works for me :-)

Thanks a lot!

Regards,
Alex


On Jan 23, 2008 4:09 PM, Felix Meschberger <[EMAIL PROTECTED]> wrote:

> Hi Alex,
>
> Sorry for the delay, I just found (and hopefully fixed) the problem. It
> is caused by the DefaultSlingScript which gets the request reader. This
> causes the exception to be thrown for multipart/form-data requests.
>
> I fix this by using a lazy reader just like we have a lazy writer.
>
> Hope this helps.
>
> Regards
> Felix
>
>
> Am Montag, den 21.01.2008, 16:42 +0100 schrieb Alexander Saar:
> > Hi Felix,
> > thanks for the reply.
> >
> > I switched to using request.getRequestParameterMap() in my POST.jsp, but
> > nothing changed and the error is the same. After inspecting the stack
> > trace and my repository again I think the error occurs when Sling tries
> > to read the input and build the request parameter map, because my script
> > is never compiled or executed (at least there is no compiled class in
> > the repository).
> >
> > To verify this I used an simple POST.jsp that just outputs a plain
> > string and does not access any parameters. When I post my file I get the
> > same exception.
> >
> > Regards,
> > Alex
> >
> >
> > Felix Meschberger schrieb:
> > > Hi Alexander,
> > >
> > > If you upload the file with a multipart/form-data POST, Sling will
> > > already have read the input and will provide the data in the
> > > RequestParameterMap as RequestParameter instances, which allow you
> > > access to the uploaded file data.
> > >
> > > Hope, this helps.
> > >
> > > Regards
> > > Felix
> > >
> > > Am Montag, den 21.01.2008, 01:01 +0100 schrieb Alexander Saar:
> > >
> > >> Hi all,
> > >> I have a problem with the file upload in Sling. I have a form that
> > >> uploads a file and an according POST.jsp for handling the upload. The
> > >> log shows that POST.jsp is resolved correct, but when I try to upload
> > >> the file, I get the following exception:
> > >>
> > >> javax.servlet.ServletException: null
> > >>    org.apache.sling.scripting.resolver.impl.DefaultSlingScript.eval(
> DefaultSlingScript.java:97)
> > >>
> org.apache.sling.servlet.resolver.helper.SlingScriptServlet.service(
> SlingScriptServlet.java:74)
> > >>    org.apache.sling.core.impl.request.RequestData.service(
> RequestData.java:415)
> > >>    org.apache.sling.core.impl.SlingMainServlet.processRequest(
> SlingMainServlet.java:287)
> > >>    org.apache.sling.core.impl.filter.RequestSlingFilterChain.render(
> RequestSlingFilterChain.java:48)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:54)
> > >>    org.apache.sling.core.impl.filter.ThemeResolverFilter.doFilter(
> ThemeResolverFilter.java:76)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:52)
> > >>    org.apache.sling.core.impl.filter.LocaleResolverFilter.doFilter(
> LocaleResolverFilter.java:85)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:52)
> > >>    org.apache.sling.core.impl.log.RequestLoggerFilter.doFilter(
> RequestLoggerFilter.java:206)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:52)
> > >>    org.apache.sling.core.impl.SlingMainServlet.service(
> SlingMainServlet.java:187)
> > >>    org.apache.sling.core.impl.SlingMainServlet.service(
> SlingMainServlet.java:159)
> > >>
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest
> (ServletRegistration.java:90)
> > >>
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(
> ProxyServlet.java:109)
> > >>    org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(
> ProxyServlet.java:75)
> > >>    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> > >>    org.apache.sling.launcher.webapp.SlingServlet.service(
> SlingServlet.java:195)
> > >>
> > >> *root cause*
> > >>
> > >> javax.script.ScriptException: null
> > >>
> org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval
> (JspScriptEngineFactory.java:272)
> > >>    org.apache.sling.scripting.resolver.impl.DefaultSlingScript.eval(
> DefaultSlingScript.java:85)
> > >>
> org.apache.sling.servlet.resolver.helper.SlingScriptServlet.service(
> SlingScriptServlet.java:74)
> > >>    org.apache.sling.core.impl.request.RequestData.service(
> RequestData.java:415)
> > >>    org.apache.sling.core.impl.SlingMainServlet.processRequest(
> SlingMainServlet.java:287)
> > >>    org.apache.sling.core.impl.filter.RequestSlingFilterChain.render(
> RequestSlingFilterChain.java:48)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:54)
> > >>    org.apache.sling.core.impl.filter.ThemeResolverFilter.doFilter(
> ThemeResolverFilter.java:76)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:52)
> > >>    org.apache.sling.core.impl.filter.LocaleResolverFilter.doFilter(
> LocaleResolverFilter.java:85)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:52)
> > >>    org.apache.sling.core.impl.log.RequestLoggerFilter.doFilter(
> RequestLoggerFilter.java:206)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:52)
> > >>    org.apache.sling.core.impl.SlingMainServlet.service(
> SlingMainServlet.java:187)
> > >>    org.apache.sling.core.impl.SlingMainServlet.service(
> SlingMainServlet.java:159)
> > >>
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest
> (ServletRegistration.java:90)
> > >>
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(
> ProxyServlet.java:109)
> > >>    org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(
> ProxyServlet.java:75)
> > >>    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> > >>    org.apache.sling.launcher.webapp.SlingServlet.service(
> SlingServlet.java:195)
> > >>
> > >> *root cause*
> > >>
> > >> java.lang.IllegalStateException: getReader() has already been called
> for this request
> > >>    org.apache.catalina.connector.Request.getInputStream(Request.java
> :978)
> > >>    org.apache.catalina.connector.RequestFacade.getInputStream(
> RequestFacade.java:340)
> > >>    javax.servlet.ServletRequestWrapper.getInputStream(
> ServletRequestWrapper.java:146)
> > >>
> org.apache.commons.fileupload.servlet.ServletRequestContext.getInputStream
> (ServletRequestContext.java:92)
> > >>    org.apache.commons.fileupload.FileUploadBase.parseRequest(
> FileUploadBase.java:329)
> > >>
> org.apache.sling.core.impl.parameters.ParameterSupport.parseMultiPartPost(
> ParameterSupport.java:166)
> > >>
> org.apache.sling.core.impl.parameters.ParameterSupport.getRequestParameterMapInternal
> (ParameterSupport.java:110)
> > >>
> org.apache.sling.core.impl.parameters.ParameterSupport.getRequestParameter
> (ParameterSupport.java:87)
> > >>
> org.apache.sling.core.impl.parameters.ParameterSupport.getParameter(
> ParameterSupport.java:68)
> > >>
> org.apache.sling.core.impl.SlingHttpServletRequestImpl.getParameter(
> SlingHttpServletRequestImpl.java:125)
> > >>    org.apache.sling.scripting.jsp.JspServletWrapperAdapter.preCompile
> (JspServletWrapperAdapter.java:78)
> > >>    org.apache.sling.scripting.jsp.JspServletWrapperAdapter.service(
> JspServletWrapperAdapter.java:49)
> > >>    org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(
> JspScriptEngineFactory.java:126)
> > >>    org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$000(
> JspScriptEngineFactory.java:71)
> > >>
> org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval
> (JspScriptEngineFactory.java:268)
> > >>    org.apache.sling.scripting.resolver.impl.DefaultSlingScript.eval(
> DefaultSlingScript.java:85)
> > >>
> org.apache.sling.servlet.resolver.helper.SlingScriptServlet.service(
> SlingScriptServlet.java:74)
> > >>    org.apache.sling.core.impl.request.RequestData.service(
> RequestData.java:415)
> > >>    org.apache.sling.core.impl.SlingMainServlet.processRequest(
> SlingMainServlet.java:287)
> > >>    org.apache.sling.core.impl.filter.RequestSlingFilterChain.render(
> RequestSlingFilterChain.java:48)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:54)
> > >>    org.apache.sling.core.impl.filter.ThemeResolverFilter.doFilter(
> ThemeResolverFilter.java:76)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:52)
> > >>    org.apache.sling.core.impl.filter.LocaleResolverFilter.doFilter(
> LocaleResolverFilter.java:85)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:52)
> > >>    org.apache.sling.core.impl.log.RequestLoggerFilter.doFilter(
> RequestLoggerFilter.java:206)
> > >>
> org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(
> AbstractSlingFilterChain.java:52)
> > >>    org.apache.sling.core.impl.SlingMainServlet.service(
> SlingMainServlet.java:187)
> > >>    org.apache.sling.core.impl.SlingMainServlet.service(
> SlingMainServlet.java:159)
> > >>
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest
> (ServletRegistration.java:90)
> > >>
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(
> ProxyServlet.java:109)
> > >>    org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(
> ProxyServlet.java:75)
> > >>    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> > >>    org.apache.sling.launcher.webapp.SlingServlet.service(
> SlingServlet.java:195)
> > >>
> > >> Seems like somebody is calling getReader() before ParameterSupport
> code
> > >> is executed. But I was not able to figure out where this happens.
> > >>
> > >> Any ideas?
> > >>
> > >> Regards,
> > >> Alex
> > >>
> > >>
> > >
> > >
> >
>
>


-- 
Alexander Saar

Mobile: +49.177.5985437
E-Mail: [EMAIL PROTECTED]
Web:    http://alexander.saar.googlepages.com
Blog:   http://weblogs.goshaky.com/weblogs/saar/

Reply via email to