diff --git a/source/java/org/alfresco/filesys/auth/cifs/CifsAuthenticatorBase.java b/source/java/org/alfresco/filesys/auth/cifs/CifsAuthenticatorBase.java index 9e9abe2675..86f62751ee 100644 --- a/source/java/org/alfresco/filesys/auth/cifs/CifsAuthenticatorBase.java +++ b/source/java/org/alfresco/filesys/auth/cifs/CifsAuthenticatorBase.java @@ -54,6 +54,7 @@ import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.transaction.TransactionService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.DisposableBean; /** * CIFS Authenticator Base Class @@ -63,7 +64,7 @@ import org.apache.commons.logging.LogFactory; * * @author gkspencer */ -public abstract class CifsAuthenticatorBase extends CifsAuthenticator +public abstract class CifsAuthenticatorBase extends CifsAuthenticator implements DisposableBean { // Logging @@ -521,4 +522,12 @@ public abstract class CifsAuthenticatorBase extends CifsAuthenticator return txService.getUserTransaction( txService.isReadOnly() ? true : false); } + + /** + * Handle tidy up on container shutdown + */ + public void destroy() throws Exception + { + closeAuthenticator(); + } } \ No newline at end of file diff --git a/source/java/org/alfresco/filesys/auth/ftp/FTPAuthenticatorBase.java b/source/java/org/alfresco/filesys/auth/ftp/FTPAuthenticatorBase.java index e1b598166c..cbfdf4a090 100644 --- a/source/java/org/alfresco/filesys/auth/ftp/FTPAuthenticatorBase.java +++ b/source/java/org/alfresco/filesys/auth/ftp/FTPAuthenticatorBase.java @@ -41,12 +41,13 @@ import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.transaction.TransactionService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.DisposableBean; /** * * @author gkspencer */ -public abstract class FTPAuthenticatorBase implements FTPAuthenticator { +public abstract class FTPAuthenticatorBase implements FTPAuthenticator, DisposableBean { // Logging @@ -249,4 +250,14 @@ public abstract class FTPAuthenticatorBase implements FTPAuthenticator { return txService.getUserTransaction( txService.isReadOnly() ? true : false); } + + /** + * Handle tidy up on container shutdown + */ + public void destroy() + { + closeAuthenticator(); + } + + } diff --git a/source/java/org/alfresco/repo/management/DefaultManagedApplicationContextFactory.java b/source/java/org/alfresco/repo/management/DefaultManagedApplicationContextFactory.java index 3fc4f7f011..564304446f 100644 --- a/source/java/org/alfresco/repo/management/DefaultManagedApplicationContextFactory.java +++ b/source/java/org/alfresco/repo/management/DefaultManagedApplicationContextFactory.java @@ -169,8 +169,12 @@ public class DefaultManagedApplicationContextFactory extends AbstractLifecycleBe * (non-Javadoc) * @see org.alfresco.repo.management.ManagedApplicationContextFactory#getApplicationContext() */ - public ApplicationContext getApplicationContext() + public synchronized ApplicationContext getApplicationContext() { + if (this.applicationContext == null) + { + onStart(); + } return this.applicationContext; } @@ -181,7 +185,7 @@ public class DefaultManagedApplicationContextFactory extends AbstractLifecycleBe @Override protected void onBootstrap(ApplicationEvent event) { - if (this.autoStart) + if (this.autoStart && this.applicationContext == null) { onStart(); }