HUNG threads on WAS 8.5 with two same portlets on Vaadin 7.7.8 and Liferay

Hello Vaadin team,

We are using Websphere Application Server 8.5 with Liferay 6.2 and Vaadin 7.7.8 portlets.
Currently, we are facing the problem with HUNG threads in the production.
We decided to enable asserts for com.vaadin.server and its subpackages and we got the error java.lang.AssertionError: “Cannot change the lock from one instance to another”.

javax.portlet.PortletException: com.vaadin.server.ServiceException: java.lang.AssertionError: Cannot change the lock from one instance to another
      at com.vaadin.server.VaadinPortlet.handleRequest(VaadinPortlet.java:551)
      at com.vaadin.server.VaadinPortlet.doDispatch(VaadinPortlet.java:619)
      at javax.portlet.GenericPortlet.render(GenericPortlet.java:262)
      at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103)
      at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:55)
      at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
      at <removed>.vaadin7.framework.springframework.portlet.filter.support.DefaultFilterChainDispatcher.dispatch(DefaultFilterChainDispatcher.java:27)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:288)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:274)
      at <removed>.vaadin7.framework.springframework.portlet.filter.support.DefaultFilterChainDispatcher.dispatch(DefaultFilterChainDispatcher.java:27)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.AnonymousAuthenticationPortletFilter$1.doFilter(AnonymousAuthenticationPortletFilter.java:110)
      at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.AnonymousAuthenticationPortletFilter.doFilter(AnonymousAuthenticationPortletFilter.java:105)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.AnonymousAuthenticationPortletFilter.doFilter(AnonymousAuthenticationPortletFilter.java:90)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:310)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:274)
      at <removed>.vaadin7.framework.springframework.portlet.filter.support.DefaultFilterChainDispatcher.dispatch(DefaultFilterChainDispatcher.java:27)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.SessionDataPreAuthenticatedProcessingPortletFilter$1.doFilter(SessionDataPreAuthenticatedProcessingPortletFilter.java:152)
      at org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter.doFilter(AbstractPreAuthenticatedProcessingFilter.java:121)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.SessionDataPreAuthenticatedProcessingPortletFilter.doFilter(SessionDataPreAuthenticatedProcessingPortletFilter.java:147)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.SessionDataPreAuthenticatedProcessingPortletFilter.doFilter(SessionDataPreAuthenticatedProcessingPortletFilter.java:129)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:310)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:274)
      at <removed>.vaadin7.framework.springframework.portlet.filter.support.DefaultFilterChainDispatcher.dispatch(DefaultFilterChainDispatcher.java:27)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.SspPreAuthenticatedProcessingPortletFilter$1.doFilter(SspPreAuthenticatedProcessingPortletFilter.java:164)
      at org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter.doFilter(AbstractPreAuthenticatedProcessingFilter.java:121)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.SspPreAuthenticatedProcessingPortletFilter.doFilter(SspPreAuthenticatedProcessingPortletFilter.java:159)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.SspPreAuthenticatedProcessingPortletFilter.doFilter(SspPreAuthenticatedProcessingPortletFilter.java:126)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:310)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:274)
      at <removed>.vaadin7.framework.springframework.portlet.filter.support.DefaultFilterChainDispatcher.dispatch(DefaultFilterChainDispatcher.java:27)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.PortletSecurityContextPersistenceFilter$1.doFilter(PortletSecurityContextPersistenceFilter.java:119)
      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.PortletSecurityContextPersistenceFilter.doFilter(PortletSecurityContextPersistenceFilter.java:114)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.PortletSecurityContextPersistenceFilter.doFilter(PortletSecurityContextPersistenceFilter.java:97)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:310)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:274)
      at <removed>.vaadin7.framework.springframework.portlet.filter.support.DefaultFilterChainDispatcher.dispatch(DefaultFilterChainDispatcher.java:27)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.RequestProtocolValidationPortletFilter.doFilterInternal(RequestProtocolValidationPortletFilter.java:39)
      at <removed>.vaadin7.framework.springframework.portlet.filter.OncePerRequestPortletFilter.doFilter(OncePerRequestPortletFilter.java:84)
      at <removed>.vaadin7.framework.springframework.portlet.filter.OncePerRequestPortletFilter.doFilter(OncePerRequestPortletFilter.java:63)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:310)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:274)
      at <removed>.vaadin7.framework.springframework.portlet.filter.support.DefaultFilterChainDispatcher.dispatch(DefaultFilterChainDispatcher.java:27)
      at <removed>.vaadin7.framework.springframework.portlet.filter.servlet.ExtractServletRequestResponsePortletFilter.doFilterInternal(ExtractServletRequestResponsePortletFilter.java:63)
      at <removed>.vaadin7.framework.springframework.portlet.filter.OncePerRequestPortletFilter.doFilter(OncePerRequestPortletFilter.java:84)
      at <removed>.vaadin7.framework.springframework.portlet.filter.OncePerRequestPortletFilter.doFilter(OncePerRequestPortletFilter.java:63)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.doFilter(PortletFilterChainProxy.java:310)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy$VirtualPortletFilterChain.access$000(PortletFilterChainProxy.java:243)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy.dispatchFilter(PortletFilterChainProxy.java:208)
      at <removed>.vaadin7.framework.springframework.portlet.filter.PortletFilterChainProxy.doFilter(PortletFilterChainProxy.java:180)
      at <removed>.vaadin7.framework.springframework.portlet.filter.DelegatingPortletFilterProxy.invokeDelegate(DelegatingPortletFilterProxy.java:274)
      at <removed>.vaadin7.framework.springframework.portlet.filter.DelegatingPortletFilterProxy.doFilter(DelegatingPortletFilterProxy.java:180)
      at <removed>.vaadin7.framework.springframework.portlet.filter.DelegatingPortletFilterProxy.doFilter(DelegatingPortletFilterProxy.java:308)
      at sun.reflect.GeneratedMethodAccessor1098.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
      at java.lang.reflect.Method.invoke(Method.java:620)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
      at com.sun.proxy.$Proxy785.doFilter(Unknown Source)
      at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
      at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
      at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:112)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
      at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:117)
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1389)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:550)
      at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:583)
      at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:656)
      at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:362)
      at com.ibm._jsp._render_5F_portlet._jspService(_render_5F_portlet.java:1256)
      at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
      at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
      at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122)
      at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:220)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:117)
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1389)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:550)
      at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78)
      at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
      at com.liferay.portlet.PortletContainerImpl._doRender(PortletContainerImpl.java:638)
      at com.liferay.portlet.PortletContainerImpl.render(PortletContainerImpl.java:135)
      at com.liferay.portlet.SecurityPortletContainerWrapper.render(SecurityPortletContainerWrapper.java:141)
      at com.liferay.portlet.RestrictPortletContainerWrapper.render(RestrictPortletContainerWrapper.java:126)
      at com.liferay.portal.kernel.portlet.PortletContainerUtil.render(PortletContainerUtil.java:156)
      at com.liferay.portal.layoutconfiguration.util.PortletRenderer._render(PortletRenderer.java:125)
      at com.liferay.portal.layoutconfiguration.util.PortletRenderer.render(PortletRenderer.java:72)
      at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.doProcessTemplate(RuntimePageImpl.java:452)
      at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.doDispatch(RuntimePageImpl.java:284)
      at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.processTemplate(RuntimePageImpl.java:113)
      at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.processTemplate(RuntimePageImpl.java:124)
      at com.liferay.portal.layoutconfiguration.util.RuntimePageUtil.processTemplate(RuntimePageUtil.java:69)
      at com.ibm._jsp._portlet._jspService(_portlet.java:563)
      at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
      at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
      at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122)
      at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:220)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:117)
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1389)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:550)
      at com.liferay.portal.action.LayoutAction.includeLayoutContent(LayoutAction.java:302)
      at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:413)
      at com.liferay.portal.action.LayoutAction.doExecute(LayoutAction.java:200)
      at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:95)
      at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
      at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:169)
      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
      at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:575)
      at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:590)
      at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:567)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
      at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:308)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:46)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at <removed>.pdp.request.context.util.filter.ThreadLocalFilter.doFilter(ThreadLocalFilter.java:38)
      at sun.reflect.GeneratedMethodAccessor519.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
      at java.lang.reflect.Method.invoke(Method.java:620)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
      at com.sun.proxy.$Proxy728.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:117)
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1389)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:195)
      at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:169)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
      at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:308)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:346)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:413)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:86)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:46)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169)
      at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:270)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at <removed>.pdp.sso.filters.AutoLoginLogoutFilter.doFilter(AutoLoginLogoutFilter.java:96)
      at sun.reflect.GeneratedMethodAccessor519.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
      at java.lang.reflect.Method.invoke(Method.java:620)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
      at com.sun.proxy.$Proxy689.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at <removed>.pdp.request.context.util.filter.ThreadLocalFilter.doFilter(ThreadLocalFilter.java:38)
      at sun.reflect.GeneratedMethodAccessor519.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
      at java.lang.reflect.Method.invoke(Method.java:620)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
      at com.sun.proxy.$Proxy728.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:117)
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1389)
      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:195)
      at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:351)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
      at com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:57)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      at <removed>.pdp.logging.hook.LoggingFilter.doFilter(LoggingFilter.java:34)
      at sun.reflect.GeneratedMethodAccessor519.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
      at java.lang.reflect.Method.invoke(Method.java:620)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
      at com.sun.proxy.$Proxy584.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at <removed>.pdp.request.context.util.filter.ThreadLocalFilter.doFilter(ThreadLocalFilter.java:38)
      at sun.reflect.GeneratedMethodAccessor519.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
      at java.lang.reflect.Method.invoke(Method.java:620)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
      at com.sun.proxy.$Proxy728.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at <removed>.et.ssp.common.hook.logging.SspLoggingFilter.doFilter(SspLoggingFilter.java:42)
      at sun.reflect.GeneratedMethodAccessor519.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
      at java.lang.reflect.Method.invoke(Method.java:620)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
      at com.sun.proxy.$Proxy796.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:117)
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
      at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3980)
      at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
      at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1016)
      at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
      at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
      at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1820)
      at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
      at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
      at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
      at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
      at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
      at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
      at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)
