You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ja...@apache.org on 2009/03/07 15:02:16 UTC
svn commit: r751269 -
/myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
Author: jankeesvanandel
Date: Sat Mar 7 14:02:16 2009
New Revision: 751269
URL: http://svn.apache.org/viewvc?rev=751269&view=rev
Log:
fix for issue MYFACES-2147
Modified:
myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
Modified: myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java?rev=751269&r1=751268&r2=751269&view=diff
==============================================================================
--- myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java (original)
+++ myfaces/core/branches/2_0_0/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java Sat Mar 7 14:02:16 2009
@@ -93,7 +93,7 @@
/**
* DOCUMENT ME!
- *
+ *
* @author Manfred Geiler (latest modification by $Author$)
* @author Anton Koinov
* @author Thomas Spiegl
@@ -403,9 +403,9 @@
final Class<? extends T> expectedType) throws ELException
{
ELContext elContext = context.getELContext();
-
+
ExpressionFactory factory = getExpressionFactory();
-
+
return (T)factory.createValueExpression(elContext, expression, expectedType).getValue(elContext);
}
@@ -430,14 +430,14 @@
if (source instanceof SystemEventListenerHolder)
{
SystemEventListenerHolder holder = (SystemEventListenerHolder) source;
-
- // If the source argument implements SystemEventListenerHolder, call
- // SystemEventListenerHolder.getListenersForEventClass(java.lang.Class) on it, passing the systemEventClass
+
+ // If the source argument implements SystemEventListenerHolder, call
+ // SystemEventListenerHolder.getListenersForEventClass(java.lang.Class) on it, passing the systemEventClass
// argument. If the list is not empty, perform algorithm traverseListenerList on the list.
event = _traverseListenerList(holder.getListenersForEventClass(systemEventClass), systemEventClass, source,
event);
}
-
+
SystemListenerEntry systemListenerEntry = _systemEventListenerClassMap.get(systemEventClass);
if (systemListenerEntry != null)
{
@@ -446,8 +446,8 @@
}
catch (AbortProcessingException e)
{
- // If the act of invoking the processListener method causes an AbortProcessingException to be thrown,
- // processing of the listeners must be aborted, no further processing of the listeners for this event must
+ // If the act of invoking the processListener method causes an AbortProcessingException to be thrown,
+ // processing of the listeners must be aborted, no further processing of the listeners for this event must
// take place, and the exception must be logged with Level.SEVERE.
log.error("Event processing was aborted", e);
}
@@ -1279,8 +1279,20 @@
{
try
{
- Constructor<? extends SystemEvent> constructor = systemEventClass.getConstructor(Object.class);
- event = constructor.newInstance(source);
+ Constructor<?>[] constructors = systemEventClass.getConstructors();
+ Constructor<? extends SystemEvent> constructor = null;
+ for (Constructor<?> c : constructors) {
+ if (c.getParameterTypes().length == 1) {
+ // Safe cast, since the constructor belongs
+ // to a class of type SystemEvent
+ constructor = (Constructor<? extends SystemEvent>) c;
+ break;
+ }
+ }
+ if (constructor != null) {
+ event = constructor.newInstance(source);
+ }
+
}
catch (Exception e)
{
@@ -1430,8 +1442,8 @@
{
/*
* The Renderer instance to inspect must be obtained by calling FacesContext.getRenderKit() and calling
- * RenderKit.getRenderer(java.lang.String, java.lang.String) on the result, passing the argument
- * componentFamily of the newly created component as the first argument and the argument rendererType as
+ * RenderKit.getRenderer(java.lang.String, java.lang.String) on the result, passing the argument
+ * componentFamily of the newly created component as the first argument and the argument rendererType as
* the second argument.
*/
Renderer renderer = context.getRenderKit().getRenderer(component.getFamily(), rendererType);
@@ -1573,7 +1585,7 @@
{
/*
* TODO: Check if modification occurs often or not, might have to use a synchronized list instead.
- *
+ *
* Registrations found:
*/
_lstSystemEventListener = new CopyOnWriteArrayList<SystemEventListener>();
@@ -1594,7 +1606,7 @@
{
/*
* TODO: Check if modification occurs often or not, might have to use a synchronized list instead.
- *
+ *
* Registrations found:
*/
list = new CopyOnWriteArrayList<SystemEventListener>();