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);