myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scott O'Bryan" <darkar...@gmail.com>
Subject Re: [VOTE] Release of Portlet Bridge 1.0.0-alpha-3
Date Tue, 21 Oct 2008 23:52:46 GMT
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.

Scott

Leonardo Uribe wrote:
>
>
> On Tue, Oct 21, 2008 at 6:13 PM, Leonardo Uribe <lu4242@gmail.com 
> <mailto:lu4242@gmail.com>> 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
>     <michael.freedman@oracle.com <mailto:michael.freedman@oracle.com>>
>     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
>                 <lu4242@gmail.com <mailto:lu4242@gmail.com>
>                 <mailto:lu4242@gmail.com <mailto:lu4242@gmail.com>>>
>                 wrote:
>
>
>
>                    On Tue, Oct 21, 2008 at 4:50 PM, michael freedman
>                    <michael.freedman@oracle.com
>                 <mailto:michael.freedman@oracle.com>
>                 <mailto:michael.freedman@oracle.com
>                 <mailto:michael.freedman@oracle.com>>>
>                    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>
>                 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> 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
>                            <darkarena@gmail.com
>                     <mailto:darkarena@gmail.com>
>                     <mailto:darkarena@gmail.com
>                     <mailto:darkarena@gmail.com>>> 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>
>
>
>
>
>
>
>
>
>


Mime
View raw message