Push causing repetitive failure and effective lockout.

I’m having some issues with the UI.push method causing a repetitive failure that effectively locks a user out of the UI.

Essentially I’m using a table bound to a jpacontainer.
If there is a bug in my code (such as in a table filter) the UI.push method keeps trying to make the same call over and over even if I change the URL to a different fragment or remove the fragment all together.
The result is that one error on a website will effectively lock a user out of the website until their session times out.

Whilst ideally my web site will never generate any errors this is not going to be a reality. The issues then is that a small error which really doesn’t impact the overall usablitiy of a site has the ability to lock the user completely out.

Is there any way that I can reset/flush the push mechanism so that when these sorts of issues occur I can avoid the user being locked out of the site?
P.S. we are building a website that user access to is critical e.g. no site access then they are unable to work AT ALL.

The stack trace is:

Note; the issue here isn’t this specific error as I know how to fix the filter problem.



javax.persistence.PersistenceException: Exception [EclipseLink-4002]
 (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Incorrect parameter count in the call to native function 'UPPER'
Error Code: 1582
Call: SELECT COUNT(t0.ID) FROM User t3, Contact t2, ActivityType t1, Activity t0 WHERE (((((UPPER(t0.ACTIVITYDATE) LIKE UPPER(?) OR UPPER() LIKE UPPER(?)) OR UPPER() LIKE UPPER(?)) OR UPPER() LIKE UPPER(?)) OR UPPER(t0.SUBJECT) LIKE UPPER(?)) AND (((t1.ID = t0.TYPE_ID) AND (t2.ID = t0.WITHCONTACT_ID)) AND (t3.ID = t0.ADDEDBY_ID)))
	bind => [%email%, %email%, %email%, %email%, %email%]

Query: ReportQuery(referenceClass=Activity sql="SELECT COUNT(t0.ID) FROM User t3, Contact t2, ActivityType t1, Activity t0 WHERE (((((UPPER(t0.ACTIVITYDATE) LIKE UPPER(?) OR UPPER() LIKE UPPER(?)) OR UPPER() LIKE UPPER(?)) OR UPPER() LIKE UPPER(?)) OR UPPER(t0.SUBJECT) LIKE UPPER(?)) AND (((t1.ID = t0.TYPE_ID) AND (t2.ID = t0.WITHCONTACT_ID)) AND (t3.ID = t0.ADDEDBY_ID)))")
	org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:377)
	org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:260)
	org.eclipse.persistence.internal.jpa.QueryImpl.getSingleResult(QueryImpl.java:516)
	org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:400)
	com.vaadin.addon.jpacontainer.provider.LocalEntityProvider.doGetEntityCount(LocalEntityProvider.java:541)
	com.vaadin.addon.jpacontainer.provider.CachingSupport$FilterCacheEntry.getEntityCount(CachingSupport.java:157)
	com.vaadin.addon.jpacontainer.provider.CachingSupport.getEntityCount(CachingSupport.java:826)
	com.vaadin.addon.jpacontainer.provider.CachingMutableLocalEntityProvider.getEntityCount(CachingMutableLocalEntityProvider.java:130)
	com.vaadin.addon.jpacontainer.JPAContainer.size(JPAContainer.java:912)
	com.vaadin.ui.AbstractSelect.size(AbstractSelect.java:762)
	com.vaadin.ui.Table.doPaintContent(Table.java:3189)
	com.vaadin.ui.Table.paintContent(Table.java:3173)
	com.vaadin.server.LegacyPaint.paint(LegacyPaint.java:65)
	com.vaadin.server.communication.LegacyUidlWriter.write(LegacyUidlWriter.java:81)
	com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:106)
	com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:127)
	com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:109)
	com.vaadin.ui.UI.push(UI.java:1356)
	com.vaadin.server.VaadinSession.unlock(VaadinSession.java:921)
	com.vaadin.server.VaadinSession.accessSynchronously(VaadinSession.java:1218)
	com.vaadin.server.VaadinService.requestEnd(VaadinService.java:1305)
	com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1385)
	com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	au.org.scoutmaster.filter.EntityManagerInjectorFilter.doFilter(EntityManagerInjectorFilter.java:43)

root cause 

Hi,

I’d say the issue you’re having is most likely
this one
. It seems to already be in the bugfix priority queue, so I’d expect a fix quite soon, possibly already to the next maintenance release.

yes it now seems to have been fixed.

Ta.