You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by Slide Tao <ta...@hotmail.com> on 2004/05/28 04:32:26 UTC

is it a bug of slide client API?? Plx help!!

hi,

I read the WebdavSource class and try to write my own getMethod() method. I 
add a new line to get some part of a file, not the whole file, by 
setRequestHeader("Range","byte = XXX-XXX"). But the new getMehtod does work 
correctly after I add this new line. If I delete the new line, the method 
works ok. So I wonder is it a bug of client API??

my code is here:

        HttpURL hrl = new 
HttpURL("http://localhost:8080/slide/files/test.text");
        hrl.setUserinfo(username,password);
        WebdavResource wdr =  new WebdavResource(hrl);
    try{
        HttpClient client = wdr.getSessionInstance(hrl);

       GetMethod getMethod = new 
GetMethod(URIUtil.encodePathQuery("http://localhost:8080/slide/files/test.text"));
       getMethod1.setRequestHeader("Range", "bytes="0-1024");
       int status1 = client.executeMethod(getMethod);
       if (status1 == 206) {
              InputStream in = getMethod1.getResponseBodyAsStream();
              int len = (int)(1024);
              byte[] filePart = new byte[len];
              in.read(filePart);
              in.close() ;
       }


        wdr.close() ;
     }
        catch(Exception e){
        	wdr.close() ;
     }

The exception is following:

10:18:53,195 ERROR [Engine] StandardWrapperValve[webdav]: Servlet.service() 
for servlet webdav threw exception
java.lang.NullPointerException
        at java.lang.StringBuffer.replace(StringBuffer.java:717)
        at 
org.apache.slide.webdav.filter.LogFilter.logLine(LogFilter.java:184)
        at 
org.apache.slide.webdav.filter.LogFilter.doFilter(LogFilter.java:150)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.jboss.web.catalina.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:227)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:551)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
        at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
        at java.lang.Thread.run(Thread.java:534)

_________________________________________________________________
The new MSN 8: advanced junk mail protection and 2 months FREE* 
http://join.msn.com/?page=features/junkmail


---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org


Re: is it a bug of slide client API?? Plx help!!

Posted by Ingo Brunberg <ib...@fiz-chemie.de>.
There's nothing wrong with the client code. The exception is thrown in
the servlet. Quite possible that there is an unknown bug because
nobody ever tried to get a range out of Slide before you.

Would you file a bug report in Bugzilla, please.

Regards,
Ingo

> hi,
> 
> I read the WebdavSource class and try to write my own getMethod() method. I 
> add a new line to get some part of a file, not the whole file, by 
> setRequestHeader("Range","byte = XXX-XXX"). But the new getMehtod does work 
> correctly after I add this new line. If I delete the new line, the method 
> works ok. So I wonder is it a bug of client API??
> 
> my code is here:
> 
>         HttpURL hrl = new 
> HttpURL("http://localhost:8080/slide/files/test.text");
>         hrl.setUserinfo(username,password);
>         WebdavResource wdr =  new WebdavResource(hrl);
>     try{
>         HttpClient client = wdr.getSessionInstance(hrl);
> 
>        GetMethod getMethod = new 
> GetMethod(URIUtil.encodePathQuery("http://localhost:8080/slide/files/test.text"));
>        getMethod1.setRequestHeader("Range", "bytes="0-1024");
>        int status1 = client.executeMethod(getMethod);
>        if (status1 == 206) {
>               InputStream in = getMethod1.getResponseBodyAsStream();
>               int len = (int)(1024);
>               byte[] filePart = new byte[len];
>               in.read(filePart);
>               in.close() ;
>        }
> 
> 
>         wdr.close() ;
>      }
>         catch(Exception e){
>         	wdr.close() ;
>      }
> 
> The exception is following:
> 
> 10:18:53,195 ERROR [Engine] StandardWrapperValve[webdav]: Servlet.service() 
> for servlet webdav threw exception
> java.lang.NullPointerException
>         at java.lang.StringBuffer.replace(StringBuffer.java:717)
>         at 
> org.apache.slide.webdav.filter.LogFilter.logLine(LogFilter.java:184)
>         at 
> org.apache.slide.webdav.filter.LogFilter.doFilter(LogFilter.java:150)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>         at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>         at 
> org.jboss.web.catalina.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:227)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>         at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:551)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>         at 
> org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>         at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>         at 
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>         at 
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>         at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>         at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>         at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>         at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>         at 
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
>         at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
>         at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
>         at java.lang.Thread.run(Thread.java:534)
> 
> _________________________________________________________________
> The new MSN 8: advanced junk mail protection and 2 months FREE* 
> http://join.msn.com/?page=features/junkmail


---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org