Refined logging to include target class for each transactional method name

Also simplified cache key 'hashCode' implementation, relying on 'equals' to differentiate between same method on different target classes.

Issue: SPR-11267
(cherry picked from commit 82ea9ec)
This commit is contained in:
Juergen Hoeller 2014-01-01 19:18:39 +01:00
parent f477a024ad
commit 57eedf33d6
1 changed files with 7 additions and 5 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -103,7 +103,9 @@ public abstract class AbstractFallbackTransactionAttributeSource implements Tran
}
else {
if (logger.isDebugEnabled()) {
logger.debug("Adding transactional method '" + method.getName() + "' with attribute: " + txAtt);
Class<?> classToLog = (targetClass != null ? targetClass : method.getDeclaringClass());
logger.debug("Adding transactional method '" + classToLog.getSimpleName() + "." +
method.getName() + "' with attribute: " + txAtt);
}
this.attributeCache.put(cacheKey, txAtt);
}
@ -202,9 +204,9 @@ public abstract class AbstractFallbackTransactionAttributeSource implements Tran
private final Method method;
private final Class targetClass;
private final Class<?> targetClass;
public DefaultCacheKey(Method method, Class targetClass) {
public DefaultCacheKey(Method method, Class<?> targetClass) {
this.method = method;
this.targetClass = targetClass;
}
@ -224,7 +226,7 @@ public abstract class AbstractFallbackTransactionAttributeSource implements Tran
@Override
public int hashCode() {
return this.method.hashCode() * 29 + (this.targetClass != null ? this.targetClass.hashCode() : 0);
return this.method.hashCode();
}
}