Browse Source

AbstractFallbackTransactionAttributeSource's DefaultCacheKey takes targetClass into account (again)

Issue: SPR-12536
(cherry picked from commit c087e51)
pull/709/head
Juergen Hoeller 10 years ago
parent
commit
b30843aee0
  1. 2
      spring-context/src/main/java/org/springframework/cache/interceptor/AbstractFallbackCacheOperationSource.java
  2. 10
      spring-context/src/main/java/org/springframework/cache/interceptor/MethodCacheKey.java
  3. 4
      spring-tx/src/main/java/org/springframework/transaction/interceptor/AbstractFallbackTransactionAttributeSource.java

2
spring-context/src/main/java/org/springframework/cache/interceptor/AbstractFallbackCacheOperationSource.java vendored

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2014 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.

10
spring-context/src/main/java/org/springframework/cache/interceptor/MethodCacheKey.java vendored

@ -23,6 +23,7 @@ import org.springframework.util.ObjectUtils; @@ -23,6 +23,7 @@ import org.springframework.util.ObjectUtils;
/**
* Represent a method on a particular {@link Class} and is suitable as a key.
*
* <p>Mainly for internal use within the framework.
*
* @author Costin Leau
@ -35,12 +36,14 @@ public final class MethodCacheKey { @@ -35,12 +36,14 @@ public final class MethodCacheKey {
private final Class<?> targetClass;
public MethodCacheKey(Method method, Class<?> targetClass) {
Assert.notNull(method, "method must be set.");
this.method = method;
this.targetClass = targetClass;
}
@Override
public boolean equals(Object other) {
if (this == other) {
@ -50,13 +53,14 @@ public final class MethodCacheKey { @@ -50,13 +53,14 @@ public final class MethodCacheKey {
return false;
}
MethodCacheKey otherKey = (MethodCacheKey) other;
return (this.method.equals(otherKey.method) && ObjectUtils.nullSafeEquals(this.targetClass,
otherKey.targetClass));
return (this.method.equals(otherKey.method) &&
ObjectUtils.nullSafeEquals(this.targetClass, otherKey.targetClass));
}
@Override
public int hashCode() {
return this.method.hashCode() * 29 + (this.targetClass != null ? this.targetClass.hashCode() : 0);
return this.method.hashCode() + (this.targetClass != null ? this.targetClass.hashCode() * 29 : 0);
}
}

4
spring-tx/src/main/java/org/springframework/transaction/interceptor/AbstractFallbackTransactionAttributeSource.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2014 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.
@ -227,7 +227,7 @@ public abstract class AbstractFallbackTransactionAttributeSource implements Tran @@ -227,7 +227,7 @@ public abstract class AbstractFallbackTransactionAttributeSource implements Tran
@Override
public int hashCode() {
return this.method.hashCode();
return this.method.hashCode() + (this.targetClass != null ? this.targetClass.hashCode() * 29 : 0);
}
}

Loading…
Cancel
Save