On Tue, Oct 21, 2008 at 7:40 PM, Leonardo Uribe <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
On Tue, Oct 21, 2008 at 6:52 PM, Scott O'Bryan
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
Leonardo,
Right. This was the problem discovered last release. The
behavior your seeing is actually expected (it was CHANGED to
do what it does because it USED to throw an exception). What
Mike discovered was that, although there is really no need to
tokenize server-side and JS state saving, we were not actually
gaining anything by NOT tokenizing it (there are no
performance increases because of the current code path). And
in order for the bridge to automatically determine the token
being used, it needs to be present.
The way I see it, we have two choices. We can try to work off
of the implementation name of the distribution on MyFaces
(which would make the implementation name part of the
contract) OR we can modify MyFaces to always write the token.
Alternatively, I believe if you set the token in the init
parameters of the portlet (as specified in JSR-301) then that
will also get rid of the log entry. We were trying to let the
R.I. autodetect between the R.I. and MyFaces.
As for the excludes, if that works then we should probably
commit these changes to the alpha-3 branch and I can regenrate.
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 <http://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 <http://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.
I apply the modification on JspViewHandlerImpl, so the marker is
always written. The result is the same, but the warning disappear. I
tried to test firefox 2.0.0.17 <http://2.0.0.17> (windows vista) from
another computer and works normal, so it seem to be a problem on my
other machine (windows xp). I tried install firefox 3.0.3 and the
problem is present too. The strange part of all this stuff is that jsf
ri does not have the problem (and using myfaces core with client side
state saving too). The configuration that fails specifically is
windows xp, firefox, myfaces core 1.2.x and server state saving.
Scott
Leonardo Uribe wrote:
On Tue, Oct 21, 2008 at 6:13 PM, Leonardo Uribe
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
The problem only happens when server state saving is
used. On
client side state saving everything works well.
I'll try add the params to faces-config.xml and see
what happens.
Checking myfaces core 1.2.x code, class JspViewHandlerImpl
there is this code:
public void writeState(FacesContext facesContext)
throws IOException
{
StateManager stateManager =
facesContext.getApplication().getStateManager();
if (stateManager.isSavingStateInClient(facesContext))
{
// Only write state marker if javascript view state
is disabled
ExternalContext extContext =
facesContext.getExternalContext();
if
(!(JavascriptUtils.isJavascriptAllowed(extContext) &&
MyfacesConfig.getCurrentInstance(extContext).isViewStateJavascript()))
{
facesContext.getResponseWriter().write(FORM_STATE_MARKER);
}
}
else
{
stateManager.writeState(facesContext, new
Object[2]);
}
}
Myfaces core 1.2.x does not write any marker on server
side state saving (I suppose jsf ri does) and the inner
class JspViewHandlerImpl.StateMarkerAwareWriter (this
class is responsible to change the marker) is only used on
client side state saving, but portlet bridge always assume
that some marker is written.
On Tue, Oct 21, 2008 at 5:57 PM, michael freedman
<[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>
wrote:
The main thing to note here is that this message is
always
written to the log when running this Myfaces config
(for all
your browsers) and hence is non-indicative of the
problem.
FYI -- we can't determine that its correct (for
all cases)
that we didn't find the Token which is why we write
a log message.
-Mike-
Scott O'Bryan wrote:
Hey Leo, this could be related to the
state-saving issue
with MyFaces that I posted to the dev list
about a month
ago. I havn't had time to fix it (or even
write a JIRA
ticket) but, essentially, there are times that
MyFaces
does not generate a state-saving token when
maybe it
should. On the previous attempt for alpha-3,
we were
generating an exception. This has changed into
a stern
warning which is what you're seeing in the logs.
Are you seeing a functional issue? If so, then
I suppose
I can try and tackle the MyFaces issue in my
copious
amounts of free time to see if we can resolve
the issue
from the MyFaces side.
Scott
Leonardo Uribe wrote:
On Tue, Oct 21, 2008 at 5:18 PM, Leonardo Uribe
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>>
wrote:
On Tue, Oct 21, 2008 at 4:50 PM, michael
freedman
<[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>>
wrote:
What do you mean by the "demo app stops
running"? Does it run
at all? If so how far do you get
before you
run into the
problem? The error message you are
seeing is
written into the
log, right? If so, all this is
telling you is
that Myfaces is
running in a configuration where it
writes the
state directly
into the rendition versus using the
cache/replace model of the
SAVESTATE_FIELD_MARKER. FYI ... I
also am
using Firefox
2.0.0.17 <http://2.0.0.17>
<http://2.0.0.17> <http://2.0.0.17>
and the demo is running fine for
me. So please send me more info on
reproducing.
I just run the demo like this:
mvn clean -PjettyConfig jetty:run
(according to the
pom myfaces
core 1.2.2 is used)
and then try the demo several times.
Sometimes
works but others do
not and the message is on the log. I'm
just run the
demo as is,
without any modification. I don't know
if there is
some special
configuration to make it work correctly with
myfaces core. If this
is true, it could be good to use
profiles to define
several
web.xml files for configure and test it.
One last note: stops
running means when you click a
button or link the state is not restored
and the
request is readed as it was new.
As for running with the RI there are
potentially two issues:
first the command is now:
mvn clean -PjettyConfig
-Djsf=ri-provided jetty:run
Ok, thanks, it works and does not have
the problem
with firefox.
The other problem
is you need to make sure its
not trying to
run with the prior MyFaces TLD --
generally the
clean should
do this, though.
-Mike-
Leonardo Uribe wrote:
I tried to run the demo module
and on
firefox 2.0.0.17 <http://2.0.0.17>
<http://2.0.0.17>
<http://2.0.0.17> sometimes I
have this
(the demo app stops
running):
2008-10-21
15:51:40.318:/portlet-bridge-demo:INFO:
History
for mode: view : /he
lloworld/index.jsp?javax.portlet.faces.PortletMode=view&__jpfbReqScopeId=portlet
-bridge-demo%3Ayd3exguy3te2%3Aview%3A24d73b2a%3A11d21270f21%3A-7fd3&javax.faces.
ViewState=qpZU311sohuneMJrlpRjNB4K2cfv0ubhRgzMYD5Kf4V1pkzHlFXyeKdNfb5408dPXMeN1u
tp3qg5cWArexFYziMyJAzgTwOQ8GFyqxDCz8Y%3D
2008-10-21
15:51:40.318:/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.
In opera 9 and IE 7 everything
works fine.
Also when I tried to run
mvn clean -PjettyConfig -Djsf=ri
jetty:run
throws this error:
2008-10-21 15:52:51.809::WARN:
failed
portlet-bridge-demo
java.lang.NoClassDefFoundError:
javax/faces/FacesException
at
java.lang.ClassLoader.defineClass1(Native Method)
at
java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
at
java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at
java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at
java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at
java.security.AccessController.doPrivileged(Native
Method)
at
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at
org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoade
r.java:366)
at
org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoade
r.java:337)
maybe this is not blocking but
it could be
good to have a
fast way to test it.
On Tue, Oct 21, 2008 at 12:28
PM, Scott O'Bryan
<[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>> wrote:
+1
Scott O'Bryan wrote:
Sorry, I forgot the word
[VOTE] in
the subject.
Scott O'Bryan wrote:
Hi,
I'm trying to
release the
MyFaces Portlet Bridge
Master
1.0.0-alpha-3. This
release was created
in order to support
the latest
JSR-301 Public
Review so that it
may be tested
by developers
during the review
process.
This is still an
alpha release
because there is
currently no
testing of the R.I.
I was running the
needed tasks
to get the
1.0.0-alpha-3
release of the
Apache MyFaces
Portlet Bridge out. The
artifacts are deployed to
my private Apache
account ([1]).
Please take a look
at the
"portlet-bridge-master-pom-1"
artifacts and vote
------------------------------------------------
[ ] +1 for community
members
who have reviewed
the bits
[ ] +0
[ ] -1 for fatal
flaws that
should cause these
bits not to be released,
and
why..............
------------------------------------------------
Thanks,
Scott
[1]
http://people.apache.org/~sobryan/portlet-bridge/1.0.0-alpha-3
<http://people.apache.org/%7Esobryan/portlet-bridge/1.0.0-alpha-3>
<http://people.apache.org/%7Esobryan/portlet-bridge/1.0.0-alpha-3>
<http://people.apache.org/%7Esobryan/portlet-bridge/1.0.0-alpha-3>
<http://people.apache.org/%7Esobryan/portlet-bridge/1.0.0-alpha-3>