mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Added guest user support to FTP server/filesystem authenticator. Changed authentication to use the standard authentication classes so FTP should work with LDAP and Kerberos setups.
Fixed server session transaction rollback problem. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2308 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -18,6 +18,8 @@ package org.alfresco.filesys.server;
|
||||
|
||||
import java.net.InetAddress;
|
||||
|
||||
import javax.transaction.Status;
|
||||
import javax.transaction.SystemException;
|
||||
import javax.transaction.UserTransaction;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
@@ -479,9 +481,27 @@ public abstract class SrvSession
|
||||
boolean created = false;
|
||||
|
||||
// If there is an active transaction check that it is the required type
|
||||
|
||||
|
||||
if ( m_transaction != null)
|
||||
{
|
||||
// Check if the current transaction is marked for rollback
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
if ( m_transaction.getStatus() == Status.STATUS_MARKED_ROLLBACK ||
|
||||
m_transaction.getStatus() == Status.STATUS_ROLLEDBACK ||
|
||||
m_transaction.getStatus() == Status.STATUS_ROLLING_BACK)
|
||||
{
|
||||
// Rollback the current transaction
|
||||
|
||||
m_transaction.rollback();
|
||||
}
|
||||
}
|
||||
catch ( SystemException ex)
|
||||
{
|
||||
}
|
||||
|
||||
// Check if the transaction is a write transaction, if write has been requested
|
||||
|
||||
if ( readOnly == false && m_readOnlyTrans == true)
|
||||
@@ -530,6 +550,48 @@ public abstract class SrvSession
|
||||
return created;
|
||||
}
|
||||
|
||||
/**
|
||||
* End a transaction by either committing or rolling back
|
||||
*
|
||||
* @exception AlfrescoRuntimeException
|
||||
*/
|
||||
public final void endTransaction()
|
||||
throws AlfrescoRuntimeException
|
||||
{
|
||||
// Check if there is an active transaction
|
||||
|
||||
if ( m_transaction != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Commit or rollback the transaction
|
||||
|
||||
if ( m_transaction.getStatus() == Status.STATUS_MARKED_ROLLBACK)
|
||||
{
|
||||
// Transaction is marked for rollback
|
||||
|
||||
m_transaction.rollback();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Commit the transaction
|
||||
|
||||
m_transaction.commit();
|
||||
}
|
||||
}
|
||||
catch ( Exception ex)
|
||||
{
|
||||
throw new AlfrescoRuntimeException("Failed to end transaction", ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
// Clear the current transaction
|
||||
|
||||
m_transaction = null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Determine if the session has an active transaction
|
||||
*
|
||||
|
Reference in New Issue
Block a user