[
https://issues.apache.org/jira/browse/JCR-2701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12896125#action_12896125
]
Cory Prowse commented on JCR-2701:
----------------------------------
Another example showing the same exception when attempting to clone a node
after successfully creating an empty workspace.
(note that the exact same exception is thrown if the createWorkspace method
does not provide a srcWorkspace)
Exception stacktrace follows code.
--
package au.jcr;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
@Startup
@Singleton
public class JcrStartupSingleton {
@Resource(name = "jcr/repository", type = javax.jcr.Repository.class)
private Repository repository;
@PostConstruct
public void setupWorkspaces() throws RepositoryException {
final Session productionSession = repository.login(new
SimpleCredentials("admin", "".toCharArray()), "production");
try {
// Same error occurs even if following line excludes 2nd parameter
for srcWorkspace
productionSession.getWorkspace().createWorkspace("staging",
"production");
productionSession.getRootNode().addNode("example");
productionSession.save();
} finally {
productionSession.logout();
}
final Session stagingSession = repository.login(new
SimpleCredentials("admin", "".toCharArray()), "staging");
try {
// Exception is thrown here (is line 34)
stagingSession.getWorkspace().clone("production", "/example",
"/example", false);
stagingSession.save();
} finally {
stagingSession.logout();
}
}
}
---
javax.ejb.EJBException: javax.ejb.CreateException: Initialization failed for
Singleton JcrStartupSingleton
at
com.sun.ejb.containers.AbstractSingletonContainer$SingletonContextFactory.create(AbstractSingletonContainer.java:698)
...
Caused by: javax.ejb.CreateException: Initialization failed for Singleton
JcrStartupSingleton
at
com.sun.ejb.containers.AbstractSingletonContainer.createSingletonEJB(AbstractSingletonContainer.java:528)
...
Caused by: javax.jcr.PathNotFoundException: /example
at
org.apache.jackrabbit.core.BatchedItemOperations.getNodeState(BatchedItemOperations.java:1456)
at
org.apache.jackrabbit.core.BatchedItemOperations.copy(BatchedItemOperations.java:387)
at
org.apache.jackrabbit.core.WorkspaceImpl.internalCopy(WorkspaceImpl.java:404)
at
org.apache.jackrabbit.core.WorkspaceImpl.clone(WorkspaceImpl.java:606)
at
au.jcr.JcrStartupSingleton.setupWorkspaces(JcrStartupSingleton.java:34)
> createWorkspace throws PathNotFoundException
> --------------------------------------------
>
> Key: JCR-2701
> URL: https://issues.apache.org/jira/browse/JCR-2701
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 2.1.0
> Environment: Jackrabbit is deployed using released JCA on Glassfish
> 3.0.1
> Reporter: Cory Prowse
>
> The following code throws a PathNotFoundException:
> ---
> package au.jcr;
> import javax.annotation.PostConstruct;
> import javax.annotation.Resource;
> import javax.ejb.Singleton;
> import javax.ejb.Startup;
> import javax.jcr.Repository;
> import javax.jcr.RepositoryException;
> import javax.jcr.Session;
> import javax.jcr.SimpleCredentials;
> @Startup
> @Singleton
> public class JcrStartupSingleton {
> @Resource(name = "jcr/repository", type = javax.jcr.Repository.class)
> private Repository repository;
> @PostConstruct
> public void setupWorkspaces() throws RepositoryException {
> final Session session = repository.login(new
> SimpleCredentials("admin", "".toCharArray()), "production");
> try {
> session.getRootNode().addNode("example");
> session.save();
> // Exception is thrown here (is line 27)
> session.getWorkspace().createWorkspace("staging", "production");
> } finally {
> session.logout();
> }
> }
> }
> ---
> javax.ejb.EJBException: javax.ejb.CreateException: Initialization failed for
> Singleton JcrStartupSingleton
> at
> com.sun.ejb.containers.AbstractSingletonContainer$SingletonContextFactory.create(AbstractSingletonContainer.java:698)
> ...
> Caused by: javax.ejb.CreateException: Initialization failed for Singleton
> JcrStartupSingleton
> at
> com.sun.ejb.containers.AbstractSingletonContainer.createSingletonEJB(AbstractSingletonContainer.java:528)
> ...
> Caused by: javax.jcr.PathNotFoundException: /example
> at
> org.apache.jackrabbit.core.BatchedItemOperations.getNodeState(BatchedItemOperations.java:1456)
> at
> org.apache.jackrabbit.core.BatchedItemOperations.copy(BatchedItemOperations.java:387)
> at
> org.apache.jackrabbit.core.WorkspaceImpl.internalCopy(WorkspaceImpl.java:404)
> at
> org.apache.jackrabbit.core.WorkspaceImpl.clone(WorkspaceImpl.java:606)
> at
> org.apache.jackrabbit.core.WorkspaceImpl.createWorkspace(WorkspaceImpl.java:221)
> at
> au.jcr.JcrStartupSingleton.setupWorkspaces(JcrStartupSingleton.java:27)
> ...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.