Exist: [BUG] rename and move collection error

Created on 18 Mar 2020  ·  15Comments  ·  Source: eXist-db/exist

new collection then delete ,as shown below.
,user admin ,i uninstall old version existdb,install 5.2.0

Screenshots
If applicable, add screenshots to help explain your problem.
image

Context (please always complete the following information):

  • OS: [e.g. windows10]
  • eXist-db version: [e.g. 5.2.0]
  • Java Version "1.8.0_171"

Additional context

  • How is eXist-db installed? [e.g. JAR installer ]
  • Any custom changes in e.g. conf.xml?
    No
bug

Most helpful comment

@raducoravu Yes the fix will be in the upcoming release

All 15 comments

Please could you check for an error at the same moment in the exist.log log file?

image
when i move collection ,also error , and exist.log has no record about this.

i install 5.2.0 on my two computers , both err

@SnowMakerDemo Are you using the same version of the client and the server, i.e. both are 5.2.0?

@adamretter client is 5.2.0 as shown below.
image
where can i view the version of server

image
image
image
image

How about xmlrpc.log and xmldb.log?

@adamretter xmlprc.log has records. when i rename /db/test/0 to /db/test/4.
/db/test/0 has subcollection /db/test/0/2.

2020-03-19 16:36:10,087 [qtp515036017-27] INFO  (RpcConnection.java [createCollection]:183) - collection /db/test has been created 
2020-03-19 16:36:38,215 [qtp515036017-34] INFO  (RpcConnection.java [createCollection]:183) - collection /db/test/0 has been created 
2020-03-19 16:36:46,231 [qtp515036017-41] INFO  (RpcConnection.java [createCollection]:183) - collection /db/test/1 has been created 
2020-03-19 16:37:02,978 [qtp515036017-35] INFO  (RpcConnection.java [createCollection]:183) - collection /db/test/0/2 has been created 
2020-03-19 16:37:31,013 [qtp515036017-42] ERROR (XmlRpcErrorLogger.java [log]:36) - Failed to invoke method moveCollection in class org.exist.xmlrpc.RpcConnection: null 
org.apache.xmlrpc.common.XmlRpcInvocationException: Failed to invoke method moveCollection in class org.exist.xmlrpc.RpcConnection: null
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:129) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:106) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:46) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:86) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:200) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:112) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:196) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.exist.xmlrpc.RpcServlet.doPost(RpcServlet.java:99) ~[exist-core-5.2.0.jar:5.2.0]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1395) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:547) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:608) ~[jetty-security-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:161) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:79) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:51) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:207) ~[exist-core-5.2.0.jar:5.2.0]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1386) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226) ~[websocket-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566) ~[jetty-security-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:717) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.Server.handle(Server.java:500) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547) [jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) [jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270) [jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [jetty-io-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [jetty-io-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [jetty-io-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]
Caused by: java.lang.IllegalStateException
    at org.exist.storage.NativeBroker.checkCollectionAncestorPermissions(NativeBroker.java:941) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:858) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.getCollection(NativeBroker.java:811) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.moveCollectionRecursive(NativeBroker.java:1558) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.moveCollection(NativeBroker.java:1385) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$116(RpcConnection.java:3222) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.function.XmlRpcCollectionFunction.apply(XmlRpcCollectionFunction.java:47) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$132(RpcConnection.java:3904) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$115(RpcConnection.java:3220) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.function.XmlRpcCollectionFunction.apply(XmlRpcCollectionFunction.java:47) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$132(RpcConnection.java:3904) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$114(RpcConnection.java:3219) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.function.XmlRpcFunction.apply(XmlRpcFunction.java:45) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.withDb(RpcConnection.java:4061) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.withDb(RpcConnection.java:4045) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.moveOrCopyCollection(RpcConnection.java:3218) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.moveOrCopyCollection(RpcConnection.java:3206) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.moveCollection(RpcConnection.java:3401) ~[exist-core-5.2.0.jar:5.2.0]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:115) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    ... 69 more

@SnowMakerDemo Okay the relevant part is this:

Caused by: java.lang.IllegalStateException
    at org.exist.storage.NativeBroker.checkCollectionAncestorPermissions(NativeBroker.java:941) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:858) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.getCollection(NativeBroker.java:811) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.moveCollectionRecursive(NativeBroker.java:1558) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.moveCollection(NativeBroker.java:1385) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$116(RpcConnection.java:3222) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.function.XmlRpcCollectionFunction.apply(XmlRpcCollectionFunction.java:47) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$132(RpcConnection.java:3904) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$115(RpcConnection.java:3220) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.function.XmlRpcCollectionFunction.apply(XmlRpcCollectionFunction.java:47) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$132(RpcConnection.java:3904) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$114(RpcConnection.java:3219) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.function.XmlRpcFunction.apply(XmlRpcFunction.java:45) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.withDb(RpcConnection.java:4061) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.withDb(RpcConnection.java:4045) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.moveOrCopyCollection(RpcConnection.java:3218) ~[exist-core-5.2.0.jar:5.2.0]