Caused by: com.vaadin.server.ServiceException: java.lang.AssertionError: Cannot change the lock from one instance to another
      at com.vaadin.server.VaadinService.handleExceptionDuringRequest(VaadinService.java:1474)
      at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1434)
      at com.vaadin.server.VaadinPortlet.handleRequest(VaadinPortlet.java:548) ... 314 more
Caused by: java.lang.AssertionError: Cannot change the lock from one instance to another
      at com.vaadin.server.VaadinSession.refreshLock(VaadinSession.java:509)
      at com.vaadin.server.VaadinSession.refreshTransients(VaadinSession.java:1483)
      at com.vaadin.server.VaadinService.loadSession(VaadinService.java:1980)
      at com.vaadin.server.VaadinService.getExistingSession(VaadinService.java:846)
      at com.vaadin.server.VaadinService.doFindOrCreateVaadinSession(VaadinService.java:698)
      at com.vaadin.server.VaadinService.findOrCreateVaadinSession(VaadinService.java:672)
      at com.vaadin.server.VaadinService.findVaadinSession(VaadinService.java:530)
      at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1416) ... 315 more

Websphere Application Server
Integrated Solutions Console, 8.5.5.12
Build Number: cf121726.02
Build Date: 6/27/17


How to replicate the problem

  1. enable asserts for com.vaadin.server and its subpackages
  2. add the same vaadin portlet 2x to the same Liferay page
  3. try to load the Liferay page. You should get java.lang.AssertionError.

