From: Adam R. <ad...@ex...> - 2011-11-02 22:02:33
|
Okay I see the problem, I think that maybe WebDAV is not correctly URI encoding the filenames when they are stored in eXist-db. Simply if I upload and store a file with the name - ".~lock.Untitled.odt#" into eXist-db using the Java admin client or REST API, then this is fine, and I see this stored in WEB-INF/data/fs/db as the encoded filename - ".%7Elock.Untitled.odt%23" However when I upload a similar file with WebDAV, then I see that the file stored in WEB-INF/data/fs/db has this filename - ".~lock.Untitled.odt" - so somehow WebDAV is not doing the encoding at store time into eXist-db as the # is completely lost somehow, and the ~ has not been URI encoded. When I then try and examine the collection or file in eXist-db I get the same error as you Michael. Perhaps Dannes has some ideas on this one? On 2 November 2011 22:55, Adam Retter <ad...@ex...> wrote: > Im trying to reproduce this here, I have created similar files in my > DB by just uploading them, but I dont see any issue yet, so - > > 1) It maybe a problem because I havent used WebDAV to do this, what > are you using as the WebDav Client? > > 2) What is the XQuery that you are invoking, which is causing this > issue to appear? > > Thanks Adam. > > On 30 October 2011 05:44, Michael Westbay > <wes...@ja...> wrote: >> I had edited the file mlb-po-overall-2011-10-17.ods with LibraOffice >> within the database via WebDAV. This generated a file >> .~lock.mlb-po-overall-2011-10-17.ods#. I then use eXist to extract >> the XML content and process/populate data in the database. At some >> unknown time, well after I thought I had closed this file, I started >> getting the following error: >> >> Invalid URI: xmldb URI scheme has no instance name: >> xmldb:.~lock.mlb-po-overall-2011-10-17.ods# >> >> This error has since caused any WebDAV or admin client (web based and >> application based) to fail with a permission not allowed error to the >> collection *above* where this file resides. XPath/XQuery queries to >> the data in adjacent collections work. The stacktrace that I get >> trying to access the parent collection with the web based admin tool >> follows: >> >> 2011-10-30 11:36:45,611 [DefaultQuartzScheduler_Worker-4] DEBUG >> (NGramIndex.java [sync]:91) - SYNC NGRAM >> 2011-10-30 11:36:45,612 [DefaultQuartzScheduler_Worker-4] INFO >> (NativeBroker.java [sync]:3141) - Memory: 497,352K total; 748,352K >> max; 31,171K free >> 2011-10-30 11:36:45,612 [DefaultQuartzScheduler_Worker-4] INFO >> (BTree.java [printStatistics]:2420) - dom.dbx INDEX Buffers occupation >> : 100% (1093 out of 1093) Cache efficiency : 100% >> 2011-10-30 11:36:45,612 [DefaultQuartzScheduler_Worker-4] INFO >> (DOMFile.java [printStatistics]:1441) - dom.dbx DATA Buffers >> occupation : 100% (255 out of 256) Cache efficiency : 94% >> 2011-10-30 11:36:45,612 [DefaultQuartzScheduler_Worker-4] INFO >> (BTree.java [printStatistics]:2420) - collections.dbx INDEX Buffers >> occupation : 84% (54 out of 64) Cache efficiency : 100% >> 2011-10-30 11:36:45,612 [DefaultQuartzScheduler_Worker-4] INFO >> (BFile.java [printStatistics]:434) - collections.dbx DATA Buffers >> occupation : 99% (99 out of 100) Cache efficiency : 99% >> 2011-10-30 11:36:45,613 [DefaultQuartzScheduler_Worker-4] INFO >> (BTree.java [printStatistics]:2420) - values.dbx INDEX Buffers >> occupation : 100% (144 out of 144) Cache efficiency : 100% >> 2011-10-30 11:36:45,613 [DefaultQuartzScheduler_Worker-4] INFO >> (BFile.java [printStatistics]:434) - values.dbx DATA Buffers >> occupation : 100% (1796 out of 1797) Cache efficiency : 99% >> 2011-10-30 11:36:45,613 [DefaultQuartzScheduler_Worker-4] DEBUG >> (Journal.java [checkpoint]:328) - Checkpoint reached >> 2011-10-30 11:36:45,613 [DefaultQuartzScheduler_Worker-4] DEBUG >> (NotificationService.java [debug]:94) - Registered UpdateListeners: >> 2011-10-30 11:37:42,704 [eXistThread-49] DEBUG >> (HttpRequestWrapper.java [<init>]:129) - Retrieved 2 parameters. >> 2011-10-30 11:37:42,706 [eXistThread-49] DEBUG (XQuery.java >> [execute]:249) - Execution took 1 ms >> 2011-10-30 11:37:42,706 [eXistThread-49] DEBUG (HTTPUtils.java >> [addLastModifiedHeader]:61) - mostRecentDocumentTime: 0 >> 2011-10-30 11:37:42,707 [eXistThread-49] DEBUG >> (HttpRequestWrapper.java [<init>]:129) - Retrieved 2 parameters. >> 2011-10-30 11:37:42,714 [eXistThread-49] ERROR (XQueryServlet.java >> [process]:573) - Invalid URI: xmldb URI scheme has no instance name: >> xmldb:.~lock.mlb-po-overall-2011-10-17.ods# >> java.lang.IllegalArgumentException: Invalid URI: xmldb URI scheme has >> no instance name: xmldb:.~lock.mlb-po-overall-2011-10-17.ods# >> at org.exist.xmldb.XmldbURI.create(XmldbURI.java:181) >> at org.exist.dom.BinaryDocument.read(BinaryDocument.java:105) >> at org.exist.storage.NativeBroker$DocumentCallback.indexInfo(NativeBroker.java:3439) >> at org.exist.storage.btree.BTree$BTreeNode.query(BTree.java:1689) >> at org.exist.storage.btree.BTree$BTreeNode.query(BTree.java:1620) >> at org.exist.storage.btree.BTree$BTreeNode.access$3(BTree.java:1591) >> at org.exist.storage.btree.BTree.query(BTree.java:327) >> at org.exist.storage.NativeBroker.getCollectionResources(NativeBroker.java:1872) >> at org.exist.collections.Collection.read(Collection.java:731) >> at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:755) >> at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:724) >> at org.exist.storage.NativeBroker.getCollection(NativeBroker.java:719) >> at org.exist.xmldb.LocalCollection.getCollection(LocalCollection.java:213) >> at org.exist.xmldb.LocalCollection.<init>(LocalCollection.java:154) >> at org.exist.xmldb.LocalCollection.<init>(LocalCollection.java:123) >> at org.exist.xquery.functions.xmldb.XMLDBAbstractCollectionManipulator.createLocalCollection(XMLDBAbstractCollectionManipulator.java:77) >> at org.exist.xquery.functions.xmldb.XMLDBAbstractCollectionManipulator.eval(XMLDBAbstractCollectionManipulator.java:129) >> at org.exist.xquery.BasicFunction.eval(BasicFunction.java:68) >> at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:55) >> at org.exist.xquery.LetExpr.eval(LetExpr.java:155) >> at org.exist.xquery.LetExpr.eval(LetExpr.java:208) >> at org.exist.xquery.ForExpr.eval(ForExpr.java:317) >> at org.exist.xquery.BindingExpression.eval(BindingExpression.java:156) >> at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:135) >> at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61) >> at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:278) >> at org.exist.xquery.FunctionCall.eval(FunctionCall.java:205) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:83) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:70) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:279) >> at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:135) >> at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:72) >> at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61) >> at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:278) >> at org.exist.xquery.FunctionCall.eval(FunctionCall.java:205) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:70) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:279) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:279) >> at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:56) >> at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:63) >> at org.exist.xquery.LetExpr.eval(LetExpr.java:210) >> at org.exist.xquery.BindingExpression.eval(BindingExpression.java:156) >> at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:135) >> at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:72) >> at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61) >> at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:278) >> at org.exist.xquery.FunctionCall.eval(FunctionCall.java:205) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.SwitchExpression.eval(SwitchExpression.java:110) >> at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:56) >> at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:63) >> at org.exist.xquery.LetExpr.eval(LetExpr.java:210) >> at org.exist.xquery.BindingExpression.eval(BindingExpression.java:156) >> at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:135) >> at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:72) >> at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61) >> at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:278) >> at org.exist.xquery.FunctionCall.eval(FunctionCall.java:205) >> at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:70) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:279) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:279) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:279) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:83) >> at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:56) >> at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:63) >> at org.exist.xquery.LetExpr.eval(LetExpr.java:210) >> at org.exist.xquery.LetExpr.eval(LetExpr.java:208) >> at org.exist.xquery.LetExpr.eval(LetExpr.java:208) >> at org.exist.xquery.BindingExpression.eval(BindingExpression.java:156) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.PathExpr.eval(PathExpr.java:243) >> at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) >> at org.exist.xquery.XQuery.execute(XQuery.java:246) >> at org.exist.xquery.XQuery.execute(XQuery.java:201) >> at org.exist.http.servlets.XQueryServlet.process(XQueryServlet.java:512) >> at org.exist.http.servlets.XQueryServlet.doGet(XQueryServlet.java:217) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) >> at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538) >> at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) >> at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) >> at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:517) >> at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) >> at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937) >> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) >> at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) >> at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871) >> at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) >> at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:239) >> at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:115) >> at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:47) >> at org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:525) >> at org.exist.http.urlrewrite.XQueryURLRewrite.doFilter(XQueryURLRewrite.java:344) >> at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1323) >> at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:476) >> at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) >> at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:480) >> at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) >> at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937) >> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) >> at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) >> at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871) >> at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) >> at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) >> at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) >> at org.eclipse.jetty.server.Server.handle(Server.java:346) >> at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589) >> at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1048) >> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:601) >> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:214) >> at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411) >> at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:531) >> at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) >> at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529) >> at java.lang.Thread.run(Thread.java:636) >> >> I have tried to restore the problem directory from a backup, but I get >> similar exceptions as well. >> >> I have shut down the server, removed the .~lock file from the >> $EXIST_HOME/webapp/WEB-INF/data/fs structure, then restarted, also >> without a change. >> >> Reindexing also hasn't worked. >> >> Do you have any recommendation of other things I can try? >> >> -- >> Michael Westbay >> Writer/System Administrator >> http://www.japanesebaseball.com/ >> >> ------------------------------------------------------------------------------ >> Get your Android app more play: Bring it to the BlackBerry PlayBook >> in minutes. BlackBerry App World™ now supports Android™ Apps >> for the BlackBerry® PlayBook™. Discover just how easy and simple >> it is! http://p.sf.net/sfu/android-dev2dev >> _______________________________________________ >> Exist-development mailing list >> Exi...@li... >> https://lists.sourceforge.net/lists/listinfo/exist-development >> > > > > -- > Adam Retter > > eXist Developer > { United Kingdom } > ad...@ex... > irc://irc.freenode.net/existdb > -- Adam Retter eXist Developer { United Kingdom } ad...@ex... irc://irc.freenode.net/existdb |