You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2007/02/13 20:00:11 UTC
svn commit: r507159 -
/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java
Author: reschke
Date: Tue Feb 13 11:00:10 2007
New Revision: 507159
URL: http://svn.apache.org/viewvc?view=rev&rev=507159
Log:
Avoid leaking SessionInfos.
Modified:
jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java?view=diff&rev=507159&r1=507158&r2=507159
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java Tue Feb 13 11:00:10 2007
@@ -72,10 +72,16 @@
public Session login(Credentials credentials, String workspaceName) throws LoginException, NoSuchWorkspaceException, RepositoryException {
String wspName = (workspaceName == null) ? config.getDefaultWorkspaceName() : workspaceName;
SessionInfo info = config.getRepositoryService().obtain(credentials, wspName);
- if (info instanceof XASessionInfo) {
- return new XASessionImpl((XASessionInfo) info, this, config);
- } else {
- return new SessionImpl(info, this, config);
+ try {
+ if (info instanceof XASessionInfo) {
+ return new XASessionImpl((XASessionInfo) info, this, config);
+ } else {
+ return new SessionImpl(info, this, config);
+ }
+ }
+ catch (RepositoryException ex) {
+ config.getRepositoryService().dispose(info);
+ throw ex;
}
}