[ http://issues.apache.org/jira/browse/TAPESTRY-825?page=comments#action_12361475 ]
Eli Doran commented on TAPESTRY-825: ------------------------------------ Hmm, bad summary description. The "Cookies failing" I'm referring to are cookies created by a CookieScopeManager I'm working on to provide a new scope for ASO's. Like "session" scope except with cookies. > Cookies failing due to improper timing on flush() method > -------------------------------------------------------- > > Key: TAPESTRY-825 > URL: http://issues.apache.org/jira/browse/TAPESTRY-825 > Project: Tapestry > Type: Bug > Components: Framework > Versions: 4.0 > Reporter: Eli Doran > > >> I believe I intended the flush() method to be the one that actually > >> writes the cookies out. The intent being to assemble a map of cookie > >> keys and values and write those cookies out inside flush(). > >> > >> However, the timing is completely wrong! The flush() is called even > >> aftter the request cycle is cleaned up, far too late. It should occur > >> from inside the ResponseRenderer service. Please add a bug. > >> On 12/30/05, Eli Doran <[EMAIL PROTECTED]> wrote: > >> To add more info... > >> > >> I added a bit to make sure it was the timing. I set the cookie scope > >> manager into a cart subclass and when done using it in the listener > >> method i called the manager's store method on it. Of course store gets > >> called again by the system a bit after but by then the cart is not dirty > >> and so it returns without doing any store stuff. However, the store > >> works when run earlier than the system defined time. Any way to alter that? > >> > >> So, where to dig to find what handles calling store on the > >> StateObjectPersistenceManagers? I'll look more tomorrow but if anyone > >> has some thoughts on this I'd be interested in hearing it. > >> > >> ~eli > >> > >> Eli Doran wrote: > >> > > > >>> > I've been trying to setup a new scope for ASO's using cookies. I have > >>> > the ASO working fine and injecting into pages. > >>> > > >>> > The problem is by the time the system calls > >>> > StateObjectPersistenceManager#store for the cookie manager it seems to > >>> > be too late to add cookies to the outgoing response. I checked it > >>> > wasn't the ASO by setting a simple cookie like: > >>> > cookieSource.writeCookieValue("store", "value"); in the store method > >>> > and it doesn't get stored. I'm using CookieSource injected into the > >>> > cookie ASO manager. > >>> > > >>> > Does anyone see a way around this problem? Or am I getting it wrong > >>> > somehow? > >>> > > >>> > Checking through my logs it shows the listener method beginning, the > >>> > cookie scope manager being accessed where it sets a test cookie, > >>> > creates the ASO and returns it, work in the listener is done and the > >>> > listener method returns, then the cookie scope manager is called to > >>> > store the ASO, which it runs through writing another simple cookie as > >>> > well as the ASO cookie and returns and finally the servlet's service > >>> > method completes. The test cookie in the "get the ASO" method is > >>> > available in the browser but the cookies written during the "store the > >>> > ASO" are not. This seems to prevent the possibility of a working > >>> > cookie ASO scope. > >>> > > >>> > I managed to setup a property persistence strategy that persists the > >>> > property object to a Cookie which manages to do the storing in time. > >>> > This works fine but when that object needs to be available to multiple > >>> > pages it'd be nicer to use an ASO than load the page with the > >>> > persistent property whenever it is needed. > >>> > > >>> > What'd you think? > >>> > > >>> > ~eli > >>> > > >>> > > >>> > This is my log...note the empty 'object' value for CookieScopeManager > >>> > on line #7 is an empty cart whose toString() produces an empty string. > >>> > > >>> > 1. 2005/12/31 01:26:46.531 TRACE [http-8888-Processor5] > >>> > TapestryServlet >>> service(ServletRequest, ServletResponse) > >>> > 2. 2005/12/31 01:26:57.171 TRACE [http-8888-Processor5] ReleasePage > >> > >>>>>> > >>> doAddToCart() > >> > >>> > 3. 2005/12/31 01:26:57.328 TRACE [http-8888-Processor5] > >>> > CookieScopeManager >*< CookieScopeManager() > >>> > 4. 2005/12/31 01:26:57.359 TRACE [http-8888-Processor5] > >>> > CookieScopeManager >>> get(String,StateObjectFactory) > >>> > 5. 2005/12/31 01:26:57.359 DEBUG [http-8888-Processor5] > >>> > CookieScopeManager === objectName = cart > >>> > 6. 2005/12/31 01:26:57.359 DEBUG [http-8888-Processor5] > >>> > CookieScopeManager === factory = <SingletonProxy for > >>> > website.state.CartBuilder(org.apache.tapestry.engine.state.StateObjectFactory)> > >>> > > >>> > 7. 2005/12/31 01:26:57.406 DEBUG [http-8888-Processor5] > >>> > CookieScopeManager === object = > >>> > 2005/12/31 01:26:57.406 TRACE [http-8888-Processor5] > >>> > CookieScopeManager <<< get(String,StateObjectFactory) > >>> > 2005/12/31 01:26:58.000 TRACE [http-8888-Processor5] ReleasePage <<< > >>> > doAddToCart() > >>> > 2005/12/31 01:26:58.015 TRACE [http-8888-Processor5] > >>> > CookieScopeManager >>> store(String,Object) > >>> > 2005/12/31 01:26:58.015 DEBUG [http-8888-Processor5] > >>> > CookieScopeManager === objectName = cart > >>> > 2005/12/31 01:26:58.015 DEBUG [http-8888-Processor5] > >>> > CookieScopeManager === stateObject = 204-205_2-206_3 > >>> > 2005/12/31 01:26:58.015 DEBUG [http-8888-Processor5] > >>> > CookieScopeManager === dirty = true > >>> > 2005/12/31 01:26:58.031 DEBUG [http-8888-Processor5] > >>> > CookieScopeManager === cookieValue = > >>> > ZH4sIAAAAAAAAAFvzloG1uIhBMjk/Vy81JzMlvygxTy85sahEzzexwBlI/2FkOxfCUirPw8BQUVDOwsDAwAxUL5iVWJaol5OYl67nmVeSmp5aJPRowZLvje0WTAyMngysZYk5pakVRQwCCHV+pblJqUVta6bKck950M0EMg5o2BmwkYzFhQx1DEAxhrNgPhOcf66cA2TlfyCoAAAIrQA+rAAAAA== > >>> > > >>> > 2005/12/31 01:26:58.031 TRACE [http-8888-Processor5] > >>> > CookieScopeManager <<< store(String,Object) > >>> > 2005/12/31 01:26:58.031 TRACE [http-8888-Processor5] TapestryServlet > >>> > <<< service(ServletRequest, ServletResponse) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
