OK, then just throw the ObjectNotFoundException if the object is not
there as indicated in the last post.

Concerning the occurennce of the method calls, they are just needed by
the Slide core...

Oliver

On Mon, 06 Dec 2004 10:51:18 -0500, John Rousseau
<[EMAIL PROTECTED]> wrote:
> Hmmmm. That's just not what I am seeing. I have a printout in each of my 
> BasicWebdavStore implementation methods.
> 
> Here's what I see when I use the slide webdav client to "put 
> /etc/resolv.conf" into "/music" in my system.
> 
> %% WebdavStoreImpl: begin
> %% objectExists: /music/resolv.conf
> %% objectExists: /
> %% getChildrenNames: /
> %% objectExists: /music
> %% getChildrenNames: /music
> %% objectExists: /music/resolv.conf
> %% objectExists: /music/resolv.conf
> %% objectExists: /music/resolv.conf
> %% objectExists: /music/resolv.conf
> %% objectExists: /music/resolv.conf
> %% objectExists: /music
> %% objectExists: /music
> %% objectExists: /music
> %% objectExists: /music/resolv.conf
> %% setResourceContent: /music/resolv.conf
> %% createResource: /music/resolv.conf
> %% WebdavStoreImpl: commit
> 
> Note the order of the setResourceContent and createResource calls.
> 
> Here's the trace for setResourceContent:
> java.lang.Exception: Stack trace
>         at java.lang.Thread.dumpStack(Thread.java:1064)
>         at 
> com.ris.manager.gateway.http.WebdavStoreImpl.setResourceContent(WebdavStoreImpl.java:195)
>         at 
> org.apache.slide.simple.store.WebdavStoreAdapter$TransactionId.storeRevisionContent(WebdavStoreAdapter.java:520)
>         at 
> org.apache.slide.simple.store.WebdavStoreAdapter.storeRevisionContent(WebdavStoreAdapter.java:159)
>         at 
> org.apache.slide.store.AbstractStore.storeRevisionContent(AbstractStore.java:1474)
>         at 
> org.apache.slide.store.ExtendedStore.storeRevisionContent(ExtendedStore.java:546)
>         at org.apache.slide.content.ContentImpl.create(ContentImpl.java:593)
>         at 
> org.apache.slide.webdav.method.PutMethod.executeRequest(PutMethod.java:407)
>         at 
> org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:412)
>         at 
> org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:151)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:354)
>         at 
> org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:342)
>         at 
> org.apache.slide.webdav.filter.LogFilter.doFilter(LogFilter.java:141)
>         at 
> org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:334)
>         at 
> com.ris.manager.gateway.http.IPAddressRestriction.doFilter(IPAddressRestriction.java:248)
>         at 
> org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:334)
>         at 
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:286)
>         at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1808)
>         at 
> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1758)
>         at org.mortbay.http.HttpServer.service(HttpServer.java:879)
>         at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
>         at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:952)
>         at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
>         at 
> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197)
>         at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
>         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:501)
> 
> Here's the trace for createResource:
>         at 
> com.ris.manager.gateway.http.WebdavStoreImpl.createResource(WebdavStoreImpl.java:176)
>         at 
> org.apache.slide.simple.store.WebdavStoreAdapter$TransactionId.storeRevisionDescriptor(WebdavStoreAdapter.java:675)
>         at 
> org.apache.slide.simple.store.WebdavStoreAdapter.storeRevisionDescriptor(WebdavStoreAdapter.java:255)
>         at 
> org.apache.slide.store.AbstractStore.storeRevisionDescriptor(AbstractStore.java:1305)
>         at 
> org.apache.slide.store.ExtendedStore.storeRevisionDescriptor(ExtendedStore.java:1060)
>         at org.apache.slide.content.ContentImpl.create(ContentImpl.java:608)
>         at 
> org.apache.slide.webdav.method.PutMethod.executeRequest(PutMethod.java:407)
>         at 
> org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:412)
>         at 
> org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:151)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:354)
>         at 
> org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:342)
>         at 
> org.apache.slide.webdav.filter.LogFilter.doFilter(LogFilter.java:141)
>         at 
> org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:334)
>         at 
> com.ris.manager.gateway.http.IPAddressRestriction.doFilter(IPAddressRestriction.java:248)
>         at 
> org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:334)
>         at 
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:286)
>         at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1808)
>         at 
> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
>         at org.mortbay.http.HttpContext.handle(HttpContext.java:1758)
>         at org.mortbay.http.HttpServer.service(HttpServer.java:879)
>         at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
>         at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:952)
>         at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
>         at 
> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197)
>         at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
>         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:501)
> 
> Also, why so many calls to "objectExists", and it is really necessary to 
> getChildrenNames on all the parents?
> 
> Thanks again!
> -John
> 
> 
> 
> 
> Oliver Zeigermann wrote:
> > Just checked it and it works the way it should be.
> >
> > Maybe the confusion is caused by Slide's weird init proc where it
> > tries to set content before creation of a folder? In this case you
> > will have to throw an ObjectNotFoundException as you can not store
> > anything to a non-existing file. The start of the code of
> > setResourceContent in the file RI looks like this
> >
> >             File file = getFile(resourceUri);
> >             if (!file.exists())
> >                 throw new ObjectNotFoundException(resourceUri);
> >
> > I hope this helps,
> >
> > Oliver
> >
> >
> > On Fri, 3 Dec 2004 23:58:48 +0100, Oliver Zeigermann
> > <[EMAIL PROTECTED]> wrote:
> >
> >>What you expected is the way it should be. If it is not this is a bug.
> >>I will check this with the reference implementation.
> >>
> >>Oliver
> >>
> >>
> >>
> >>On Fri, 03 Dec 2004 15:59:59 -0500, John Rousseau
> >><[EMAIL PROTECTED]> wrote:
> >>
> >>>I'm trying to understand the BasicWebdavStore API a bit better.
> >>>
> >>>I was expecting that during a PUT, createResource() would be called with
> >>>the name of a new resource and then setResourceContent() would be then
> >>>called to supply the content itself.
> >>>
> >>>What I'm seeing is that setResourceContent is being called first and
> >>>then createResource. In my implementation of createResource, I check to
> >>>see if the resource already exists and if so throw
> >>>ObjectAlreadyExistsException. Since I just created the resource in
> >>>setResourceCountent, this causes me to throw and the WCK then calls
> >>>rollback.
> >>>
> >>>Can someone describe these two methods in a bit more detail and explain
> >>>what I should be doing in them?
> >>>
> >>>Should I just make createResource a no-op?
> >>>
> >>>Thanks
> >>>-John
> >>>
> >>>---
> >>>John Rousseau
> >>>Archivas, Inc.
> >>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> ---------------------------------------------------------------------
> 
> 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to