--- com/sun/faces/application/InjectionApplicationFactory.java +++ com/sun/faces/application/InjectionApplicationFactory.java @@ -142,7 +142,22 @@ public class InjectionApplicationFactory extends ApplicationFactory implements F .getDeclaredField("defaultApplication"); defaultApplicationField.setAccessible(true); } - defaultApplicationField.set(application, defaultApplication); + Application app = application; + do { + defaultApplicationField.set(application, defaultApplication); + boolean found = false; + for (Field field : app.getClass().getDeclaredFields()) { + if (field.getType() == Application.class) { + field.setAccessible(true); + app = (Application) field.get(app); + found = true; + break; + } + } + if (!found) { + app = null; + } + } while (app != null); } catch (NoSuchFieldException nsfe) { if (LOGGER.isLoggable(Level.FINE)) {