Hi,
I've problem when attempting to clone the entire workspace, i.e.
calling Workspace#clone with srcAbsPath and destAbsPath = "/". I'm not
sure if that's permitted by the the spec, yet the exception I get
doesn't seem right so I'm asking anyway. I'm aware that even if the
exception gets fixed there is still the jcr:system node which can't be
cloned. Thus my question: Should it be possible to clone entire
workspace? That would mean allowing srcAbsPath and destAbsPath to be
'/' and skipping the jcr:system node. Is the current behavior just a
bug or is it not supported at all?
The complete stacktrace I'm getting:
ERROR - RequestCycle - Method onLinkClicked of interface
org.apache.wicket.markup.html.link.ILinkListener targeted at component
[MarkupContainer [Component id = publish, page =
com.ibg.dexter.web.admin.AdminPage, path =
7:admin:publish.AdminPanel$8, isVisible = true, isVersioned = true]]
threw an exception
org.apache.wicket.WicketRuntimeException: Method onLinkClicked of
interface org.apache.wicket.markup.html.link.ILinkListener targeted at
component [MarkupContainer [Component id = publish, page =
com.ibg.dexter.web.admin.AdminPage, path =
7:admin:publish.AdminPanel$8, isVisible = true, isVersioned = true]]
threw an exception
at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:194)
at
org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:90)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1166)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1243)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1330)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:358)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
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
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:295)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:503)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:827)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:511)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:210)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:379)
at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:183)
... 23 more
Caused by: com.ibg.dexter.jcr.exception.JcrException:
javax.jcr.PathNotFoundException: no such ancestor path of degree 1
at
com.ibg.dexter.jcr.api.wrapper.AbstractWrapper.handleException(AbstractWrapper.java:63)
at
com.ibg.dexter.jcr.api.wrapper.AbstractWrapper.executeCallback(AbstractWrapper.java:53)
at
com.ibg.dexter.jcr.api.wrapper.WorkspaceWrapper.clone(WorkspaceWrapper.java:42)
at com.ibg.dexter.Dexter.cloneWorkspace(Dexter.java:111)
at com.ibg.dexter.Dexter.publish(Dexter.java:151)
at com.ibg.dexter.web.admin.AdminPanel$8.onClick(AdminPanel.java:144)
at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:214)
... 27 more
Caused by: javax.jcr.PathNotFoundException: no such ancestor path of degree 1
at
org.apache.jackrabbit.spi.commons.name.PathFactoryImpl$PathImpl.getAncestor(PathFactoryImpl.java:443)
at
org.apache.jackrabbit.core.BatchedItemOperations.copy(BatchedItemOperations.java:280)
at
org.apache.jackrabbit.core.WorkspaceImpl.internalCopy(WorkspaceImpl.java:393)
at
org.apache.jackrabbit.core.WorkspaceImpl.clone283(WorkspaceImpl.java:1045)
at
org.apache.jackrabbit.core.WorkspaceImpl.clone(WorkspaceImpl.java:469)
at
com.ibg.dexter.jcr.api.wrapper.WorkspaceWrapper$1.execute(WorkspaceWrapper.java:44)
at
com.ibg.dexter.jcr.api.wrapper.AbstractWrapper.executeCallback(AbstractWrapper.java:51)
... 32 more
Thanks,
-Matej