(org.springframework.transaction.support.DefaultTransactionStatus) */ protected void doCommit(DefaultTransactionStatus status) throws TransactionException { ContextSourceAndJpaTransactionObject actualTransactionObject = (ContextSourceAndJpaTransactionObject) status.getTransaction(); try { super.doCommit(new DefaultTransactionStatus( actualTransactionObject.getJpaTransactionObject(), status.isNewTransaction(), status.isNewSynchronization(), status.isReadOnly(), status.isDebug(), status.getSuspendedResources()) ); } catch (TransactionException ex) { if (isRollbackOnCommitFailure()) { logger.debug("Failed to commit db resource, rethrowing", ex); // If we are to rollback on commit failure, just rethrow the // exception - this will cause a rollback to be performed on // both resources. throw ex; } else { logger.warn( "Failed to commit and resource is rollbackOnCommit not set -" + " proceeding to commit ldap resource."); } } ldapManagerDelegate.doCommit(new DefaultTransactionStatus( actualTransactionObject.getLdapTransactionObject(), status.isNewTransaction(), status.isNewSynchronization(), status.isReadOnly(), status.isDebug(), status.getSuspendedResources()) ); } /** * @see org.springframework.orm.jpa.JpaTransactionManager#doRollback(org.springframework.transaction.support.DefaultTransactionStatus) */ protected void doRollback(DefaultTransactionStatus status) throws TransactionException { ContextSourceAndJpaTransactionObject actualTransactionObject = (ContextSourceAndJpaTransactionObject) status.getTransaction(); super.doRollback(new DefaultTransactionStatus( actualTransactionObject.getJpaTransactionObject(), status.isNewTransaction(), status.isNewSynchronization(), status.isReadOnly(), status.isDebug(), status.getSuspendedResources()) ); ldapManagerDelegate.doRollback(new DefaultTransactionStatus( actualTransactionObject.getLdapTransactionObject(), status.isNewTransaction(), status.isNewSynchronization(), status.isReadOnly(), status.isDebug(), status.getSuspendedResources()) ); } public ContextSource getContextSource() { return ldapManagerDelegate.getContextSource(); } public void setContextSource(ContextSource contextSource) { ldapManagerDelegate.setContextSource(contextSource); } protected void setRenamingStrategy(TempEntryRenamingStrategy renamingStrategy) { ldapManagerDelegate.setRenamingStrategy(renamingStrategy); } private final static class ContextSourceAndJpaTransactionObject { private Object ldapTransactionObject; private Object jpaTransactionObject; public ContextSourceAndJpaTransactionObject( Object ldapTransactionObject, Object jpaTransactionObject) { this.ldapTransactionObject = ldapTransactionObject; this.jpaTransactionObject = jpaTransactionObject; } public Object getJpaTransactionObject() { return jpaTransactionObject; } public Object getLdapTransactionObject() { return ldapTransactionObjec |