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 2010/04/27 03:34:32 UTC
svn commit: r938287 - in /myfaces/core/branches/1.2.x:
api/src/main/java/javax/faces/component/UIComponentBase.java
impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java
Author: lu4242
Date: Tue Apr 27 01:34:31 2010
New Revision: 938287
URL: http://svn.apache.org/viewvc?rev=938287&view=rev
Log:
MYFACES-2680 Cache renderKit used
Modified:
myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java
myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java
Modified: myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java?rev=938287&r1=938286&r2=938287&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java (original)
+++ myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java Tue Apr 27 01:34:31 2010
@@ -848,9 +848,8 @@ public abstract class UIComponentBase
if (context == null) throw new NullPointerException("context");
String rendererType = getRendererType();
if (rendererType == null) return null;
- String renderKitId = context.getViewRoot().getRenderKitId();
- RenderKitFactory rkf = (RenderKitFactory)FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
- RenderKit renderKit = rkf.getRenderKit(context, renderKitId);
+
+ RenderKit renderKit = context.getRenderKit();
Renderer renderer = renderKit.getRenderer(getFamily(), rendererType);
if (renderer == null)
{
Modified: myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java?rev=938287&r1=938286&r2=938287&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java (original)
+++ myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java Tue Apr 27 01:34:31 2010
@@ -77,6 +77,10 @@ public class FacesContextImpl
private boolean _released = false;
private ELContext _elContext;
private ReleaseableFacesContextFactory _facesContextFactory = null;
+
+ // Variables used to cache values
+ private RenderKit _cachedRenderKit = null;
+ private String _cachedRenderKitId = null;
//~ Constructors -------------------------------------------------------------------------------
@@ -204,8 +208,14 @@ public class FacesContextImpl
{
return null;
}
-
- return _renderKitFactory.getRenderKit(this, renderKitId);
+
+ if (_cachedRenderKitId == null || !renderKitId.equals(_cachedRenderKitId))
+ {
+ _cachedRenderKitId = renderKitId;
+ _cachedRenderKit = _renderKitFactory.getRenderKit(this, renderKitId);
+ }
+
+ return _cachedRenderKit;
}
public final boolean getRenderResponse()
@@ -336,6 +346,8 @@ public class FacesContextImpl
_responseStream = null;
_responseWriter = null;
_viewRoot = null;
+ _cachedRenderKit = null;
+ _cachedRenderKitId = null;
_released = true;
FacesContext.setCurrentInstance(null);