This happened after the file "base_media.jpg" was deleted? If so, it looks like the file metadata is being cached (it clearly knows the file doesn't exist, but why is it showing up in the directory listing?).
I have a major new update to GaeVFS that I'm preparing to release. Since it's changed so much, I'd rather wait until it's integrated with OpenBD/GAE and then debug this problem on the newest code base (if we're lucky, maybe it's already fixed). Vince On Wed, Nov 25, 2009 at 2:17 PM, Aaron Lynch <[email protected]> wrote: > Vince, here is the error again, since i switched to using the gaevfs > servlet mapping. > > Uncaught exception from servlet > org.apache.commons.vfs.FileSystemException: Could not determine the > last modified timestamp of > > "gae:///base/data/home/apps/ajl-srv-003/1.338007617304526892/files/base_media.jpg" > because it does not exist. > at > org.apache.commons.vfs.provider.DefaultFileContent.getLastModifiedTime(DefaultFileContent.java:161) > at > com.newatlanta.commons.vfs.provider.gae.GaeVfsServlet.getListHTML(GaeVfsServlet.java:231) > at > com.newatlanta.commons.vfs.provider.gae.GaeVfsServlet.doGet(GaeVfsServlet.java:162) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) > at > org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:391) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > at > com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > at > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) > at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > at > com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) > at org.mortbay.jetty.Server.handle(Server.java:313) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) > at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830) > at > com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) > at > com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:139) > at > com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:239) > at > com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5135) > at > com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5133) > at > com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24) > at > com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:363) > at com.google.net.rpc.impl.Server$2.run(Server.java:814) > at > com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56) > at > com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:516) > at com.google.net.rpc.impl.Server.startRpc(Server.java:769) > at com.google.net.rpc.impl.Server.processRequest(Server.java:351) > at > com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:437) > at > com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319) > at > com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290) > at > com.google.net.async.Connection.handleReadEvent(Connection.java:436) > at > com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:762) > at > com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207) > at > com.google.net.async.EventDispatcher.loop(EventDispatcher.java:101) > at > com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251) > at > com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:396) > at java.lang.Thread.run(Unknown Source) > > Unexpected exception from servlet: > org.apache.commons.vfs.FileSystemException: Could not determine the > last modified timestamp of > > "gae:///base/data/home/apps/ajl-srv-003/1.338007617304526892/files/base_media.jpg" > because it does not exist. > > > > > > On Wed, Nov 25, 2009 at 12:16 PM, Vince Bonfanti <[email protected]> > wrote: > > > > I just tried a dozen or more uploads/deletes and couldn't reproduce the > problem. As with any bug, it's going to be tough to fix it we can't > reproduce it reliably. > > Vince > > > > On Wed, Nov 25, 2009 at 1:04 PM, Aaron Lynch <[email protected]> > wrote: > >> > >> I deleted them using cffile. > >> > >> If you have a google account, you can go here > http://ajl-srv-003.appspot.com/ and upload/delete a few times and > hopefully get the error. As far as testable code, there isn't anything > tricky going on. just cfdirectory listing/creating and cffile > upload/deleting > >> > >> Aaron Lynch > >> > >> www.AaronJLynch.com > >> www.InstantSpot.com > >> > >> On Wed, Nov 25, 2009 at 11:59 AM, Vince Bonfanti <[email protected]> > wrote: > >>> > >>> Yes, there is some caching going on within GaeVFS. How did you delete > the files? from the GAE admin console, or by using CFFILE? Deleting from the > GAE admin console is going to cause problems--you should always use CFFILE. > If you're using CFFILE, can you give me a reproducible testcase? > >>> Vince > >>> > >>> On Wed, Nov 25, 2009 at 11:24 AM, Aaron Lynch <[email protected]> > wrote: > >>>> > >>>> I am running into some issues with cfdirectory when I have deleted > files from the virtual file system. Is openBD caching the directory list? > Is there a workaround for this? > >>>> > >>>> Error: http://imgur.com/tSPLY.jpg > >>>> > >>>> Aaron Lynch > >>>> www.AaronJLynch.com > >>>> www.InstantSpot.com > >>>> > >>>> > >>>> On Tue, Nov 24, 2009 at 1:07 PM, Paul Kukiel <[email protected]> > wrote: > >>>>> > >>>>> I can't believe how easy this was to solve. Impressed. > >>>>> > >>>>> Thanks Aaron. > >>>>> > >>>>> Paul. > >>>>> > >>>>> -----Original Message----- > >>>>> From: Aaron Lynch [mailto:[email protected]] > >>>>> Sent: Tuesday, November 24, 2009 2:02 PM > >>>>> To: Open BlueDragon > >>>>> Subject: [OpenBD] Re: Open BD GAE VFS > >>>>> > >>>>> Hey Paul, here is one way of accessing your images from the VFS. > >>>>> > >>>>> > http://aaronjlynch.com/blog/2009/11/24/Google-App-Engines-Virtual-File-Syste > >>>>> m-with-OpenBD > >>>>> > >>>>> > >>>>> cliffs: <img src="getfile.cfm?f=myimagename.jpg"/> > >>>>> > >>>>> > >>>>> -Aaron > >>>>> www.AaronJLynch.com > >>>>> www.InstantSpot.com > >>>>> > >>>>> > >>>>> On Nov 9, 7:02 pm, "Paul Kukiel" <[email protected]> wrote: > >>>>> > I have OpenBD on GAE. > >>>>> > > >>>>> > I used cfhttp to get a file ( picture.png ) I then used cffile to > write > >>>>> this > >>>>> > to the VFS. > >>>>> > > >>>>> > cfdirectory lists the file here: > >>>>> > > >>>>> > > >>>>> > /base/data/home/apps/myapp/1.337642045380650872/gae:/base/data/home/apps/web > >>>>> > sheppaul/1.337642045380650872 > >>>>> > > >>>>> > As z.png > >>>>> > > >>>>> > How can I then reference that file so I can then use z.png as an > image ie > >>>>> > <img src="somePath" /> > >>>>> > > >>>>> > Paul. > >>>>> > >>>>> -- > >>>>> Open BlueDragon Public Mailing List > >>>>> http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon > >>>>> mailing list - http://groups.google.com/group/openbd?hl=en > >>>>> > >>>>> !! save a network - please trim replies before posting !! > >>>>> > >>>>> -- > >>>>> Open BlueDragon Public Mailing List > >>>>> http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon > >>>>> mailing list - http://groups.google.com/group/openbd?hl=en > >>>>> > >>>>> !! save a network - please trim replies before posting !! > >>>> > >>>> -- > >>>> Open BlueDragon Public Mailing List > >>>> http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon > >>>> mailing list - http://groups.google.com/group/openbd?hl=en > >>>> > >>>> !! save a network - please trim replies before posting !! > >>> > >>> -- > >>> Open BlueDragon Public Mailing List > >>> http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon > >>> mailing list - http://groups.google.com/group/openbd?hl=en > >>> > >>> !! save a network - please trim replies before posting !! > >> > >> -- > >> Open BlueDragon Public Mailing List > >> http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon > >> mailing list - http://groups.google.com/group/openbd?hl=en > >> > >> !! save a network - please trim replies before posting !! > > > > -- > > Open BlueDragon Public Mailing List > > http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon > > mailing list - http://groups.google.com/group/openbd?hl=en > > > > !! save a network - please trim replies before posting !! > > -- > Open BlueDragon Public Mailing List > http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon > mailing list - http://groups.google.com/group/openbd?hl=en > > !! save a network - please trim replies before posting !! > -- Open BlueDragon Public Mailing List http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon mailing list - http://groups.google.com/group/openbd?hl=en !! save a network - please trim replies before posting !!
