Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 50958 invoked from network); 12 Jun 2009 22:52:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 12 Jun 2009 22:52:43 -0000 Received: (qmail 10094 invoked by uid 500); 12 Jun 2009 22:52:54 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 10028 invoked by uid 500); 12 Jun 2009 22:52:54 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 10018 invoked by uid 99); 12 Jun 2009 22:52:54 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 12 Jun 2009 22:52:54 +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; Fri, 12 Jun 2009 22:52:51 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id E98B52388898; Fri, 12 Jun 2009 22:52:29 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r784304 - /geronimo/external/trunk/tomcat-parent-6.0.18/catalina/src/main/java/org/apache/catalina/core/DefaultInstanceManager.java Date: Fri, 12 Jun 2009 22:52:29 -0000 To: scm@geronimo.apache.org From: djencks@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090612225229.E98B52388898@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: djencks Date: Fri Jun 12 22:52:29 2009 New Revision: 784304 URL: http://svn.apache.org/viewvc?rev=784304&view=rev Log: GERONIMO-4685 Apply usable portion of TOMCAT_6_0_18-G678601.patch Modified: geronimo/external/trunk/tomcat-parent-6.0.18/catalina/src/main/java/org/apache/catalina/core/DefaultInstanceManager.java Modified: geronimo/external/trunk/tomcat-parent-6.0.18/catalina/src/main/java/org/apache/catalina/core/DefaultInstanceManager.java URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-6.0.18/catalina/src/main/java/org/apache/catalina/core/DefaultInstanceManager.java?rev=784304&r1=784303&r2=784304&view=diff ============================================================================== --- geronimo/external/trunk/tomcat-parent-6.0.18/catalina/src/main/java/org/apache/catalina/core/DefaultInstanceManager.java (original) +++ geronimo/external/trunk/tomcat-parent-6.0.18/catalina/src/main/java/org/apache/catalina/core/DefaultInstanceManager.java Fri Jun 12 22:52:29 2009 @@ -245,64 +245,70 @@ return; } - // Initialize fields annotations - Field[] fields = instance.getClass().getDeclaredFields(); - for (Field field : fields) { - if (injections != null && injections.containsKey(field.getName())) { - lookupFieldResource(context, instance, field, injections.get(field.getName())); - } else if (field.isAnnotationPresent(Resource.class)) { - Resource annotation = field.getAnnotation(Resource.class); - lookupFieldResource(context, instance, field, annotation.name()); - } else if (field.isAnnotationPresent(EJB.class)) { - EJB annotation = field.getAnnotation(EJB.class); - lookupFieldResource(context, instance, field, annotation.name()); - } else if (field.isAnnotationPresent(WebServiceRef.class)) { - WebServiceRef annotation = + Class clazz = instance.getClass(); + + while (clazz != null) { + // Initialize fields annotations + Field[] fields = instance.getClass().getDeclaredFields(); + for (Field field : fields) { + if (injections != null && injections.containsKey(field.getName())) { + lookupFieldResource(context, instance, field, injections.get(field.getName())); + } + if (field.isAnnotationPresent(Resource.class)) { + Resource annotation = field.getAnnotation(Resource.class); + lookupFieldResource(context, instance, field, annotation.name()); + } else if (field.isAnnotationPresent(EJB.class)) { + EJB annotation = field.getAnnotation(EJB.class); + lookupFieldResource(context, instance, field, annotation.name()); + } else if (field.isAnnotationPresent(WebServiceRef.class)) { + WebServiceRef annotation = field.getAnnotation(WebServiceRef.class); - lookupFieldResource(context, instance, field, annotation.name()); - } else if (field.isAnnotationPresent(PersistenceContext.class)) { - PersistenceContext annotation = + lookupFieldResource(context, instance, field, annotation.name()); + } else if (field.isAnnotationPresent(PersistenceContext.class)) { + PersistenceContext annotation = field.getAnnotation(PersistenceContext.class); - lookupFieldResource(context, instance, field, annotation.name()); - } else if (field.isAnnotationPresent(PersistenceUnit.class)) { - PersistenceUnit annotation = + lookupFieldResource(context, instance, field, annotation.name()); + } else if (field.isAnnotationPresent(PersistenceUnit.class)) { + PersistenceUnit annotation = field.getAnnotation(PersistenceUnit.class); - lookupFieldResource(context, instance, field, annotation.name()); + lookupFieldResource(context, instance, field, annotation.name()); + } } - } - // Initialize methods annotations - Method[] methods = instance.getClass().getDeclaredMethods(); - for (Method method : methods) { - String methodName = method.getName(); - if (injections != null && methodName.startsWith("set") && methodName.length() > 3) { - String fieldName = Character.toLowerCase(methodName.charAt(3)) + methodName.substring(4); - if (injections.containsKey(fieldName)) { - lookupMethodResource(context, instance, method, injections.get(fieldName)); - break; + // Initialize methods annotations + Method[] methods = instance.getClass().getDeclaredMethods(); + for (Method method : methods) { + String methodName = method.getName(); + if (injections != null && methodName.startsWith("set") && methodName.length() > 3) { + String fieldName = Character.toLowerCase(methodName.charAt(3)) + methodName.substring(4); + if (injections.containsKey(fieldName)) { + lookupMethodResource(context, instance, method, injections.get(fieldName)); + break; + } } - } - if (method.isAnnotationPresent(Resource.class)) { - Resource annotation = method.getAnnotation(Resource.class); - lookupMethodResource(context, instance, method, annotation.name()); - } else if (method.isAnnotationPresent(EJB.class)) { - EJB annotation = method.getAnnotation(EJB.class); - lookupMethodResource(context, instance, method, annotation.name()); - } else if (method.isAnnotationPresent(WebServiceRef.class)) { - WebServiceRef annotation = + if (method.isAnnotationPresent(Resource.class)) { + Resource annotation = method.getAnnotation(Resource.class); + lookupMethodResource(context, instance, method, annotation.name()); + } else if (method.isAnnotationPresent(EJB.class)) { + EJB annotation = method.getAnnotation(EJB.class); + lookupMethodResource(context, instance, method, annotation.name()); + } else if (method.isAnnotationPresent(WebServiceRef.class)) { + WebServiceRef annotation = method.getAnnotation(WebServiceRef.class); - lookupMethodResource(context, instance, method, annotation.name()); - } else if (method.isAnnotationPresent(PersistenceContext.class)) { - PersistenceContext annotation = + lookupMethodResource(context, instance, method, annotation.name()); + } else if (method.isAnnotationPresent(PersistenceContext.class)) { + PersistenceContext annotation = method.getAnnotation(PersistenceContext.class); - lookupMethodResource(context, instance, method, annotation.name()); - } else if (method.isAnnotationPresent(PersistenceUnit.class)) { - PersistenceUnit annotation = + lookupMethodResource(context, instance, method, annotation.name()); + } else if (method.isAnnotationPresent(PersistenceUnit.class)) { + PersistenceUnit annotation = method.getAnnotation(PersistenceUnit.class); - lookupMethodResource(context, instance, method, annotation.name()); + lookupMethodResource(context, instance, method, annotation.name()); + } } - } + clazz = clazz.getSuperclass(); + } }