http://java.net/jira/browse/GLASSFISH-11984 SECTION: Modified Files ---------------------------- M jsf-ri/src/main/java/com/sun/faces/application/ApplicationAssociate.java M jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceHandlerImpl.java SECTION: Diffs ---------------------------- Index: jsf-ri/src/main/java/com/sun/faces/application/ApplicationAssociate.java =================================================================== --- jsf-ri/src/main/java/com/sun/faces/application/ApplicationAssociate.java (revision 8748) +++ jsf-ri/src/main/java/com/sun/faces/application/ApplicationAssociate.java (working copy) @@ -240,6 +240,10 @@ applicationStateInfo = new ApplicationStateInfo(); } + public static void addToExternalContextMap(ExternalContext ec) { + ec.getApplicationMap().put(ASSOCIATE_KEY, getCurrentInstance()); + } + public static ApplicationAssociate getInstance(ExternalContext externalContext) { if (externalContext == null) { Index: jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceHandlerImpl.java =================================================================== --- jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceHandlerImpl.java (revision 8748) +++ jsf-ri/src/main/java/com/sun/faces/application/resource/ResourceHandlerImpl.java (working copy) @@ -40,6 +40,7 @@ package com.sun.faces.application.resource; +import javax.faces.application.Application; import com.sun.faces.application.ApplicationAssociate; import com.sun.faces.config.WebConfiguration; import static com.sun.faces.config.WebConfiguration.WebContextInitParameter.*; @@ -91,6 +92,22 @@ creationTime = System.currentTimeMillis(); webconfig = WebConfiguration.getInstance(); ExternalContext extContext = FacesContext.getCurrentInstance().getExternalContext(); + + //it can be the case where a JSF app is getting deployed to multiple virtual servers + //in that case, check if there is an existing ApplicationImpl instance around. + //if so, then add the ApplicationImpl and its corresponding ApplicationAssociate instances + //to the ApplicationMap + + + if (ApplicationAssociate.getInstance(extContext) == null) { + Application app = + FacesContext.getCurrentInstance().getApplication(); + if (app != null) { + extContext.getApplicationMap().put(app.getClass().getName(), app); + ApplicationAssociate.addToExternalContextMap(extContext); + } + } + manager = ApplicationAssociate.getInstance(extContext).getResourceManager(); initExclusions(); initMaxAge();