I have made more tests about this problem. It seems the problem is not
related to write the state marker or not. The actual code if the marker
is not found it just write it directly the response.
I have one machine with firefox 3.0.3, and the problem is not present.
The machine with firefox
2.0.0.17 has the problem.
A correct request (firefox 3.0.3, opera 9 or IE 7) output on the log
(stdout) something like this:
2008-10-21 19:25:47.666:/portlet-bridge-demo:INFO:
PortletExternalContextImpl.g
etViewId: found jsf target viewId = view:/helloworld/index.jsp
2008-10-21 19:25:47.681:/portlet-bridge-demo:INFO: dumpScopeId:
ACTION_PHASE
2008-10-21 19:25:47.681:/portlet-bridge-demo:INFO: Elements in scope:
portlet-b
ridge-demo:19hv18thfnrd9:view:-25ecdd41:11d21e77bb0:-7fdb
2008-10-21 19:25:47.681:/portlet-bridge-demo:INFO:
org.apache.myfaces.port
let.faces.includeInScope.requestParameters
2008-10-21 19:25:47.681:/portlet-bridge-demo:INFO:
org.apache.myfaces.port
let.faces.includeInScope.facesViewRoot
2008-10-21 19:25:47.681:/portlet-bridge-demo:INFO:
org.apache.myfaces.el.u
nified.resolver.managedbean.beansUnderConstruction
2008-10-21 19:25:47.713:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.jsp.JspStateManagerImpl.RESTORED_SERIALIZED_VIEW
2008-10-21 19:25:47.713:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.DefaultViewHandlerSupport.CACHED_SERVLET_MAPPING
2008-10-21 19:25:47.713:/portlet-bridge-demo:INFO: jsf_sequence
2008-10-21 19:25:47.713:/portlet-bridge-demo:INFO: namebean
2008-10-21 19:25:47.713:/portlet-bridge-demo:INFO:
org.apache.myfaces.shar
ed_impl.renderkit.RendererUtils.RenderKitImpl
2008-10-21 19:25:47.713:/portlet-bridge-demo:INFO: end dumpScopeId
Oct 21, 2008 7:25:47 PM org.apache.pluto.driver.PortalDriverFilter
doFilter
INFO: Forwarding to realPath: /pluto/index.jsp
2008-10-21 19:25:47.744:/portlet-bridge-demo:INFO: Unable to locate a
SAVESTATE
_FIELD_MARKER in response. This could be because your Faces
environment doesn't
write such a marker or because the bridge doesn't know the marker in
use. If t
he later, configure the appropriate application init parameter
javax.portlet.fac
es.SAVESTATE_FIELD_MARKER.
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO: dumpScopeId:
RENDER_PHASE
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO: Elements in scope:
portlet-b
ridge-demo:19hv18thfnrd9:view:-25ecdd41:11d21e77bb0:-7fdb
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO:
org.apache.myfaces.port
let.faces.includeInScope.requestParameters
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO:
org.apache.myfaces.el.u
nified.resolver.managedbean.beansUnderConstruction
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.jsp.JspStateManagerImpl.RESTORED_SERIALIZED_VIEW
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.DefaultViewHandlerSupport.CACHED_SERVLET_MAPPING
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO: jsf_sequence
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO: namebean
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO:
org.apache.myfaces.shar
ed_impl.renderkit.RendererUtils.RenderKitImpl
2008-10-21 19:25:48.760:/portlet-bridge-demo:INFO: end dumpScopeId
A request using firefox
2.0.0.17 looks like this:
2008-10-21 19:26:46.822:/portlet-bridge-demo:INFO:
PortletExternalContextImpl.g
etViewId: found jsf target viewId = view:/helloworld/index.jsp
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO: dumpScopeId:
ACTION_PHASE
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO: Elements in scope:
portlet-b
ridge-demo:yh4tse3ctjqw:view:-25ecdd41:11d21e77bb0:-7fda
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO:
org.apache.myfaces.port
let.faces.includeInScope.requestParameters
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO:
org.apache.myfaces.port
let.faces.includeInScope.facesViewRoot
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO:
org.apache.myfaces.el.u
nified.resolver.managedbean.beansUnderConstruction
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.jsp.JspStateManagerImpl.RESTORED_SERIALIZED_VIEW
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.DefaultViewHandlerSupport.CACHED_SERVLET_MAPPING
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO: jsf_sequence
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO: namebean
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO:
org.apache.myfaces.shar
ed_impl.renderkit.RendererUtils.RenderKitImpl
2008-10-21 19:26:46.837:/portlet-bridge-demo:INFO: end dumpScopeId
Oct 21, 2008 7:26:46 PM org.apache.pluto.driver.PortalDriverFilter
doFilter
INFO: Forwarding to realPath: /pluto/index.jsp
2008-10-21 19:26:46.869:/portlet-bridge-demo:INFO: Unable to locate a
SAVESTATE
_FIELD_MARKER in response. This could be because your Faces
environment doesn't
write such a marker or because the bridge doesn't know the marker in
use. If t
he later, configure the appropriate application init parameter
javax.portlet.fac
es.SAVESTATE_FIELD_MARKER.
2008-10-21 19:26:46.869:/portlet-bridge-demo:INFO: dumpScopeId:
RENDER_PHASE
2008-10-21 19:26:46.884:/portlet-bridge-demo:INFO: Elements in scope:
portlet-b
ridge-demo:yh4tse3ctjqw:view:-25ecdd41:11d21e77bb0:-7fda
2008-10-21 19:26:46.884:/portlet-bridge-demo:INFO:
org.apache.myfaces.port
let.faces.includeInScope.requestParameters
2008-10-21 19:26:46.884:/portlet-bridge-demo:INFO:
org.apache.myfaces.el.u
nified.resolver.managedbean.beansUnderConstruction
2008-10-21 19:26:46.884:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.jsp.JspStateManagerImpl.RESTORED_SERIALIZED_VIEW
2008-10-21 19:26:46.884:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.DefaultViewHandlerSupport.CACHED_SERVLET_MAPPING
2008-10-21 19:26:46.884:/portlet-bridge-demo:INFO: jsf_sequence
2008-10-21 19:26:46.884:/portlet-bridge-demo:INFO: namebean
2008-10-21 19:26:46.884:/portlet-bridge-demo:INFO:
org.apache.myfaces.shar
ed_impl.renderkit.RendererUtils.RenderKitImpl
2008-10-21 19:26:46.884:/portlet-bridge-demo:INFO: end dumpScopeId
Oct 21, 2008 7:26:48 PM org.apache.pluto.driver.PortalDriverFilter
doFilter
INFO: Forwarding to realPath: /pluto/index.jsp
2008-10-21 19:26:48.163:/portlet-bridge-demo:INFO:
PortletExternalContextImpl.g
etViewId: found jsf target viewId = view:/helloworld/hello.jsp
2008-10-21 19:26:48.163:/portlet-bridge-demo:INFO: History for mode:
view : /he
lloworld/hello.jsp?javax.portlet.faces.PortletMode=view&__jpfbReqScopeId=portlet
-bridge-demo%3Ayh4tse3ctjqw%3Aview%3A-25ecdd41%3A11d21e77bb0%3A-7fda&javax.faces
.ViewState=CX8k%2BpTXi4XRIwnlHJaWVyc31c23xqtKQKd4yZOqnb9H8Xs6FKjAxuC58ztDpvj1O2O
1%2B8C%2F2gMMzdqOlEnLOB4LrckaiKM%2Bu3h3WzFSRkY%3D
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO: Unable to locate a
SAVESTATE
_FIELD_MARKER in response. This could be because your Faces
environment doesn't
write such a marker or because the bridge doesn't know the marker in
use. If t
he later, configure the appropriate application init parameter
javax.portlet.fac
es.SAVESTATE_FIELD_MARKER.
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO: dumpScopeId:
RENDER_PHASE
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO: Elements in scope:
portlet-b
ridge-demo:yh4tse3ctjqw:view:-25ecdd41:11d21e77bb0:-7fda
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO:
org.apache.myfaces.port
let.faces.includeInScope.requestParameters
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO:
org.apache.myfaces.el.u
nified.resolver.managedbean.beansUnderConstruction
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.jsp.JspStateManagerImpl.RESTORED_SERIALIZED_VIEW
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO:
org.apache.myfaces.appl
ication.DefaultViewHandlerSupport.CACHED_SERVLET_MAPPING
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO: jsf_sequence
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO: namebean
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO:
org.apache.myfaces.shar
ed_impl.renderkit.RendererUtils.RenderKitImpl
2008-10-21 19:26:48.179:/portlet-bridge-demo:INFO: end dumpScopeId
The interesting thing about this is that the RENDER_PHASE is executed
twice (there are not two different request, just one).
I'll try modify myfaces core 1.2.x, so it writes the marker on server
state saving (yes, there are no performance increase, but I'll take a
look at it), and see what happens. It seems to be a non blocking issue
for release if we modify myfaces core.