You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2012/02/25 17:01:55 UTC
svn commit: r1293632 -
/myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java
Author: lu4242
Date: Sat Feb 25 16:01:55 2012
New Revision: 1293632
URL: http://svn.apache.org/viewvc?rev=1293632&view=rev
Log:
MYFACES-3474 [perf] LifecycleProviderFactory does not cache created Factory (Thanks to Martin Koci for provide this patch)
Modified:
myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java
Modified: myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java?rev=1293632&r1=1293631&r2=1293632&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java (original)
+++ myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java Sat Feb 25 16:01:55 2012
@@ -25,7 +25,8 @@ import javax.faces.context.ExternalConte
import javax.faces.context.FacesContext;
-public abstract class LifecycleProviderFactory {
+public abstract class LifecycleProviderFactory
+{
protected static final String FACTORY_DEFAULT = DefaultLifecycleProviderFactory.class.getName();
private static final String FACTORY_KEY = LifecycleProviderFactory.class.getName();
@@ -38,16 +39,23 @@ public abstract class LifecycleProviderF
public static LifecycleProviderFactory getLifecycleProviderFactory(ExternalContext ctx)
{
- LifecycleProviderFactory instance = (LifecycleProviderFactory) ctx.getApplicationMap().get(FACTORY_KEY);
+ Map<String, Object> applicationMap = ctx.getApplicationMap();
+ LifecycleProviderFactory instance = (LifecycleProviderFactory) applicationMap.get(FACTORY_KEY);
if (instance != null)
{
return instance;
}
- return (LifecycleProviderFactory) DiscoverSingleton.find(LifecycleProviderFactory.class, FACTORY_DEFAULT);
+ LifecycleProviderFactory lpf = (LifecycleProviderFactory) DiscoverSingleton.find(LifecycleProviderFactory.class, FACTORY_DEFAULT);
+ if (lpf != null)
+ {
+ applicationMap.put(FACTORY_KEY, lpf);
+ }
+ return lpf;
}
- public static void setLifecycleProviderFactory(LifecycleProviderFactory instance) {
+ public static void setLifecycleProviderFactory(LifecycleProviderFactory instance)
+ {
FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().put(FACTORY_KEY, instance);
}