Description
Stash provides an AOP pointcut (see crowd-spi-context.xml) that configures transactions on the various methods of embedded Crowd's services to ensure that they work correctly.
Starting from Crowd 2.7, Crowd now also uses Spring's @Transactional annotations. This means that now two layers of transactions are being applied to Crowd's services and in some cases these transactional settings conflict.
One specific example is :
[INFO] [talledLocalContainer] org.springframework.transaction.IllegalTransactionStateException: Existing transaction found for transaction marked with propagation 'never' [INFO] [talledLocalContainer] at org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:401) ~[spring-tx-4.1.1.RELEASE.jar:4.1.1.RELEASE] [INFO] [talledLocalContainer] at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:349) ~[spring-tx-4.1.1.RELEASE.jar:4.1.1.RELEASE] [INFO] [talledLocalContainer] at com.atlassian.owd.manager.directory.DirectoryManagerGeneric.synchroniseCache(DirectoryManagerGeneric.java:246) ~[crowd-core-2.8.1-m3.jar:na] [INFO] [talledLocalContainer] at com.atlassian.crowd.embedded.core.CrowdDirectoryServiceImpl.synchroniseDirectory(CrowdDirectoryServiceImpl.java:199) ~[embedded-crowd-core-2.8.1-m3.jar:na] [INFO] [talledLocalContainer] at com.atlassian.stash.internal.crowd.CustomizedCrowdDirectoryService.synchroniseDirectory(CustomizedCrowdDirectoryService.java:100) ~[stash-service-impl-3.5.0.jar:na]
Attachments
Issue Links
- supersedes
-
BSERV-7070 CrowdDirectoryService throws transaction exception
- Closed