[weld-dev] Propagation of org.jboss.weld.context.ConversationContext.conversations through session failover

Benjamin Confino BENJAMIC at uk.ibm.com
Tue Apr 28 08:31:44 EDT 2020


Hello weld

I had a customer report that they were getting conversation not found 
exceptions when restarting their server and visiting a url with a ?cid=1 
suffix. 

After investigation I believe the issue is that weld was acquiring it's 
ConversationContext.conversations from the session database via 
com.ibm.ws.session.store.db.DatabaseSession.getMultiRowAppData(). Once 
weld had retrieved the conversations map it would then decide that since 
the map was already in the session attributes there was no need to put it 
back into the attributes. 

This means that Liberty did not realise the conversations map had been 
updated, and did not store it's updated state into the database when the 
server shut down again. 

I have submitted a pair of pull requests that asks weld to mark the 
conversation map as dirty upon access - this behaviour is gated behind 
ConfigurationKey.RESET_HTTP_SESSION_ATTR_ON_BEAN_ACCESS  - I have tested 
it locally and it works. The next step is to prepare a test fix for the 
customer to verify. However I wanted to send you this quick note to keep 
you in the loop. 

Regards
Benjamin
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/weld-dev/attachments/20200428/6995190b/attachment.html 


More information about the weld-dev mailing list