This indicates that you are either renaming or moving a Collection. I am a bit confused as the title of the ticket is about deleting a collection... which operation is it - move, rename, or delete?

When you get that error, in one of the log files (most likely exist.log), you should see an error message generated by this code:

LOG.error("Parent collection {} was null for collection {} ", parentUri, collection.getURI());

Can you search your log files for the string "was null for collection" please, and then paste the relevant line?

Also if you can tell me how to reproduce what you are experiencing step-by-step from starting up a clean database, then I can attempt to reproduce it and fix it here.

@adamretter
image
image
image

rpc.log

2020-03-19 22:22:10,694 [qtp515036017-28] INFO  (RpcConnection.java [createCollection]:183) - collection /db/test has been created 
2020-03-19 22:22:18,418 [qtp515036017-46] INFO  (RpcConnection.java [createCollection]:183) - collection /db/test/0 has been created 
2020-03-19 22:22:24,572 [qtp515036017-26] INFO  (RpcConnection.java [createCollection]:183) - collection /db/test/1 has been created 
2020-03-19 22:22:30,722 [qtp515036017-46] INFO  (RpcConnection.java [createCollection]:183) - collection /db/test/0/3 has been created 
2020-03-19 22:23:52,514 [qtp515036017-31] ERROR (XmlRpcErrorLogger.java [log]:36) - Failed to invoke method moveCollection in class org.exist.xmlrpc.RpcConnection: null 
org.apache.xmlrpc.common.XmlRpcInvocationException: Failed to invoke method moveCollection in class org.exist.xmlrpc.RpcConnection: null
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:129) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:106) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:46) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:86) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:200) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:112) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:196) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    at org.exist.xmlrpc.RpcServlet.doPost(RpcServlet.java:99) ~[exist-core-5.2.0.jar:5.2.0]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1395) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:547) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:608) ~[jetty-security-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:161) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:79) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:51) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:207) ~[exist-core-5.2.0.jar:5.2.0]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1386) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226) ~[websocket-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566) ~[jetty-security-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:717) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.Server.handle(Server.java:500) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[jetty-io-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[jetty-io-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) ~[jetty-io-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) ~[jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) ~[jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) ~[jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:135) ~[jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]
Caused by: java.lang.IllegalStateException
    at org.exist.storage.NativeBroker.checkCollectionAncestorPermissions(NativeBroker.java:941) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:858) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.getCollection(NativeBroker.java:811) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.moveCollectionRecursive(NativeBroker.java:1558) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.storage.NativeBroker.moveCollection(NativeBroker.java:1385) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$116(RpcConnection.java:3222) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.function.XmlRpcCollectionFunction.apply(XmlRpcCollectionFunction.java:47) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$132(RpcConnection.java:3904) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$115(RpcConnection.java:3220) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.function.XmlRpcCollectionFunction.apply(XmlRpcCollectionFunction.java:47) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$132(RpcConnection.java:3904) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.lambda$114(RpcConnection.java:3219) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.function.XmlRpcFunction.apply(XmlRpcFunction.java:45) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.withDb(RpcConnection.java:4061) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.withDb(RpcConnection.java:4045) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.moveOrCopyCollection(RpcConnection.java:3218) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.moveOrCopyCollection(RpcConnection.java:3206) ~[exist-core-5.2.0.jar:5.2.0]
    at org.exist.xmlrpc.RpcConnection.moveCollection(RpcConnection.java:3401) ~[exist-core-5.2.0.jar:5.2.0]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:115) ~[xmlrpc-server-3.1.3.jar:3.1.3]
    ... 68 more

