Index: modeshape-jcr/src/main/java/org/modeshape/jcr/JcrRepository.java =================================================================== --- modeshape-jcr/src/main/java/org/modeshape/jcr/JcrRepository.java (revision 1667) +++ modeshape-jcr/src/main/java/org/modeshape/jcr/JcrRepository.java (working copy) @@ -45,6 +45,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import javax.jcr.Credentials; +import javax.jcr.LoginException; import javax.jcr.NoSuchWorkspaceException; import javax.jcr.PropertyType; import javax.jcr.Repository; @@ -981,7 +982,7 @@ public class JcrRepository implements Repository { try { session.checkPermission(workspaceName, null, JcrSession.JCR_READ_PERMISSION); } catch (AccessControlException ace) { - throw new NoSuchWorkspaceException(JcrI18n.workspaceNameIsInvalid.text(sourceName, workspaceName)); + throw new LoginException(JcrI18n.workspaceNameIsInvalid.text(sourceName, workspaceName), ace); } synchronized (this.activeSessions) { Index: modeshape-jcr/src/test/java/org/modeshape/jcr/ModeShapeTckTest.java =================================================================== --- modeshape-jcr/src/test/java/org/modeshape/jcr/ModeShapeTckTest.java (revision 1667) +++ modeshape-jcr/src/test/java/org/modeshape/jcr/ModeShapeTckTest.java (working copy) @@ -5,7 +5,7 @@ import static org.junit.Assert.assertThat; import java.util.Collections; import javax.jcr.AccessDeniedException; import javax.jcr.Credentials; -import javax.jcr.NoSuchWorkspaceException; +import javax.jcr.LoginException; import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.PathNotFoundException; @@ -333,7 +333,7 @@ public class ModeShapeTckTest extends AbstractJCRTest { session = helper.getRepository().login(creds); fail("User 'noaccess' with no access to the default workspace should not be able to log into that workspace"); } - catch (NoSuchWorkspaceException le) { + catch (LoginException le) { // Expected }