Return-Path: Delivered-To: apmail-incubator-aries-commits-archive@minotaur.apache.org Received: (qmail 93812 invoked from network); 25 Nov 2010 18:14:34 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 25 Nov 2010 18:14:34 -0000 Received: (qmail 54561 invoked by uid 500); 25 Nov 2010 18:14:34 -0000 Delivered-To: apmail-incubator-aries-commits-archive@incubator.apache.org Received: (qmail 54494 invoked by uid 500); 25 Nov 2010 18:14:33 -0000 Mailing-List: contact aries-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: aries-dev@incubator.apache.org Delivered-To: mailing list aries-commits@incubator.apache.org Received: (qmail 54486 invoked by uid 99); 25 Nov 2010 18:14:33 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Nov 2010 18:14:33 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Nov 2010 18:14:33 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B841823888CD; Thu, 25 Nov 2010 18:13:01 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1039127 - /incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/utils/ReflectionUtils.java Date: Thu, 25 Nov 2010 18:13:01 -0000 To: aries-commits@incubator.apache.org From: gnodet@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101125181301.B841823888CD@eris.apache.org> Author: gnodet Date: Thu Nov 25 18:13:01 2010 New Revision: 1039127 URL: http://svn.apache.org/viewvc?rev=1039127&view=rev Log: [ARIES-500] Field injection does not consider fields defined on parent classes Modified: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/utils/ReflectionUtils.java Modified: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/utils/ReflectionUtils.java URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/utils/ReflectionUtils.java?rev=1039127&r1=1039126&r2=1039127&view=diff ============================================================================== --- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/utils/ReflectionUtils.java (original) +++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/utils/ReflectionUtils.java Thu Nov 25 18:13:01 2010 @@ -176,18 +176,20 @@ public class ReflectionUtils { } if (allowFieldInjection) { - for (Field field : clazz.getDeclaredFields()) { - if (!!!Modifier.isStatic(field.getModifiers())) { - String name = decapitalize(field.getName()); - PropertyDescriptor desc = props.get(name); - if (desc == null) { - props.put(name, new FieldPropertyDescriptor(name, field)); - } else if (desc instanceof MethodPropertyDescriptor) { - props.put(name, - new JointPropertyDescriptor((MethodPropertyDescriptor) desc, - new FieldPropertyDescriptor(name, field))); - } else { - illegalProperties.add(name); + for (Class cl = clazz; cl != null && cl != Object.class; cl = cl.getSuperclass()) { + for (Field field : cl.getDeclaredFields()) { + if (!!!Modifier.isStatic(field.getModifiers())) { + String name = decapitalize(field.getName()); + PropertyDescriptor desc = props.get(name); + if (desc == null) { + props.put(name, new FieldPropertyDescriptor(name, field)); + } else if (desc instanceof MethodPropertyDescriptor) { + props.put(name, + new JointPropertyDescriptor((MethodPropertyDescriptor) desc, + new FieldPropertyDescriptor(name, field))); + } else { + illegalProperties.add(name); + } } } }