exist.log

2020-03-19 22:21:55,714 [qtp515036017-46] WARN  (Descriptor.java [<init>]:116) - Giving up unable to read descriptor.xml file from classloader in package org.exist.http, eXist-db Core, version 5.2 
2020-03-19 22:23:52,514 [qtp515036017-31] ERROR (NativeBroker.java [checkCollectionAncestorPermissions]:940) - Parent collection /db/test/0 was null for collection /db/test/0/3  
2020-03-19 22:23:52,514 [qtp515036017-31] WARN  (TransactionManager.java [close]:409) - Transaction was not committed or aborted, auto aborting! 

when delete collection which has sub collection, err as below , rpc.log has no error
image
image
image

@adamretter move collection which has sub collection ,error as below
image
image

rpc.log

2020-03-20 14:15:22,789 [qtp515036017-27] INFO (RpcConnection.java [createCollection]:183) - collection /db/moveTest has been created
2020-03-20 14:15:29,069 [qtp515036017-41] INFO (RpcConnection.java [createCollection]:183) - collection /db/moveTest/00 has been created
2020-03-20 14:15:32,193 [qtp515036017-41] INFO (RpcConnection.java [createCollection]:183) - collection /db/moveTest/01 has been created
2020-03-20 14:15:40,907 [qtp515036017-30] INFO (RpcConnection.java [createCollection]:183) - collection /db/moveTest/00/001 has been created
2020-03-20 14:15:50,112 [qtp515036017-33] INFO (RpcConnection.java [createCollection]:183) - collection /db/moveTest/00/001/moveto01 has been created
2020-03-20 14:18:56,502 [qtp515036017-30] ERROR (XmlRpcErrorLogger.java [log]:36) - Failed to invoke method moveCollection in class org.exist.xmlrpc.RpcConnection: null
org.apache.xmlrpc.common.XmlRpcInvocationException: Failed to invoke method moveCollection in class org.exist.xmlrpc.RpcConnection: null
at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:129) ~[xmlrpc-server-3.1.3.jar:3.1.3]
at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:106) ~[xmlrpc-server-3.1.3.jar:3.1.3]
at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:46) ~[xmlrpc-server-3.1.3.jar:3.1.3]
at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:86) ~[xmlrpc-server-3.1.3.jar:3.1.3]
at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:200) ~[xmlrpc-server-3.1.3.jar:3.1.3]
at org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:112) ~[xmlrpc-server-3.1.3.jar:3.1.3]
at org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:196) ~[xmlrpc-server-3.1.3.jar:3.1.3]
at org.exist.xmlrpc.RpcServlet.doPost(RpcServlet.java:99) ~[exist-core-5.2.0.jar:5.2.0]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[javax.servlet-api-3.1.0.jar:3.1.0]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1395) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:547) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:608) ~[jetty-security-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:161) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:79) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:51) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:207) ~[exist-core-5.2.0.jar:5.2.0]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1386) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226) ~[websocket-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566) ~[jetty-security-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485) ~[jetty-servlet-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:717) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.Server.handle(Server.java:500) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~[jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547) [jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) [jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270) [jetty-server-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [jetty-io-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [jetty-io-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [jetty-io-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) [jetty-util-9.4.26.v20200117.jar:9.4.26.v20200117]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]
Caused by: java.lang.IllegalStateException
at org.exist.storage.NativeBroker.checkCollectionAncestorPermissions(NativeBroker.java:941) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:858) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.storage.NativeBroker.getCollection(NativeBroker.java:811) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.storage.NativeBroker.moveCollectionRecursive(NativeBroker.java:1558) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.storage.NativeBroker.moveCollection(NativeBroker.java:1385) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.lambda$116(RpcConnection.java:3222) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.function.XmlRpcCollectionFunction.apply(XmlRpcCollectionFunction.java:47) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.lambda$132(RpcConnection.java:3904) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.lambda$115(RpcConnection.java:3220) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.function.XmlRpcCollectionFunction.apply(XmlRpcCollectionFunction.java:47) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.lambda$132(RpcConnection.java:3904) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.lambda$114(RpcConnection.java:3219) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.function.XmlRpcFunction.apply(XmlRpcFunction.java:45) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.withDb(RpcConnection.java:4061) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.withDb(RpcConnection.java:4045) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.moveOrCopyCollection(RpcConnection.java:3218) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.moveOrCopyCollection(RpcConnection.java:3206) ~[exist-core-5.2.0.jar:5.2.0]
at org.exist.xmlrpc.RpcConnection.moveCollection(RpcConnection.java:3401) ~[exist-core-5.2.0.jar:5.2.0]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:115) ~[xmlrpc-server-3.1.3.jar:3.1.3]
... 64 more

