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/03/20 18:58:27 UTC
svn commit: r1303056 -
/myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIComponentBase.java
Author: lu4242
Date: Tue Mar 20 17:58:27 2012
New Revision: 1303056
URL: http://svn.apache.org/viewvc?rev=1303056&view=rev
Log:
MYFACES-3508 ClassCastException during RestoreView with MyFaces 2.1.7-SNAPSHOT
Modified:
myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIComponentBase.java
Modified: myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIComponentBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIComponentBase.java?rev=1303056&r1=1303055&r2=1303056&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIComponentBase.java (original)
+++ myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIComponentBase.java Tue Mar 20 17:58:27 2012
@@ -2016,19 +2016,6 @@ public abstract class UIComponentBase ex
if (values.length == 9)
{
- //Full restore
- restoreFullBehaviorsMap(context, values[2]);
- restoreFullSystemEventListenerClassMap(context, values[3]);
- }
- else
- {
- //Delta restore
- restoreDeltaBehaviorsMap(context, values[2]);
- restoreDeltaSystemEventListenerClassMap(context, values[3]);
- }
-
- if (values.length == 9)
- {
_id = (String) values[4];
_clientId = (String) values[5];
_markCreated = (String) values[6];
@@ -2040,6 +2027,22 @@ public abstract class UIComponentBase ex
_rendererType = (String) values[4];
_isRendererTypeSet = true;
}
+
+ // rendererType needs to be restored before SystemEventListener,
+ // otherwise UIComponent.getCurrentComponent(context).getRenderer(context)
+ // will not work correctly
+ if (values.length == 9)
+ {
+ //Full restore
+ restoreFullBehaviorsMap(context, values[2]);
+ restoreFullSystemEventListenerClassMap(context, values[3]);
+ }
+ else
+ {
+ //Delta restore
+ restoreDeltaBehaviorsMap(context, values[2]);
+ restoreDeltaSystemEventListenerClassMap(context, values[3]);
+ }
}
private Object saveFacesListenersList(FacesContext facesContext)