You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2014/12/10 17:32:17 UTC
[07/15] camel git commit: CAMEL-8137: Bean component should detect
override methods that are assignable by type,
so duplicate methods is not reported as error.
CAMEL-8137: Bean component should detect override methods that are assignable by type, so duplicate methods is not reported as error.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/53b4e90c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/53b4e90c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/53b4e90c
Branch: refs/heads/master
Commit: 53b4e90c535ad419a101129b02feccc6625b5043
Parents: 7a0f2e8
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Dec 10 13:42:54 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Dec 10 13:42:54 2014 +0100
----------------------------------------------------------------------
.../apache/camel/component/bean/BeanInfo.java | 29 ++++++++++++--------
1 file changed, 17 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/53b4e90c/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java b/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
index 1c19945..fb9c533 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java
@@ -311,22 +311,27 @@ public class BeanInfo {
methods.addAll(extraMethods);
}
- // it may have duplicate methods already, even from declared or from interfaces + declared
Set<Method> overrides = new HashSet<Method>();
- for (Method source : methods) {
- for (Method target : methods) {
- // skip ourselves
- if (ObjectHelper.isOverridingMethod(source, target, true)) {
- continue;
- }
- // skip duplicates which may be assign compatible (favor keep first added method when duplicate)
- if (ObjectHelper.isOverridingMethod(source, target, false)) {
- overrides.add(target);
+
+ // do not remove duplicates form class from the Java itself as they have some "duplicates" we need
+ boolean javaClass = clazz.getName().startsWith("java.") || clazz.getName().startsWith("javax.");
+ if (!javaClass) {
+ // it may have duplicate methods already, even from declared or from interfaces + declared
+ for (Method source : methods) {
+ for (Method target : methods) {
+ // skip ourselves
+ if (ObjectHelper.isOverridingMethod(source, target, true)) {
+ continue;
+ }
+ // skip duplicates which may be assign compatible (favor keep first added method when duplicate)
+ if (ObjectHelper.isOverridingMethod(source, target, false)) {
+ overrides.add(target);
+ }
}
}
+ methods.removeAll(overrides);
+ overrides.clear();
}
- methods.removeAll(overrides);
- overrides.clear();
// if we are a public class, then add non duplicate interface classes also
if (Modifier.isPublic(clazz.getModifiers())) {