> (I hope images can be displayed in this way) Nope, attachments don't work here (links do).
> What class has replaced this implementation in the 0.9.18? In 0.9.18, the offline rendering was moved into it's own module (tapestry-offline) The class that does the rendering now is OfflineComponentRendererImpl https://github.com/uklance/tapestry-offline/blob/master/src/main/java/org/lazan/t5/offline/services/internal/OfflineComponentRendererImpl.java > Also could code like this cause this kind of issue? If updatedProfilePage is marked with @Persist, then yes Here's what I'd expect 1. A tapestry request request comes in for your page with JSESSIONID=XXX 2. As the page renders, it fires a cometd request with JSESSIONID=XXX, BAYEUX_BROWSER=YYY 3. All future cometd requests should have JSESSIONID=XXX, BAYEUX_BROWSER=YYY It's probably easiest to watch the traffic in the developer tools in your browser (network traffic). I'm guessing somewhere along the way, one of the session id's is getting lost. On 14 June 2014 16:34, Boris Horvat <horvat.z.bo...@gmail.com> wrote: > From what I can see the JSESSIONID is never changed, but I never seen > BAYEUX_BROWSER being passed. > > In the class ComponentJSONRendererImpl I can see only 1 cookie > > [image: Inline image 1] > > (I hope images can be displayed in this way) > > What class has replaced this implementation in the 0.9.18? > > Also could code like this cause this kind of issue? > > <t:cometd.PushTarget topic="prop:channelMenuItems" > event="updateMenuItems" update="replace" session="true"/> > <t:block t:id="blockGroupNotificationNumber"> stuff </t:block> > > @OnEvent("updateMenuItems") > Block onUpdateMenuItems(ProfilePage profilePage) { > this.updatedProfilePage = profilePage; > // Added script for updating menu items badges because of push > notification > ajaxResponseRenderer.addCallback(new JavaScriptCallback() { > public void run(JavaScriptSupport jss) { > jss.addInitializerCall("removeElementById", > "menuItemsDiv"); > } > }); > return blockGroupNotificationNumber; > } > > > T5.initializers.removeElementById = function(id) { > var element = document.getElementById(id); > element.parentNode.removeChild(element); > } > > On Sat, Jun 14, 2014 at 4:13 PM, Lance Java <lance.j...@googlemail.com> > wrote: > >> There's a bit too much info there for me to grok without much context. >> >> Watch these two cookies: >> JSESSIONID=6C36330F5F8519937A9620B276E9C219; >> BAYEUX_BROWSER=a43f-14stwrta3yd8bhwep00t3wfz >> >> For all requests, make sure their values are consistent and don't change. >> >> Also, what's this? >> >> >> >> java.util.concurrent.ExecutionException%3A%20java.lang.RuntimeException%3A%20org.apache.tapestry5.runtime.ComponentEventException%3A%20Render%20queue%20error%20in%20BeginRender%5Bblackbox%2FAssets%3Aheader.menuprofile.if_1%5D%3A%20Failure%20reading%20parameter%20%27test%27%20of%20component%20blackbox%2FAssets%3Aheader.menuprofile.if_1%3A%20%21session%20%5Bat%20classpath%3Acom%2Fbomahabo%2Fflow%2Ftapestry%2Fcomponents%2Flayout%2FMenuProfile.tml%2C%20line%204%5D >> On 14 Jun 2014 11:09, "Boris Horvat" <horvat.z.bo...@gmail.com> wrote: >> >> > Well it is cookie bases session. This happens in the application that we >> > run in local jetty as well as on amazon hosted tomcat (each time single >> > server is being used) >> > >> > When the request is made and page is refreshed I can see the following >> data >> > in the network section. From my understanding of the below data cookie >> is >> > being passed >> > >> > >> > 1. Remote Address: >> > 46.137.121.29:80 >> > 2. Request URL: >> > http://qa.flow-manager.com/assets.formcreateasset >> > 3. Request Method: >> > POST >> > 4. Status Code: >> > 500 Internal Server Error >> > 5. Request Headersview source >> > 1. Accept: >> > >> > >> > >> text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 >> > 2. Accept-Encoding: >> > gzip,deflate,sdch >> > 3. Accept-Language: >> > en-GB,en;q=0.8,en-US;q=0.6 >> > 4. Cache-Control: >> > max-age=0 >> > 5. Connection: >> > keep-alive >> > 6. Content-Length: >> > 2318 >> > 7. Content-Type: >> > multipart/form-data; >> boundary=----WebKitFormBoundaryihPoozZSG4dtBo6N >> > 8. Cookie: >> > JSESSIONID=6C36330F5F8519937A9620B276E9C219; >> > BAYEUX_BROWSER=a43f-14stwrta3yd8bhwep00t3wfz >> > 9. Host: >> > qa.flow-manager.com >> > 10. Origin: >> > http://qa.flow-manager.com >> > 11. Referer: >> > http://qa.flow-manager.com/assets >> > 12. User-Agent: >> > Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, >> like >> > Gecko) Chrome/35.0.1916.114 Safari/537.36 >> > 6. Request Payload >> > 1. ------WebKitFormBoundaryihPoozZSG4dtBo6N Content-Disposition: >> > form-data; name="t:formdata" >> > >> > >> C9nX/WAHQFhLKBNcBCAk2Eo8yUk=:H4sIAAAAAAAAAM2XTWgTQRTHp6kVbUupRYuU4hf1UDDbnWQ3u1FEitIihFYaFLxYJskkrt3srDuzJiJ4tQcvevEmCN78OOjBWw/tQZqDF8W74FUQC56sdDdbk1I3mUlsU0/LzLz35rfz/jNv5uU30FMaBSMZE2UXMqQ8MUkpZvSsTWzXlkxCbOoAiTgFCdkoexNLDNmYMueuKmWJg00j432LNrGwxaiU8uzH1Ojs6udxcG81AkDZ3uHg8PrXV2v5dx+fiQWfaSn4nDfuDaUZYnjKIcW038pdNA3P5BoyXRx9svxpEZxYj4CuFOjL1gcYGErdQnfQhImswkSaOYZVOFe2GTgU1VQ1GYfJhAaVhKoo8dIxMNqYeV6+De6DLhGjbp4R9a32bWfQYEzleEIRBijCAEMZNFmJx0snwfFwT4bLLG9gM+clUG2awAyiWJrMeJ0oy6Z8l7E0Zq59+upK35cj739t5olYzCHmDCpin6bHz8vB2iRiHJOtclxxSBZTmnYzRYNSg1grr3NK/ufTD4FwecvW6r5Qftj58enhFxd2J3xCHvyu33j+8LxI+Ko6h9pSpxZToL7X6kzIqpA6fed+BvpqPfOygJvvNShCz1vBqtHhXcyFpqjKHudCj8FEkxPTtU2CaonYHzR55v9jAoJITatZEIdrEhrFQTmDFBzi+jVRF935c77XtO8VnKqP5KUzbwfWlhufqr31ibgYShsYsFKuVN6k15eCY+goGN4+RXU59UCVTYe7Gw//UWIEJsP+wgOutje3jSe83npXc4dAek25hgS4YpoYV3+9qzNkXUrrYLAjYIKZ3AoW6wiY3jpYvCMiUzmJCSPjpH+nyDhaDiNTO0IG29B/oiMy4/x/GBjnkNkhsDZUxtky/wYW1NAxcKpBmTWsBerf6ZnH5oBLwrdoz6/6FmB/vwxmjcXHv0ceWNW6eiB4VV7O1YrqwNY55+UNeSn//bIPAAA= >> > ------WebKitFormBoundaryihPoozZSG4dtBo6N Content-Disposition: >> > form-data; >> > name="textfield" dddssddsd >> ------WebKitFormBoundaryihPoozZSG4dtBo6N >> > Content-Disposition: form-data; name="textfield_0" >> > ------WebKitFormBoundaryihPoozZSG4dtBo6N Content-Disposition: >> > form-data; >> > name="upload"; filename="" Content-Type: application/octet-stream >> > ------WebKitFormBoundaryihPoozZSG4dtBo6N Content-Disposition: >> > form-data; >> > name="t:formdata" ------WebKitFormBoundaryihPoozZSG4dtBo6N >> > Content-Disposition: form-data; name="containerAsset" >> > ------WebKitFormBoundaryihPoozZSG4dtBo6N Content-Disposition: >> > form-data; >> > name="checkbox_0" on ------WebKitFormBoundaryihPoozZSG4dtBo6N >> > Content-Disposition: form-data; name="checkbox_0_1" on >> > ------WebKitFormBoundaryihPoozZSG4dtBo6N Content-Disposition: >> > form-data; >> > name="checkbox_0_2" on ------WebKitFormBoundaryihPoozZSG4dtBo6N >> > Content-Disposition: form-data; name="checkbox_0_3" on >> > ------WebKitFormBoundaryihPoozZSG4dtBo6N Content-Disposition: >> > form-data; >> > name="checkbox_0_6" on ------WebKitFormBoundaryihPoozZSG4dtBo6N >> > Content-Disposition: form-data; name="t:submit" >> > ["linksubmit_0_0",null] >> > ------WebKitFormBoundaryihPoozZSG4dtBo6N-- >> > 7. Response Headersview source >> > 1. Connection: >> > keep-alive >> > 2. Content-Encoding: >> > gzip >> > 3. Content-Type: >> > text/html;charset=UTF-8 >> > 4. Date: >> > Sat, 14 Jun 2014 09:00:14 GMT >> > 5. Server: >> > Apache-Coyote/1.1 >> > 6. transfer-encoding: >> > chunked >> > 7. X-Tapestry-ErrorMessage: >> > >> > >> > >> java.util.concurrent.ExecutionException%3A%20java.lang.RuntimeException%3A%20org.apache.tapestry5.runtime.ComponentEventException%3A%20Render%20queue%20error%20in%20BeginRender%5Bblackbox%2FAssets%3Aheader.menuprofile.if_1%5D%3A%20Failure%20reading%20parameter%20%27test%27%20of%20component%20blackbox%2FAssets%3Aheader.menuprofile.if_1%3A%20%21session%20%5Bat%20classpath%3Acom%2Fbomahabo%2Fflow%2Ftapestry%2Fcomponents%2Flayout%2FMenuProfile.tml%2C%20line%204%5D >> > >> > >> > >> > On Sat, Jun 14, 2014 at 8:25 AM, Lance Java <lance.j...@googlemail.com> >> > wrote: >> > >> > > Are you using cookie based session or url based? >> > > >> > > Try inspecting the network traffic and ensure the cookie is being >> passed >> > > each time. >> > > >> > > Is this a clustered setup? >> > > On 14 Jun 2014 01:35, "Boris Horvat" <horvat.z.bo...@gmail.com> >> wrote: >> > > >> > > > Hi Lance, I am not sure what you mean by >> > > > >> > > > >> > > > One restriction with tapestry-cometd and HttpSession is that the >> > session >> > > > > cannot be created by the async action. I'm guessing that the push >> > > action >> > > > > requires the session, but it doesn't exist yet. >> > > > > >> > > > >> > > > The session should already exist by this point given that it didn't >> > > trigger >> > > > this exception for the first half a dozen of runs, so only after >> couple >> > > of >> > > > button clicks that send the push notification we run into this. >> > > > Any idea how could the session be closed by this time? >> > > > >> > > > Does it matter if the push broadcasting happens in one component and >> > > event >> > > > handle in another? I assume not and also like I said it worked for >> the >> > > > first few clicks. >> > > > >> > > > Any ideas? >> > > > >> > > > Thanks >> > > > >> > > > >> > > > >> > > > > >> > > > > Admittedly the error message could be nicer than "!session" >> > > > > On 13 Jun 2014 15:36, "Boris Horvat" <horvat.z.bo...@gmail.com> >> > wrote: >> > > > > >> > > > > > Hi everyone, I have implemented a tapestry-cometd integration >> > > > > > >> > > > > > <dependency> >> > > > > > <groupId>org.lazan</groupId> >> > > > > > <artifactId>tapestry-cometd</artifactId> >> > > > > > <version>0.9.17</version> >> > > > > > </dependency> >> > > > > > >> > > > > > Our usage of the component is >> > > > > > >> > > > > > <t:cometd.PushTarget topic="prop:channelMenuItems" >> > > > > > event="updateMenuItems" update="replace" session="true"/> >> > > > > > >> > > > > > and in UAT environment that runs under Tomcat I got the >> following >> > > > > > exception. >> > > > > > >> > > > > > java.lang.IllegalStateException >> > > > > > !session >> > > > > > Filter stack framesStack trace >> > > > > > >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> org.cometd.server.transport.HttpTransport$HttpContext.setHttpSessionAttribute(HttpTransport.java:177) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> org.lazan.t5.cometd.services.internal.BayeuxContextHttpSession.setAttribute(BayeuxContextHttpSession.java:31) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> org.apache.tapestry5.internal.services.SessionImpl.setAttribute(SessionImpl.java:57) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> org.apache.tapestry5.internal.services.SessionApplicationStatePersistenceStrategy.set(SessionApplicationStatePersistenceStrategy.java:73) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> org.apache.tapestry5.internal.services.SessionApplicationStatePersistenceStrategy.getOrCreate(SessionApplicationStatePersistenceStrategy.java:58) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> org.apache.tapestry5.internal.services.SessionApplicationStatePersistenceStrategy.get(SessionApplicationStatePersistenceStrategy.java:44) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> org.apache.tapestry5.internal.services.ApplicationStateManagerImpl$ApplicationStateAdapter.getOrCreate(ApplicationStateManagerImpl.java:50) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> org.apache.tapestry5.internal.services.ApplicationStateManagerImpl.get(ApplicationStateManagerImpl.java:133) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> org.apache.tapestry5.internal.transform.ApplicationStateWorker$1.get(ApplicationStateWorker.java:75) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> com.bomahabo.flow.tapestry.components.layout.MenuProfile.conduit_get_user(MenuProfile.java) >> > > > > > - >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >> com.bomahabo.flow.tapestry.components.layout.MenuProfile.getPageNotificationNumber(MenuProfile.java:135) >> > > > > > >> > > > > > >> > > > > > It is probably worth nothing that this doesn't happen on the >> first >> > > few >> > > > > > triggers of the push event but at some point in the near future. >> > > > > > >> > > > > > Has anyone seen something similar before? >> > > > > > >> > > > > > -- >> > > > > > Sincerely >> > > > > > *Boris Horvat* >> > > > > > >> > > > > >> > > > >> > > > >> > > > >> > > > -- >> > > > Sincerely >> > > > *Boris Horvat* >> > > > >> > > >> > >> > >> > >> > -- >> > Sincerely >> > *Boris Horvat* >> > >> > > > > -- > Sincerely > *Boris Horvat* >