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 2016/03/01 00:08:10 UTC
svn commit: r1732968 -
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java
Author: lu4242
Date: Mon Feb 29 23:08:09 2016
New Revision: 1732968
URL: http://svn.apache.org/viewvc?rev=1732968&view=rev
Log:
MYFACES-3497 [perf] Improve EventHandler
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java?rev=1732968&r1=1732967&r2=1732968&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java Mon Feb 29 23:08:09 2016
@@ -77,6 +77,8 @@ public final class EventHandler extends
deferredValueType="java.lang.String")
private TagAttribute type;
+ private Class<?> eventClassLiteral;
+
private boolean listenerIsCompositeComponentME;
public EventHandler (TagConfig tagConfig)
@@ -166,6 +168,13 @@ public final class EventHandler extends
{
Class<?> eventClass = null;
String value = null;
+
+ if (type.isLiteral() && eventClassLiteral != null)
+ {
+ // if type is literal it does not change, avoid Reflection and use cached value
+ return (Class<? extends ComponentSystemEvent>) eventClassLiteral;
+ }
+
if (type.isLiteral())
{
value = type.getValue();
@@ -189,6 +198,10 @@ public final class EventHandler extends
try
{
eventClass = ReflectionUtil.forName (value);
+ if (type.isLiteral())
+ {
+ eventClassLiteral = eventClass;
+ }
}
catch (Throwable e)
{