@@ -349,35 +349,30 @@ protected void clearTransactionManagerCache() {
349
349
* Determine the specific transaction manager to use for the given transaction.
350
350
*/
351
351
protected PlatformTransactionManager determineTransactionManager (TransactionAttribute txAttr ) {
352
- if (this .beanFactory != null ) {
353
- String qualifier = txAttr != null ? txAttr .getQualifier () : null ;
354
- if (StringUtils .hasText (qualifier )) {
355
- return determineQualifiedTransactionManager (qualifier );
356
- }
357
- else if (StringUtils .hasText (this .transactionManagerBeanName )) {
358
- return determineQualifiedTransactionManager (this .transactionManagerBeanName );
359
- }
360
- else if (txAttr != null ) { // Do not lookup default bean name if no tx attributes are set
361
- PlatformTransactionManager defaultTransactionManager = getTransactionManager ();
362
- if (defaultTransactionManager == null ) {
363
- defaultTransactionManager = this .beanFactory .getBean (PlatformTransactionManager .class );
364
- this .transactionManagerCache .putIfAbsent (
365
- DEFAULT_TRANSACTION_MANAGER_KEY , defaultTransactionManager );
366
- }
367
- return defaultTransactionManager ;
352
+ // Do not attempt to lookup tx manager if no tx attributes are set
353
+ if (txAttr == null || this .beanFactory == null ) {
354
+ return getTransactionManager ();
355
+ }
356
+ String qualifier = (txAttr .getQualifier () != null ?
357
+ txAttr .getQualifier () : this .transactionManagerBeanName );
358
+ if (StringUtils .hasText (qualifier )) {
359
+ PlatformTransactionManager txManager = this .transactionManagerCache .get (qualifier );
360
+ if (txManager == null ) {
361
+ txManager = BeanFactoryAnnotationUtils .qualifiedBeanOfType (
362
+ this .beanFactory , PlatformTransactionManager .class , qualifier );
363
+ this .transactionManagerCache .putIfAbsent (qualifier , txManager );
368
364
}
365
+ return txManager ;
369
366
}
370
- return getTransactionManager ();
371
- }
372
-
373
- private PlatformTransactionManager determineQualifiedTransactionManager (String qualifier ) {
374
- PlatformTransactionManager txManager = this .transactionManagerCache .get (qualifier );
375
- if (txManager == null ) {
376
- txManager = BeanFactoryAnnotationUtils .qualifiedBeanOfType (
377
- this .beanFactory , PlatformTransactionManager .class , qualifier );
378
- this .transactionManagerCache .putIfAbsent (qualifier , txManager );
367
+ else {
368
+ PlatformTransactionManager defaultTransactionManager = getTransactionManager ();
369
+ if (defaultTransactionManager == null ) {
370
+ defaultTransactionManager = this .beanFactory .getBean (PlatformTransactionManager .class );
371
+ this .transactionManagerCache .putIfAbsent (
372
+ DEFAULT_TRANSACTION_MANAGER_KEY , defaultTransactionManager );
373
+ }
374
+ return defaultTransactionManager ;
379
375
}
380
- return txManager ;
381
376
}
382
377
383
378
/**
0 commit comments