i commited a fix into the trunk

2008/5/8 lebenski <[EMAIL PROTECTED]>:

>
> Apparently this message didnt get sent properly last time:
>
> Oh I just noticed that you said you found the problem.... is it because the
> jsessionid is getting passed on the URL or something else?
>
>
>
> lebenski wrote:
> >
> > Thanks very much Sven.  I appreciate your help on this matter, let me
> know
> > if I can be of any assistance,  I'll be monitoring this thread all day.
> >
> > Ben.
> >
> >
> >
> > Sven Homburg wrote:
> >>
> >> after a debug session, a find the reason for this behavior.
> >> i try to find out a soloution for that
> >>
> >> 2008/5/8 lebenski <[EMAIL PROTECTED]>:
> >>
> >>>
> >>> Yeah that sounds exactly like the problem i'm getting.
> >>>
> >>> FYI here is my initial request (onchange of username field) after
> >>> deleting
> >>> cookies:
> >>>
> >>> URL=
> >>>
> http://localhost:8080/home.homepage.registerwidget.registerbasicwidget.registerbasic_username:change;jsessionid=1d4snmum7f5cy/tesusername
> >>>
> >>> Second request:
> >>>
> >>> URL=
> >>>
> http://localhost:8080/home.homepage.registerwidget.registerbasicwidget.registerbasic_username:change/tesusername
> >>>
> >>> It appears the jsessionid only gets sent on the URL on the first
> request
> >>> (which breaks).  However it gets sent in the cookie header both times.
> >>>  The
> >>> last bit after the slash is the value of the user name field.
> >>>
> >>>
> >>> Sven Homburg wrote:
> >>> >
> >>> > i tested it here in my demo app.
> >>> > if i delete the session cookie the the onevent result is empty
> >>> > even though i refresh the page !?!?
> >>> >
> >>> > 2008/5/8 Sven Homburg <[EMAIL PROTECTED]>:
> >>> >
> >>> >> is there the same behavior if the restart the browser?
> >>> >>
> >>> >>
> >>> >> 2008/5/8 lebenski <[EMAIL PROTECTED]>:
> >>> >>
> >>> >> >
> >>> >> > for real testing i think its better to delete the cookie and
> >>> refresh
> >>> >> the
> >>> >> > page
> >>> >> > before you initiate the ajax request cycle.
> >>> >> >
> >>> >> > This is exactly what i'm doing.  I've also tried this from a
> fresh,
> >>> >> > non-dev
> >>> >> > machine.  I hit my server without doing any shenanigans with
> >>> deleting
> >>> >> > cookies and I get the same issue %-|.
> >>> >> >
> >>> >> >
> >>> >> > Sven Homburg wrote:
> >>> >> > >
> >>> >> > > thats not correct,
> >>> >> > > the session id ommited by the servlet by every
> >>> >> > > request to the browser
> >>> >> > >
> >>> >> > > so if the user starts the browser
> >>> >> > > and request the www.blabla.com/servletcontext/login or whatever
> >>> >> > > the servlet container response the session id
> >>> >> > >
> >>> >> > > if you delete the cookie or remove the session id from url
> >>> >> > > the server cant handle the ajax request (not sure for that but
> >>> sounds
> >>> >> > > logical for me)
> >>> >> > >
> >>> >> > > for real testing i think its better to delete the cookie and
> >>> refresh
> >>> >> > the
> >>> >> > > page
> >>> >> > > before you initiate the ajax request cycle.
> >>> >> > >
> >>> >> > > 2008/5/8 lebenski <[EMAIL PROTECTED]>:
> >>> >> > >
> >>> >> > >>
> >>> >> > >> I'm replicating the state in which a new user will hit the
> site,
> >>> >> they
> >>> >> > >> won't
> >>> >> > >> have any of the cookies set by Tapestry.
> >>> >> > >>
> >>> >> > >>
> >>> >> > >> Sven Homburg wrote:
> >>> >> > >> >
> >>> >> > >> > why do you delete the cookies ?
> >>> >> > >> >
> >>> >> > >> > 2008/5/8 lebenski <[EMAIL PROTECTED]>:
> >>> >> > >> >
> >>> >> > >> >>
> >>> >> > >> >> Hi guys,
> >>> >> > >> >>
> >>> >> > >> >> Ok i've got an urgent problem.  I'm using tapestry to
> develop
> >>> a
> >>> >> > web
> >>> >> > >> app,
> >>> >> > >> >> which I have to present tomorrow to some very important
> >>> people!
> >>> >> > >> >>
> >>> >> > >> >> I've got a very frustrating problem.  I will try to explain
> >>> it
> >>> as
> >>> >> > >> clearly
> >>> >> > >> >> as
> >>> >> > >> >> possible.
> >>> >> > >> >>
> >>> >> > >> >> I'm using the t5components/OnEvent Mixin to call back to
> >>> Tapestry
> >>> >> > >> >> 'onChange'
> >>> >> > >> >> of a textfield.
> >>> >> > >> >>
> >>> >> > >> >> TML:
> >>> >> > >> >>
> >>> >> > >> >>  <t:form t:id="registerBasicForm" t:class="gamesysForm"
> >>> >> > >> >> zone="registerBasicZone">
> >>> >> > >> >> ....
> >>> >> > >> >>                            <t:label
> >>> for="registerbasic_userName">
> >>> >> > >> >>                                User Name:
> >>> >> > >> >>                            </t:label>
> >>> >> > >> >>                            <t:textfield
> >>> >> > t:id="registerbasic_userName"
> >>> >> > >> >> t:value="userName"
> >>> >> > >> >> event="change" onfocus="showFieldHint('4-16
> >>> >> > >> >> characters');showFieldError('registerbasic_userName');"/>
> >>> >> > >> >>
> >>> >> > >> >> ....
> >>> >> > >> >> </t:form>
> >>> >> > >> >>
> >>> >> > >> >> Page Class:
> >>> >> > >> >>
> >>> >> > >> >> @Component(id = "registerbasic_userName", parameters = {
> >>> >> > >> "event=change",
> >>> >> > >> >>
> >>> >> > >> >> "onCompleteCallback=checkForServerValidationErrors"
> >>> >> > >> >> })
> >>> >> > >> >>        @Mixins("t5components/OnEvent")
> >>> >> > >> >>        private TextField userNameField;
> >>> >> > >> >>
> >>> >> > >> >> ...
> >>> >> > >> >>
> >>> >> > >> >>        @OnEvent(component = "registerbasic_userName", value
> =
> >>> >> > >> "change")
> >>> >> > >> >>        public JSONObject onChangeFromUserName(String value)
> {
> >>> >> > >> >>                System.out.println("onChangeFromUserName");
> >>> >> > >> >>                JSONObject json = new JSONObject();
> >>> >> > >> >>                Boolean userNameExists = false;
> >>> >> > >> >>
> >>> >> > >> >>                Pattern p =
> >>> >> > >> >> Pattern.compile(messages.get("alphanumeric-regex"));
> >>> >> > >> >>                Matcher m = p.matcher(value);
> >>> >> > >> >>                boolean validUserName = m.find();
> >>> >> > >> >>
> >>> >> > >> >>                if (validUserName) {
> >>> >> > >> >>                        try {
> >>> >> > >> >>                                userNameExists =
> >>> >> > >> >> hydraService.userNameExists(value);
> >>> >> > >> >>                        } catch (ServiceFaultException x) {
> >>> >> > >> >>                                logger.error("----fault : " +
> >>> >> > >> >> x.getFault().getMessage());
> >>> >> > >> >>                        } catch (ServiceProblemException x) {
> >>> >> > >> >>                                logger.error("----problem:" +
> >>> x);
> >>> >> > >> >>                        }
> >>> >> > >> >>
> >>> >> > >> >>                        if (userNameExists) {
> >>> >> > >> >>                                json.put("error", "true");
> >>> >> > >> >>                                json
> >>> >> > >> >>
> >>>  .append("message",
> >>> >> > >> >> "Username " + value
> >>> >> > >> >>
> >>>  +
> >>> >> "
> >>> >> > is
> >>> >> > >> >> taken");
> >>> >> > >> >>                        } else {
> >>> >> > >> >>                                json.put("error", "false");
> >>> >> > >> >>                                json.append("message", "");
> >>> >> > >> >>                        }
> >>> >> > >> >>
> >>> >> > >> >>                } else {
> >>> >> > >> >>                        json.put("error", "true");
> >>> >> > >> >>                        json.append("message", "Field
> contains
> >>> >> > invalid
> >>> >> > >> >> characters");
> >>> >> > >> >>                }
> >>> >> > >> >>
> >>> >> > >> >>                json.append("submitid",
> >>> "submitRegisterBasic");
> >>> >> > >> >>                json.append("field",
> >>> "registerbasic_userName");
> >>> >> > >> >>                System.out.println(json.get("error") + " " +
> >>> >> > >> >> json.get("field") + " "
> >>> >> > >> >>                                + json.get("message"));
> >>> >> > >> >>
> >>> >> > >> >>                return json;
> >>> >> > >> >>        }
> >>> >> > >> >>
> >>> >> > >> >> Javascript:
> >>> >> > >> >>
> >>> >> > >> >>        function checkForServerValidationErrors(response){
> >>> >> > >> >>
> >>> >> > >> >>                var json = response.evalJSON();
> >>> >> > >> >>                var elementId = json.field.toString();
> >>> >> > >> >>
> >>> >> > >> >>                //This MUST be done first
> >>> >> > >> >>                performTypeValidation(elementId);
> >>> >> > >> >>
> >>> >> > >> >>            if (json!=null && json.error == 'true' &&
> >>> >> > >> >> formErrors[elementId]==null)
> >>> >> > >> >> {
> >>> >> > >> >>
> >>> >> >  addFormValidationError(elementId,json.message);
> >>> >> > >> >>            }
> >>> >> > >> >>
> >>> >> > >> >>
> >>> >> > >> >>
>  processValidationErrors(elementId,json.submitid.toString());
> >>> >> > >> >>        }
> >>> >> > >> >>
> >>> >> > >> >> So, what happens is, when the user types a value into
> >>> 'userName',
> >>> >> > and
> >>> >> > >> >> exits
> >>> >> > >> >> the field (onChange seems to act like onBlur), it calls back
> >>> to
> >>> >> > >> Tapestry
> >>> >> > >> >> which executes the onChangeFromUserName(String value) method
> >>> to
> >>> >> > check
> >>> >> > >> if
> >>> >> > >> >> the
> >>> >> > >> >> username exists in the database.  This then calls back to
> the
> >>> >> > >> javascript
> >>> >> > >> >> function (defined in the Component annotation) with a JSON
> >>> >> object.
> >>> >> > >> The
> >>> >> > >> >> javascript is used for client side validation/presentational
> >>> >> > stuff.
> >>> >> > >> >>
> >>> >> > >> >> This all works fine under normal conditions.  HOWEVER, when
> I
> >>> >> > clear my
> >>> >> > >> >> cookies and do the same action (type a value into 'username'
> >>> and
> >>> >> > tab
> >>> >> > >> >> out),
> >>> >> > >> >> i
> >>> >> > >> >> get a javascript error 'json.field has no properties'.  The
> >>> >> server
> >>> >> > >> side
> >>> >> > >> >> method (onChangeFromUserName) isn't getting called (I can
> >>> tell
> >>> >> > because
> >>> >> > >> it
> >>> >> > >> >> doesnt hit System.out.println("onChangeFromUserName");), BUT
> >>> it
> >>> >> is
> >>> >> > >> >> calling
> >>> >> > >> >> back to the javascript function.  Rightly so, the javascript
> >>> is
> >>> >> > >> >> complaining
> >>> >> > >> >> because the JSON object hasn't been passed in.
> >>> >> > >> >>
> >>> >> > >> >> 2 cookies are getting set, JSESSIONID and UTRACK, and they
> do
> >>> get
> >>> >> > sent
> >>> >> > >> >> both
> >>> >> > >> >> on the initial request (right after i've cleared my cookies)
> >>> and
> >>> >> > the
> >>> >> > >> >> request
> >>> >> > >> >> after.  But for some reason, i'm not hitting the server
> >>> method
> >>> on
> >>> >> > the
> >>> >> > >> >> initial request.
> >>> >> > >> >>
> >>> >> > >> >> I have used tamper data to analyse both requests and they
> >>> appear
> >>> >> > to be
> >>> >> > >> >> identical.  Both cookies are getting sent, all the headers
> >>> are
> >>> >> > >> identical.
> >>> >> > >> >>
> >>> >> > >> >> I am at a real loss and starting to panic about this.  I'm
> >>> >> > starting to
> >>> >> > >> >> think
> >>> >> > >> >> that Tapestry needs a request to properly set up the
> session,
> >>> >> > before
> >>> >> > >> you
> >>> >> > >> >> can
> >>> >> > >> >> actually call back to it, but this is only a hunch.
> >>> >> > >> >>
> >>> >> > >> >> I really need to get this sorted, if you have any ideas then
> >>> >> > please
> >>> >> > >> help!
> >>> >> > >> >> --
> >>> >> > >> >> View this message in context:
> >>> >> > >> >>
> >>> >> > >>
> >>> >> >
> >>> >>
> >>>
> http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17123771.html
> >>> >> > >> >> Sent from the Tapestry - User mailing list archive at
> >>> Nabble.com.
> >>> >> > >> >>
> >>> >> > >> >>
> >>> >> > >> >>
> >>> >> >
> >>> ---------------------------------------------------------------------
> >>> >> > >> >> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> >>> >> > >> >> For additional commands, e-mail:
> >>> [EMAIL PROTECTED]
> >>> >> > >> >>
> >>> >> > >> >>
> >>> >> > >> >
> >>> >> > >> >
> >>> >> > >> > --
> >>> >> > >> > with regards
> >>> >> > >> > Sven Homburg
> >>> >> > >> > http://tapestry5-components.googlecode.com
> >>> >> > >> >
> >>> >> > >> >
> >>> >> > >> > -----
> >>> >> > >> > best regards
> >>> >> > >> > Sven
> >>> >> > >> >
> >>> >> > >>
> >>> >> > >> --
> >>> >> > >> View this message in context:
> >>> >> > >>
> >>> >> >
> >>> >>
> >>>
> http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17123963.html
> >>> >> > >> Sent from the Tapestry - User mailing list archive at
> >>> Nabble.com.
> >>> >> > >>
> >>> >> > >>
> >>> >> > >>
> >>> >>
> ---------------------------------------------------------------------
> >>> >> > >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> >> > >> For additional commands, e-mail:
> [EMAIL PROTECTED]
> >>> >> > >>
> >>> >> > >>
> >>> >> > >
> >>> >> > >
> >>> >> > > --
> >>> >> > > with regards
> >>> >> > > Sven Homburg
> >>> >> > > http://tapestry5-components.googlecode.com
> >>> >> > >
> >>> >> > >
> >>> >> > > -----
> >>> >> > > best regards
> >>> >> > > Sven
> >>> >> > >
> >>> >> >
> >>> >> > --
> >>> >> > View this message in context:
> >>> >> >
> >>> >>
> >>>
> http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17124134.html
> >>> >> > Sent from the Tapestry - User mailing list archive at Nabble.com.
> >>> >> >
> >>> >> >
> >>> >> >
> >>> ---------------------------------------------------------------------
> >>> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> >> > For additional commands, e-mail: [EMAIL PROTECTED]
> >>> >> >
> >>> >> >
> >>> >>
> >>> >>
> >>> >> --
> >>> >> with regards
> >>> >> Sven Homburg
> >>> >> http://tapestry5-components.googlecode.com
> >>> >>
> >>> >
> >>> >
> >>> >
> >>> > --
> >>> > with regards
> >>> > Sven Homburg
> >>> > http://tapestry5-components.googlecode.com
> >>> >
> >>> >
> >>> > -----
> >>> > best regards
> >>> > Sven
> >>> >
> >>>
> >>> --
> >>> View this message in context:
> >>>
> http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17124356.html
> >>> Sent from the Tapestry - User mailing list archive at Nabble.com.
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>
> >>
> >> --
> >> with regards
> >> Sven Homburg
> >> http://tapestry5-components.googlecode.com
> >>
> >>
> >> -----
> >> best regards
> >> Sven
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17124838.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
with regards
Sven Homburg
http://tapestry5-components.googlecode.com

Reply via email to