You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ck...@apache.org on 2009/05/27 09:36:51 UTC
svn commit: r779040 - in /jackrabbit/trunk/jackrabbit-jca/src:
main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java
test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java
Author: ckoell
Date: Wed May 27 07:36:50 2009
New Revision: 779040
URL: http://svn.apache.org/viewvc?rev=779040&view=rev
Log:
JCR-1597: JCARepositoryHandle.login(...) methods never throw NoSuchWorkspaceException
Modified:
jackrabbit/trunk/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java
jackrabbit/trunk/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java
Modified: jackrabbit/trunk/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java?rev=779040&r1=779039&r2=779040&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java (original)
+++ jackrabbit/trunk/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java Wed May 27 07:36:50 2009
@@ -73,6 +73,9 @@
mcf, new JCAConnectionRequestInfo(creds, workspace));
} catch (ResourceException e) {
Throwable cause = e.getCause();
+ if (cause == null) {
+ cause = e.getLinkedException();
+ }
if (cause instanceof LoginException) {
throw (LoginException) cause;
} else if (cause instanceof NoSuchWorkspaceException) {
Modified: jackrabbit/trunk/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java?rev=779040&r1=779039&r2=779040&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java Wed May 27 07:36:50 2009
@@ -16,17 +16,19 @@
*/
package org.apache.jackrabbit.jca.test;
-import org.apache.jackrabbit.api.XASession;
-import org.apache.jackrabbit.jca.JCAConnectionRequestInfo;
-import org.apache.jackrabbit.jca.JCARepositoryHandle;
-import org.apache.jackrabbit.jca.JCASessionHandle;
+import java.io.Serializable;
+import java.util.HashSet;
+import javax.jcr.NoSuchWorkspaceException;
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.naming.Referenceable;
import javax.resource.spi.ManagedConnection;
-import java.io.Serializable;
-import java.util.HashSet;
+
+import org.apache.jackrabbit.api.XASession;
+import org.apache.jackrabbit.jca.JCAConnectionRequestInfo;
+import org.apache.jackrabbit.jca.JCARepositoryHandle;
+import org.apache.jackrabbit.jca.JCASessionHandle;
/**
* This case executes tests on the connection factory.
@@ -118,5 +120,18 @@
assertTrue(session instanceof XASession);
session.logout();
}
+
+ /**
+ * Tests if a NoSuchWorkspaceException is thrown if a wrong workspace name is given to login
+ */
+ public void testExceptionHandling() throws Exception {
+ Object cf = mcf.createConnectionFactory();
+ Repository repository = (Repository) cf;
+ try {
+ repository.login(JCR_SUPERUSER, "xxx");
+ } catch (Exception e) {
+ assertTrue(e instanceof NoSuchWorkspaceException);
+ }
+ }
}