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/27 04:46:51 UTC

svn commit: r1294012 - in /myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets: BehaviorHandler.java ConverterHandler.java ValidatorHandler.java

Author: lu4242
Date: Mon Feb 27 03:46:50 2012
New Revision: 1294012

URL: http://svn.apache.org/viewvc?rev=1294012&view=rev
Log:
MYFACES-3481 [perf] f:validateBean re-creates facelets handlers (MetaRulesetImpl,DelegatingMetaTagHandler ...) for children every time

Modified:
    myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java
    myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java
    myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java

Modified: myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java?rev=1294012&r1=1294011&r2=1294012&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java Mon Feb 27 03:46:50 2012
@@ -33,6 +33,7 @@ public class BehaviorHandler extends Fac
 {
     private String behaviorId;
     private TagAttribute event;
+    private TagHandlerDelegate helper;
     
     /**
      * @param config
@@ -71,6 +72,13 @@ public class BehaviorHandler extends Fac
     @Override
     protected TagHandlerDelegate getTagHandlerDelegate()
     {
-        return delegateFactory.createBehaviorHandlerDelegate (this);
+        if (helper == null)
+        {
+            // Spec seems to indicate that the helper is created here, as opposed to other Handler
+            // instances, where it's presumably a new instance for every getter call.
+            
+            this.helper = delegateFactory.createBehaviorHandlerDelegate (this);
+        }
+        return helper;
     }
 }

Modified: myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java?rev=1294012&r1=1294011&r2=1294012&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java Mon Feb 27 03:46:50 2012
@@ -38,6 +38,7 @@ import org.apache.myfaces.buildtools.mav
 public class ConverterHandler extends FaceletsAttachedObjectHandler implements ValueHolderAttachedObjectHandler
 {
     private String converterId;
+    private TagHandlerDelegate helper;
     
     public ConverterHandler(ConverterConfig config)
     {
@@ -53,6 +54,13 @@ public class ConverterHandler extends Fa
     
     protected TagHandlerDelegate getTagHandlerDelegate()
     {
-        return delegateFactory.createConverterHandlerDelegate (this);
+        if (helper == null)
+        {
+            // Spec seems to indicate that the helper is created here, as opposed to other Handler
+            // instances, where it's presumably a new instance for every getter call.
+            
+            this.helper = delegateFactory.createConverterHandlerDelegate (this);
+        }
+        return helper;
     }
 }

Modified: myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java?rev=1294012&r1=1294011&r2=1294012&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java Mon Feb 27 03:46:50 2012
@@ -35,6 +35,7 @@ import org.apache.myfaces.buildtools.mav
 public class ValidatorHandler extends FaceletsAttachedObjectHandler implements EditableValueHolderAttachedObjectHandler
 {
     private ValidatorConfig config;
+    private TagHandlerDelegate helper;
     
     public ValidatorHandler(ValidatorConfig config)
     {
@@ -55,6 +56,13 @@ public class ValidatorHandler extends Fa
 
     protected TagHandlerDelegate getTagHandlerDelegate()
     {
-        return delegateFactory.createValidatorHandlerDelegate (this);
+        if (helper == null)
+        {
+            // Spec seems to indicate that the helper is created here, as opposed to other Handler
+            // instances, where it's presumably a new instance for every getter call.
+            
+            this.helper = delegateFactory.createValidatorHandlerDelegate (this);
+        }
+        return helper;
     }
 }