exist.log
image

@SnowMakerDemo I just pushed an additional test to https://github.com/eXist-db/exist/pull/3314 which shows that it fixes your move with sub-collection case as well.

@adamretter ok thank you :) 👍

I seem to get the same problem when moving a collection from Oxygen XML using xmldb API:

ro.sync.db.elem.DBException: org.xmldb.api.base.XMLDBException: Failed to invoke method moveCollection in class org.exist.xmlrpc.RpcConnection: null
at ro.sync.db.nxd.exist.CollectionManagementServiceUtil.copyOrMoveCollection(CollectionManagementServiceUtil.java:137)
at ro.sync.db.nxd.exist.ExistContainer.copyMove(ExistContainer.java:419)
at ro.sync.db.nxd.exist.ExistContainer.move(ExistContainer.java:347)
at ro.sync.db.elem.DBElement.copyMoveDnD(DBElement.java:389)
at ro.sync.db.elem.DBElement.moveDnD(DBElement.java:263)
at ro.sync.db.DBDnDTreeHandler$1.appRun(DBDnDTreeHandler.java:399)
at ro.sync.ui.application.ApplicationThread.run(ApplicationThread.java:92)
 Caused by: org.xmldb.api.base.XMLDBException: Failed to invoke method moveCollection in class org.exist.xmlrpc.RpcConnection: null
at org.exist.xmldb.RemoteCollection.execute(RemoteCollection.java:127)
at org.exist.xmldb.RemoteCollectionManagementService.move(RemoteCollectionManagementService.java:170)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at ro.sync.db.nxd.exist.CollectionManagementServiceUtil.copyOrMoveCollection(CollectionManagementServiceUtil.java:134)
... 6 more
Caused by: org.apache.xmlrpc.XmlRpcException: Failed to invoke method moveCollection in class org.exist.xmlrpc.RpcConnection: null
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147)
at org.exist.xmldb.RemoteCollection.execute(RemoteCollection.java:125)
... 12 more

I'm using on the server side Exist 5.2.0. @adamretter will your fix be available in the next Exist version?

@raducoravu Yes the fix will be in the upcoming release

Was this page helpful?
0 / 5 - 0 ratings