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:28 UTC
svn commit: r1293631 -
/myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java
Author: lu4242
Date: Sat Feb 25 16:01:28 2012
New Revision: 1293631
URL: http://svn.apache.org/viewvc?rev=1293631&view=rev
Log:
MYFACES-3474 [perf] LifecycleProviderFactory does not cache created Factory (Thanks to Martin Koci for provide this patch)
Modified:
myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java
Modified: myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java?rev=1293631&r1=1293630&r2=1293631&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java (original)
+++ myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/config/annotation/LifecycleProviderFactory.java Sat Feb 25 16:01:28 2012
@@ -20,6 +20,7 @@ package org.apache.myfaces.config.annota
import java.security.AccessController;
import java.security.PrivilegedActionException;
+import java.util.Map;
import javax.faces.FacesException;
import javax.faces.context.ExternalContext;
@@ -28,7 +29,9 @@ import javax.faces.context.FacesContext;
import org.apache.myfaces.spi.impl.SpiUtils;
-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();
@@ -41,7 +44,8 @@ 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;
@@ -53,7 +57,8 @@ public abstract class LifecycleProviderF
if (System.getSecurityManager() != null)
{
final ExternalContext ectx = ctx;
- lpf = (LifecycleProviderFactory) AccessController.doPrivileged(new java.security.PrivilegedExceptionAction<Object>()
+ lpf = (LifecycleProviderFactory)
+ AccessController.doPrivileged(new java.security.PrivilegedExceptionAction<Object>()
{
public Object run() throws PrivilegedActionException
{
@@ -72,11 +77,16 @@ public abstract class LifecycleProviderF
{
throw new FacesException(pae);
}
+ 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);
}