This fix has addressed my issue, and its now all working as expected :clap:.
Cheers, Ben. Sven Homburg wrote: > > howard commited some changes into tapestry trunk, so the snapshot build > starts in some minutes > > 2008/5/8 Sven Homburg <[EMAIL PROTECTED]>: > >> lebenski, >> >> the snapshot build run at 23:45 centrale european time >> for faster access, checkout the repository trunk an compile it with "mvn >> clean install" >> >> >> 2008/5/8 lebenski <[EMAIL PROTECTED]>: >> >>> >>> I have this in my pom: >>> >>> <dependency> >>> <groupId>org.apache.tapestry</groupId> >>> <artifactId>t5c-contrib</artifactId> >>> <version>0.5.12-SNAPSHOT</version> >>> </dependency> >>> >>> <dependency> >>> <groupId>org.apache.tapestry</groupId> >>> <artifactId>t5c-commons</artifactId> >>> <version>0.5.12-SNAPSHOT</version> >>> </dependency> >>> >>> <repository> >>> <id>t5components</id> >>> <name>T5Components Maven Repository</name> >>> <url> >>> http://87.193.218.134:8080/t5components/maven-repository</url> >>> </repository> >>> >>> And from what I can see, the issue is not fixed for me. As you know, I >>> have >>> to present this tomorrow! Any tips on getting it working would be >>> great. >>> >>> Sven Homburg wrote: >>> > >>> > 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 >>> > >>> > >>> > ----- >>> > 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-tp17123771p17127537.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-tp17123771p17143935.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]