You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Alexander Zynevich (JIRA)" <de...@myfaces.apache.org> on 2007/07/06 16:04:04 UTC
[jira] Created: (MYFACES-1675) UIOutput puts Converter as element
of object arrays, w/o calling to its saveState() method. It causes
NotSerializableException
UIOutput puts Converter as element of object arrays, w/o calling to its saveState() method. It causes NotSerializableException
------------------------------------------------------------------------------------------------------------------------------
Key: MYFACES-1675
URL: https://issues.apache.org/jira/browse/MYFACES-1675
Project: MyFaces Core
Issue Type: Bug
Components: JSR-252
Affects Versions: 1.2.0-SNAPSHOT
Environment: Geronimo-2.0-tomcat6-jee5-m6-rc1
Reporter: Alexander Zynevich
The following snipet:
<h:outputText id="cellStrtDate" styleClass="table-text-norm" value="#{obj.srvDate}" >
<f:convertDateTime pattern="yyyy-MM-dd" timeZone="#{commonInfo.timeZone}" />
</h:outputText>
causes:
java.io.NotSerializableException: *javax.faces.convert.DateTimeConverter*
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at org.apache.myfaces.application.jsp.JspStateManagerImpl.serializeView(JspStateManagerImpl.java:638)
at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedViewInServletSession(JspStateManagerImpl.java:538)
at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:371)
at javax.faces.application.StateManager.saveView(StateManager.java:47)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl$StateMarkerAwareWriter.flushToWriter(JspViewHandlerImpl.java:387)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:322)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
of course Converter and DateTimeConverter are not serializable....
The problem is that in 1.2 branch of JSF in UIOutput converter is put to Object[] array for serialization w/o delegating to StateHolder interface of Converter (from decompiled code):
public Object saveState(FacesContext facesContext)
{
Object values[] = new Object[3];
values[0] = super.saveState(facesContext);
values[1] = _value;
values[2] = _converter;
return ((Object) (values));
}
however it should be like in trunk http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UIOutput.java?revision=482726&view=markup:
public Object saveState(FacesContext context)
{
Object values[] = new Object[3];
values[0] = super.saveState(context);
values[1] = saveAttachedState(context, _converter);
values[2] = _value;
return values;
}
by the way, I failed to find UIOutput at http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/
does it mean that UIOutput is somehow generated in "jsf12" branch or comes from https://javaserverfaces.dev.java.net/?
But on https://javaserverfaces.dev.java.net/ the latest sources has correct variant.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (MYFACES-1675) UIOutput puts Converter as element
of object arrays (holding component state), w/o calling to its saveState()
method. It causes NotSerializableException
Posted by "Matthias Weßendorf (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/MYFACES-1675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12510696 ]
Matthias Weßendorf commented on MYFACES-1675:
---------------------------------------------
good catch.
It's in the plugins of Trinidad, I'll fix it !
> UIOutput puts Converter as element of object arrays (holding component state), w/o calling to its saveState() method. It causes NotSerializableException
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: MYFACES-1675
> URL: https://issues.apache.org/jira/browse/MYFACES-1675
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-252
> Affects Versions: 1.2.0-SNAPSHOT
> Environment: Geronimo-2.0-tomcat6-jee5-m6-rc1
> Reporter: Alexander Zynevich
>
> The following snipet:
> <h:outputText id="cellStrtDate" styleClass="table-text-norm" value="#{obj.srvDate}" >
> <f:convertDateTime pattern="yyyy-MM-dd" timeZone="#{commonInfo.timeZone}" />
> </h:outputText>
> causes:
> java.io.NotSerializableException: *javax.faces.convert.DateTimeConverter*
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.serializeView(JspStateManagerImpl.java:638)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedViewInServletSession(JspStateManagerImpl.java:538)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:371)
> at javax.faces.application.StateManager.saveView(StateManager.java:47)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl$StateMarkerAwareWriter.flushToWriter(JspViewHandlerImpl.java:387)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:322)
> at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
> of course Converter and DateTimeConverter are not serializable....
> The problem is that in 1.2 branch of JSF in UIOutput converter is put to Object[] array for serialization w/o delegating to StateHolder interface of Converter (from decompiled code):
> public Object saveState(FacesContext facesContext)
> {
> Object values[] = new Object[3];
> values[0] = super.saveState(facesContext);
> values[1] = _value;
> values[2] = _converter;
> return ((Object) (values));
> }
> however it should be like in trunk http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UIOutput.java?revision=482726&view=markup:
> public Object saveState(FacesContext context)
> {
> Object values[] = new Object[3];
> values[0] = super.saveState(context);
> values[1] = saveAttachedState(context, _converter);
> values[2] = _value;
> return values;
> }
> by the way, I failed to find UIOutput at http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/
> does it mean that UIOutput is somehow generated in "jsf12" branch or comes from https://javaserverfaces.dev.java.net/?
> But on https://javaserverfaces.dev.java.net/ the latest sources has correct variant.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (TRINIDAD-91) UIOutput puts Converter as element
of object arrays (holding component state), w/o calling to its saveState()
method. It causes NotSerializableException
Posted by "Matthias Weßendorf (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TRINIDAD-91?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias Weßendorf resolved TRINIDAD-91.
----------------------------------------
Resolution: Fixed
Fix Version/s: 1.2.1.1-plugins
> UIOutput puts Converter as element of object arrays (holding component state), w/o calling to its saveState() method. It causes NotSerializableException
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: TRINIDAD-91
> URL: https://issues.apache.org/jira/browse/TRINIDAD-91
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Plugins
> Affects Versions: 1.2.1.1-plugins
> Environment: Geronimo-2.0-tomcat6-jee5-m6-rc1
> Reporter: Alexander Zynevich
> Assignee: Matthias Weßendorf
> Fix For: 1.2.1.1-plugins
>
>
> The following snipet:
> <h:outputText id="cellStrtDate" styleClass="table-text-norm" value="#{obj.srvDate}" >
> <f:convertDateTime pattern="yyyy-MM-dd" timeZone="#{commonInfo.timeZone}" />
> </h:outputText>
> causes:
> java.io.NotSerializableException: *javax.faces.convert.DateTimeConverter*
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.serializeView(JspStateManagerImpl.java:638)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedViewInServletSession(JspStateManagerImpl.java:538)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:371)
> at javax.faces.application.StateManager.saveView(StateManager.java:47)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl$StateMarkerAwareWriter.flushToWriter(JspViewHandlerImpl.java:387)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:322)
> at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
> of course Converter and DateTimeConverter are not serializable....
> The problem is that in 1.2 branch of JSF in UIOutput converter is put to Object[] array for serialization w/o delegating to StateHolder interface of Converter (from decompiled code):
> public Object saveState(FacesContext facesContext)
> {
> Object values[] = new Object[3];
> values[0] = super.saveState(facesContext);
> values[1] = _value;
> values[2] = _converter;
> return ((Object) (values));
> }
> however it should be like in trunk http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UIOutput.java?revision=482726&view=markup:
> public Object saveState(FacesContext context)
> {
> Object values[] = new Object[3];
> values[0] = super.saveState(context);
> values[1] = saveAttachedState(context, _converter);
> values[2] = _value;
> return values;
> }
> by the way, I failed to find UIOutput at http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/
> does it mean that UIOutput is somehow generated in "jsf12" branch or comes from https://javaserverfaces.dev.java.net/?
> But on https://javaserverfaces.dev.java.net/ the latest sources has correct variant.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (TRINIDAD-91) UIOutput puts Converter as element
of object arrays (holding component state), w/o calling to its saveState()
method. It causes NotSerializableException
Posted by "Alexander Zynevich (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TRINIDAD-91?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12511702 ]
Alexander Zynevich commented on TRINIDAD-91:
--------------------------------------------
Thanks, that helped!
> UIOutput puts Converter as element of object arrays (holding component state), w/o calling to its saveState() method. It causes NotSerializableException
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: TRINIDAD-91
> URL: https://issues.apache.org/jira/browse/TRINIDAD-91
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Plugins
> Affects Versions: 1.2.1-plugins, 1.2.2-plugins
> Environment: Geronimo-2.0-tomcat6-jee5-m6-rc1
> Reporter: Alexander Zynevich
> Assignee: Matthias Weßendorf
> Fix For: 1.2.1.1-plugins, 1.2.2-plugins
>
>
> The following snipet:
> <h:outputText id="cellStrtDate" styleClass="table-text-norm" value="#{obj.srvDate}" >
> <f:convertDateTime pattern="yyyy-MM-dd" timeZone="#{commonInfo.timeZone}" />
> </h:outputText>
> causes:
> java.io.NotSerializableException: *javax.faces.convert.DateTimeConverter*
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.serializeView(JspStateManagerImpl.java:638)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedViewInServletSession(JspStateManagerImpl.java:538)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:371)
> at javax.faces.application.StateManager.saveView(StateManager.java:47)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl$StateMarkerAwareWriter.flushToWriter(JspViewHandlerImpl.java:387)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:322)
> at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
> of course Converter and DateTimeConverter are not serializable....
> The problem is that in 1.2 branch of JSF in UIOutput converter is put to Object[] array for serialization w/o delegating to StateHolder interface of Converter (from decompiled code):
> public Object saveState(FacesContext facesContext)
> {
> Object values[] = new Object[3];
> values[0] = super.saveState(facesContext);
> values[1] = _value;
> values[2] = _converter;
> return ((Object) (values));
> }
> however it should be like in trunk http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UIOutput.java?revision=482726&view=markup:
> public Object saveState(FacesContext context)
> {
> Object values[] = new Object[3];
> values[0] = super.saveState(context);
> values[1] = saveAttachedState(context, _converter);
> values[2] = _value;
> return values;
> }
> by the way, I failed to find UIOutput at http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/
> does it mean that UIOutput is somehow generated in "jsf12" branch or comes from https://javaserverfaces.dev.java.net/?
> But on https://javaserverfaces.dev.java.net/ the latest sources has correct variant.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (MYFACES-1675) UIOutput puts Converter as element
of object arrays (holding component state), w/o calling to its saveState()
method. It causes NotSerializableException
Posted by "Alexander Zynevich (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/MYFACES-1675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12510694 ]
Alexander Zynevich commented on MYFACES-1675:
---------------------------------------------
just checked 1.2.0-SNAPSHOT on http://people.apache.org/repo/m2-snapshot-repository/org/apache/myfaces/core/myfaces-api/1.2.0-SNAPSHOT/
from 5 july, it has the same WRONG code.
> UIOutput puts Converter as element of object arrays (holding component state), w/o calling to its saveState() method. It causes NotSerializableException
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: MYFACES-1675
> URL: https://issues.apache.org/jira/browse/MYFACES-1675
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-252
> Affects Versions: 1.2.0-SNAPSHOT
> Environment: Geronimo-2.0-tomcat6-jee5-m6-rc1
> Reporter: Alexander Zynevich
>
> The following snipet:
> <h:outputText id="cellStrtDate" styleClass="table-text-norm" value="#{obj.srvDate}" >
> <f:convertDateTime pattern="yyyy-MM-dd" timeZone="#{commonInfo.timeZone}" />
> </h:outputText>
> causes:
> java.io.NotSerializableException: *javax.faces.convert.DateTimeConverter*
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.ArrayList.writeObject(ArrayList.java:570)
> at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.serializeView(JspStateManagerImpl.java:638)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedViewInServletSession(JspStateManagerImpl.java:538)
> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:371)
> at javax.faces.application.StateManager.saveView(StateManager.java:47)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl$StateMarkerAwareWriter.flushToWriter(JspViewHandlerImpl.java:387)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:322)
> at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
> of course Converter and DateTimeConverter are not serializable....
> The problem is that in 1.2 branch of JSF in UIOutput converter is put to Object[] array for serialization w/o delegating to StateHolder interface of Converter (from decompiled code):
> public Object saveState(FacesContext facesContext)
> {
> Object values[] = new Object[3];
> values[0] = super.saveState(facesContext);
> values[1] = _value;
> values[2] = _converter;
> return ((Object) (values));
> }
> however it should be like in trunk http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UIOutput.java?revision=482726&view=markup:
> public Object saveState(FacesContext context)
> {
> Object values[] = new Object[3];
> values[0] = super.saveState(context);
> values[1] = saveAttachedState(context, _converter);
> values[2] = _value;
> return values;
> }
> by the way, I failed to find UIOutput at http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/api/src/main/java/javax/faces/component/
> does it mean that UIOutput is somehow generated in "jsf12" branch or comes from https://javaserverfaces.dev.java.net/?
> But on https://javaserverfaces.dev.java.net/ the latest sources has correct variant.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.