Here is the url - http://postimg.org/image/b74chvzr7/

I will try to monitor the network traffic, but does you theory explains why
refreshing the page doesn't fix the issue? Could it be that the session is
lost forever?
If I am able to confirm this scenario, what would be the fix? Would it work
if we broadcast with some delay?



On Sat, Jun 14, 2014 at 7:41 PM, Lance Java <lance.j...@googlemail.com>
wrote:

> > (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*
> >
>



-- 
Sincerely
*Boris Horvat*

Reply via email to