Index: java/org/apache/catalina/core/DefaultInstanceManager.java =================================================================== --- java/org/apache/catalina/core/DefaultInstanceManager.java (revision 1326967) +++ java/org/apache/catalina/core/DefaultInstanceManager.java (working copy) @@ -139,13 +139,26 @@ private Object newInstance(Object instance, Class clazz) throws IllegalAccessException, InvocationTargetException, NamingException { if (!ignoreAnnotations) { - Map injections = injectionMap.get(clazz.getName()); + Map injections = assembleInjectionsFromClassHierarchy(clazz); populateAnnotationsCache(clazz, injections); processAnnotations(instance, injections); postConstruct(instance, clazz); } return instance; } + + private Map assembleInjectionsFromClassHierarchy(Class clazz) { + Map injections = new HashMap(); + Map currentInjections = null; + while (clazz != null) { + currentInjections = this.injectionMap.get(clazz.getName()); + if (currentInjections != null) { + injections.putAll(currentInjections); + } + clazz = clazz.getSuperclass(); + } + return injections; + } @Override public void destroyInstance(Object instance) throws IllegalAccessException, InvocationTargetException {