This can be replicated on Tomcat as well.
With disabled asserts we got HUNG threads on Websphere.


Cause

Locking mechanism relies on unique portlet name which is used in a key in a map.
This is not true in case of two instances of the same portlet.


Solution

Our Solution was to use PortletSession.PORTLET_SCOPE for VaadinSession.
We had to use customized VaadinPortletService.
With this solution we do not face any HUNG threads anymore.

Is this a bug introduced in #7184 Vaadin 7.6.0?
According to the Vaadin release-notes 7.6.0 there was a change #7184 - Store VaadinSession as APPLICATION_SCOPE in portals -
https://github.com/vaadin/framework/issues/7184


Our Fix

public class CustomVaadinPortletService extends VaadinPortletService {
    ...

    @Override
    protected void writeToHttpSession(WrappedSession wrappedSession,
                                      VaadinSession session) {
        getWrappedPortletSession(wrappedSession).setAttribute(
                getSessionAttributeName(), session,
                PortletSession.PORTLET_SCOPE);
    }

    @Override
    protected VaadinSession readFromHttpSession(WrappedSession wrappedSession) {
        return (VaadinSession) getWrappedPortletSession(wrappedSession)
                .getAttribute(getSessionAttributeName(),
                        PortletSession.PORTLET_SCOPE);
    }

    @Override
    protected void removeFromHttpSession(WrappedSession wrappedSession) {
        getWrappedPortletSession(wrappedSession).removeAttribute(
                getSessionAttributeName(), PortletSession.PORTLET_SCOPE);
    }

    private WrappedPortletSession getWrappedPortletSession(WrappedSession wrappedSession) {
        return (WrappedPortletSession) wrappedSession;
    }
}
// Customize VaadinPortlet(override createPortletService method) to use CustomVaadinPortletService
// Use customized VaadinPortlet for portlet-class in portlet.xml

This is good piece of info. Thanks for bringing this into our and our communitys attention.