You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by be...@apache.org on 2021/10/09 11:20:40 UTC
[tapestry-5] branch master updated: common: TypeCoercerImpl use
CoercionTuple.Key for consideration
This is an automated email from the ASF dual-hosted git repository.
benw pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
The following commit(s) were added to refs/heads/master by this push:
new be972fa common: TypeCoercerImpl use CoercionTuple.Key for consideration
be972fa is described below
commit be972fa5ef31eb5e256fae6bbb5ec29245883e57
Author: Benjamin Weidig <be...@netzgut.net>
AuthorDate: Sat Oct 9 13:20:28 2021 +0200
common: TypeCoercerImpl use CoercionTuple.Key for consideration
The already considered CoercionTuples should use the Key instead of the Tuple itself, which doesn't implement equals/hashCode.
---
.../tapestry5/commons/internal/services/TypeCoercerImpl.java | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/commons/src/main/java/org/apache/tapestry5/commons/internal/services/TypeCoercerImpl.java b/commons/src/main/java/org/apache/tapestry5/commons/internal/services/TypeCoercerImpl.java
index b89eb64..020773a 100644
--- a/commons/src/main/java/org/apache/tapestry5/commons/internal/services/TypeCoercerImpl.java
+++ b/commons/src/main/java/org/apache/tapestry5/commons/internal/services/TypeCoercerImpl.java
@@ -304,7 +304,7 @@ public class TypeCoercerImpl extends LockSupport implements TypeCoercer
// a tuple twice, but it's more likely that different threads are looking
// for different source/target coercions.
- Set<CoercionTuple> consideredTuples = CollectionFactory.newSet();
+ Set<CoercionTuple.Key> consideredTuples = CollectionFactory.newSet();
LinkedList<CoercionTuple> queue = CollectionFactory.newLinkedList();
seedQueue(sourceType, targetType, consideredTuples, queue);
@@ -389,7 +389,7 @@ public class TypeCoercerImpl extends LockSupport implements TypeCoercer
/**
* Seeds the pool with the initial set of coercions for the given type.
*/
- private void seedQueue(Class sourceType, Class targetType, Set<CoercionTuple> consideredTuples,
+ private void seedQueue(Class sourceType, Class targetType, Set<CoercionTuple.Key> consideredTuples,
LinkedList<CoercionTuple> queue)
{
// Work from the source type up looking for tuples
@@ -406,7 +406,7 @@ public class TypeCoercerImpl extends LockSupport implements TypeCoercer
for (CoercionTuple tuple : tuples)
{
queue.addLast(tuple);
- consideredTuples.add(tuple);
+ consideredTuples.add(tuple.getKey());
}
// Don't pull in Object -> type coercions when doing
@@ -439,7 +439,7 @@ public class TypeCoercerImpl extends LockSupport implements TypeCoercer
*/
@SuppressWarnings("unchecked")
private void queueIntermediates(Class sourceType, Class targetType, CoercionTuple intermediateTuple,
- Set<CoercionTuple> consideredTuples, LinkedList<CoercionTuple> queue)
+ Set<CoercionTuple.Key> consideredTuples, LinkedList<CoercionTuple> queue)
{
Class intermediateType = intermediateTuple.getTargetType();
@@ -447,7 +447,7 @@ public class TypeCoercerImpl extends LockSupport implements TypeCoercer
{
for (CoercionTuple tuple : getTuples(c, targetType))
{
- if (consideredTuples.contains(tuple))
+ if (consideredTuples.contains(tuple.getKey()))
{
continue;
}
@@ -479,7 +479,7 @@ public class TypeCoercerImpl extends LockSupport implements TypeCoercer
// conclusion.
queue.addLast(compoundTuple);
- consideredTuples.add(tuple);
+ consideredTuples.add(tuple.getKey());
}
}
}