You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2009/06/30 15:13:46 UTC
svn commit: r789706 - in /jackrabbit/branches/1.x: ./
jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/
jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/
Author: jukka
Date: Tue Jun 30 13:13:46 2009
New Revision: 789706
URL: http://svn.apache.org/viewvc?rev=789706&view=rev
Log:
1.x: Merged revisions 779032 and 779040 (JCR-1665 and JCR-1597)
Added:
jackrabbit/branches/1.x/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionRequestInfoTest.java
- copied unchanged from r779032, jackrabbit/trunk/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionRequestInfoTest.java
Modified:
jackrabbit/branches/1.x/ (props changed)
jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAConnectionRequestInfo.java
jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java
jackrabbit/branches/1.x/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java
Propchange: jackrabbit/branches/1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 30 13:13:46 2009
@@ -1 +1 @@
-/jackrabbit/trunk:770143-773197,773483,773525-773554,773584,773588,773828,773835-775756,775833,775836,775840,775868,775981,775986,776036,776256,776310,776313,776321-776322,776332,776356-776357,776362,776373,776650-776693,776737,776757,776776-776777,777024,777029,777034,777478,777509,777541,777548,777936,778445,778613,778616,778621,778645,778720,778802
+/jackrabbit/trunk:770143-773197,773483,773525-773554,773584,773588,773828,773835-775756,775833,775836,775840,775868,775981,775986,776036,776256,776310,776313,776321-776322,776332,776356-776357,776362,776373,776650-776693,776737,776757,776776-776777,777024,777029,777034,777478,777509,777541,777548,777936,778445,778613,778616,778621,778645,778720,778802,779032,779040
Modified: jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAConnectionRequestInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAConnectionRequestInfo.java?rev=789706&r1=789705&r2=789706&view=diff
==============================================================================
--- jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAConnectionRequestInfo.java (original)
+++ jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAConnectionRequestInfo.java Tue Jun 30 13:13:46 2009
@@ -72,7 +72,7 @@
*/
public int hashCode() {
int hash1 = workspace != null ? workspace.hashCode() : 0;
- int hash2 = creds != null ? creds.hashCode() : 0;
+ int hash2 = creds != null ? computeCredsHashCode(creds) : 0;
return hash1 ^ hash2;
}
@@ -170,4 +170,33 @@
return map;
}
+
+ /**
+ * Returns Credentials instance hash code. Handles instances of
+ * SimpleCredentials in a special way.
+ */
+ private int computeCredsHashCode(Credentials c) {
+ if (c instanceof SimpleCredentials) {
+ return computeSimpleCredsHashCode((SimpleCredentials) c);
+ }
+ return c.hashCode();
+ }
+
+ /**
+ * Computes hash code of a SimpleCredentials instance. Ignores its own
+ * hashCode() method because it's not overridden in SimpleCredentials.
+ */
+ private int computeSimpleCredsHashCode(SimpleCredentials c) {
+ String userID = c.getUserID();
+ char[] password = c.getPassword();
+ Map m = getAttributeMap(c);
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((userID == null) ? 0 : userID.hashCode());
+ for (int i = 0; i < password.length; i++) {
+ result = prime * result + password[i];
+ }
+ result = prime * result + ((m == null) ? 0 : m.hashCode());
+ return result;
+ }
}
Modified: jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java?rev=789706&r1=789705&r2=789706&view=diff
==============================================================================
--- jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java (original)
+++ jackrabbit/branches/1.x/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java Tue Jun 30 13:13:46 2009
@@ -98,7 +98,9 @@
return (Session) cm.allocateConnection(mcf, cri);
} 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/branches/1.x/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.x/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java?rev=789706&r1=789705&r2=789706&view=diff
==============================================================================
--- jackrabbit/branches/1.x/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java (original)
+++ jackrabbit/branches/1.x/jackrabbit-jca/src/test/java/org/apache/jackrabbit/jca/test/ConnectionFactoryTest.java Tue Jun 30 13:13:46 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);
+ }
+ }
}