Skip to content

Commit

Permalink
AbstractFallbackTransactionAttributeSource's DefaultCacheKey takes ta…
Browse files Browse the repository at this point in the history
…rgetClass into account (again)

Issue: SPR-12536
(cherry picked from commit c087e51)
  • Loading branch information
jhoeller committed Dec 22, 2014
1 parent 6d6cd56 commit b30843a
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

/**
* 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
Expand All @@ -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) {
Expand All @@ -50,13 +53,14 @@ public boolean equals(Object other) {
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);
}

}
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -227,7 +227,7 @@ public boolean equals(Object other) {

@Override
public int hashCode() {
return this.method.hashCode();
return this.method.hashCode() + (this.targetClass != null ? this.targetClass.hashCode() * 29 : 0);
}
}

Expand Down

0 comments on commit b30843a

Please sign in to comment.