留言板

LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

thumbnail
Michael Scholz,修改在9 年前。

LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hello together,

we try to get Liferay 6.1.3 with Liferay Faces and CDI Portlet Bridge running within JBoss EAP 6.3.1.

Everything worked fine with EAP 6.1.1, but after the upgrade, we face the following Exception when rendering JSF Portlets:

12:05:09,645 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/PlatformArchitectureReferenceProcess]] (http-/0.0.0.0:8180-4) JBWEB000238: Exception sending request destroyed lifecycle event to listener instance of class org.jboss.weld.servlet.WeldListener: java.lang.NullPointerException
        at org.jboss.weld.context.AbstractBoundContext.deactivate(AbstractBoundContext.java:71) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
        at org.jboss.weld.context.http.HttpRequestContextImpl.deactivate(HttpRequestContextImpl.java:68) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
        at org.jboss.weld.servlet.WeldListener.requestDestroyed(WeldListener.java:147) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:892) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:620) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:553) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:482) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:599)
        at com.liferay.portlet.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:694)
        at com.liferay.portlet.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:460)
        at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:1080)
        at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:735)
        at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:266)
        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:182)
        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:734) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
        at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:559)
        at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:536)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:73) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:314)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:46)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:85) [portal-service.jar:]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:832) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:620) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:553) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:482) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:137)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:73) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:123)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:314)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:259)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:84)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:46)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:250)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:83)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) [portal-service.jar:]
        at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:191)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:117) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96) [portal-service.jar:]
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:85) [portal-service.jar:]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:420) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.4.1.Final-redhat-3.jar:7.4.1.Final-redhat-3]
        at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.4.1.Final-redhat-3.jar:7.4.1.Final-redhat-3]
        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.4.1.Final-redhat-3.jar:7.4.1.Final-redhat-3]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
        at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]


A little debugging showed, that the WeldListener maintains a "BeanStore" within a ThreadLocal which seems to be null-ed (or never initialized) before the shown call.

We found the some work was done in Weld about cross-context handling between JBoss EAP 6.1.1 and 6.3.1 and think that this might be an issue.

Does anybody know something about this problem or does anybody have an idea for a workaround? Is there may some SNAPSHOT version of Liferay Faces or CDI portlet bridge that already deals with the problem?

Kind regards,

Michael
thumbnail
Neil Griffin,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Hi Michael,

What is the version of Weld that comes bundled with EAP 6.3.1? As a workaround, you might want to try downgrading to the version that comes bundled with EAP 6.1.1.

Kind Regards,

Neil
thumbnail
Michael Scholz,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hi Neil,

the Weld Version is 1.1.23.

We'll also give the downgrade a try but would prefer (due to Support issues) to have the official Version running some day ;)

Best regards,

Michael
thumbnail
Michael Scholz,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hi again,

the downgrade did the Job.

Nevertheless - we would prefer of course "enhanced compatibilty" of Liferay Faces in future Version.

Are there any plans for this already?

Regards,

Michael
thumbnail
Neil Griffin,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Hi Michael,

Thanks for letting us know that the downgrade worked. I don't see any references to "com.liferay.faces" or "com.liferay.cdi" in the stacktrace. Do you think that this could be a regression bug in Weld?

Kind Regards,

Neil
thumbnail
Michael Scholz,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hi Neil,

you are right - there is nothing to see in the original stacktrace.

I forgot to mention, that the show exception is a "follow-up effect" caused by an earlier call to WeldListener.requestDestroyed() (see below)

Here, the CDICrossContextFilter is at least involved. And it seems that the second call to WeldListener.requestDestroyed() runs into the NullPointerException, because there is nothing more to destroy.

I'm really not an expert regarding internals of JSF, Weld and Porlet stuff, so I can't really estimate where the problem is originally caused.

Is it a Weld bug? If yes, why doesn't it seem to affect other users? Does this only occur in Portlet environments? How to report a bug to Weld guys then?

These are all questions I cannot answer. I also created this issue at Liferay Faces forum because I know that you are the experts ;-) and might know already about this problem or estimate where to approach the problem.

Where would you suggest to continue? Maybe I can also do some more research if I know where I have to look.

Best regards,

Michael


Daemon Thread [http-/0.0.0.0:8180-1] (Suspended (breakpoint at line 71 in org.jboss.weld.context.AbstractBoundContext))	
	org.jboss.weld.context.http.HttpRequestContextImpl(org.jboss.weld.context.AbstractBoundContext<s>).deactivate() line: 71	
	org.jboss.weld.context.http.HttpRequestContextImpl.deactivate() line: 68	
	org.jboss.weld.servlet.WeldListener.requestDestroyed(javax.servlet.ServletRequestEvent) line: 147	
	org.jboss.weld.servlet.WeldCrossContextFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 66	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.cdi.portlet.bridge.CDICrossContextFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 49	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 85	
	org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 246	
	org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 214	
	org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher$State) line: 832	
	org.apache.catalina.core.ApplicationDispatcher.doInclude(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 718	
	org.apache.catalina.core.ApplicationDispatcher.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 655	
	com.liferay.portlet.InvokerPortletImpl.invoke(com.liferay.portal.kernel.portlet.LiferayPortletRequest, com.liferay.portal.kernel.portlet.LiferayPortletResponse, java.lang.String, java.util.List<!--? extends javax.portlet.filter.PortletFilter-->) line: 602	
	com.liferay.portlet.InvokerPortletImpl.invokeRender(javax.portlet.RenderRequest, javax.portlet.RenderResponse) line: 675	
	com.liferay.portlet.InvokerPortletImpl.render(javax.portlet.RenderRequest, javax.portlet.RenderResponse) line: 382	
	html/portal/render_portlet.jsp line: 789	
	org.apache.jsp.html.portal.render_005fportlet_jsp(org.apache.jasper.runtime.HttpJspBase).service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 69	
	org.apache.jsp.html.portal.render_005fportlet_jsp(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 847	
	org.apache.jasper.servlet.JspServletWrapper.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean) line: 365	
	org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, boolean) line: 309	
	org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 242	
	org.apache.jasper.servlet.JspServlet(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 847	
	org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 295	
	org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 214	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 73	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 85	
	org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 246	
	org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 214	
	org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher$State) line: 832	
	org.apache.catalina.core.ApplicationDispatcher.doInclude(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 718	
	org.apache.catalina.core.ApplicationDispatcher.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 655	
	com.liferay.portal.servlet.DirectServletPathRegisterDispatcher.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 55	
	com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(javax.servlet.ServletRequest, javax.servlet.ServletResponse, boolean) line: 78	
	com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 53	
	com.liferay.portal.util.PortalImpl.renderPortlet(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, com.liferay.portal.model.Portlet, java.lang.String, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.String, boolean) line: 5788	
	sun.reflect.GeneratedMethodAccessor600.invoke(java.lang.Object, java.lang.Object[]) line: not available	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 606	
	com.liferay.portal.security.lang.DoPrivilegedHandler.doInvoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 88	
	com.liferay.portal.security.lang.DoPrivilegedHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 56	
	com.sun.proxy.$Proxy633.renderPortlet(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, com.liferay.portal.model.Portlet, java.lang.String, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.String, boolean) line: not available	
	com.liferay.portal.util.PortalUtil.renderPortlet(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, com.liferay.portal.model.Portlet, java.lang.String, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.String, boolean) line: 1640	
	com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.processPortlet(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.portlet.RenderRequest, javax.portlet.RenderResponse, com.liferay.portal.model.Portlet, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.String, boolean) line: 181	
	com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.processPortlet(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, com.liferay.portal.model.Portlet, java.lang.String, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.String, boolean) line: 112	
	com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.doProcessTemplate(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.jsp.PageContext, javax.servlet.jsp.JspWriter, java.lang.String, java.lang.String, java.lang.String) line: 536	
	com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.doDispatch(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.jsp.PageContext, javax.servlet.jsp.JspWriter, java.lang.String, java.lang.String, java.lang.String, boolean) line: 401	
	com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.processTemplate(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.jsp.PageContext, javax.servlet.jsp.JspWriter, java.lang.String, java.lang.String, java.lang.String) line: 248	
	com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.processTemplate(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.jsp.PageContext, javax.servlet.jsp.JspWriter, java.lang.String, java.lang.String) line: 235	
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]	
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 57	
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43	
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 606	
	com.liferay.portal.security.lang.DoPrivilegedHandler.doInvoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 88	
	com.liferay.portal.security.lang.DoPrivilegedHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 56	
	com.sun.proxy.$Proxy641.processTemplate(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.jsp.PageContext, javax.servlet.jsp.JspWriter, java.lang.String, java.lang.String) line: not available	
	com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(javax.servlet.ServletContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.jsp.PageContext, javax.servlet.jsp.JspWriter, java.lang.String, java.lang.String) line: 126	
	html/portal/layout/view/portlet.jsp line: 67	
	org.apache.jsp.html.portal.layout.view.portlet_jsp(org.apache.jasper.runtime.HttpJspBase).service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 69	
	org.apache.jsp.html.portal.layout.view.portlet_jsp(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 847	
	org.apache.jasper.servlet.JspServletWrapper.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean) line: 365	
	org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, boolean) line: 309	
	org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 242	
	org.apache.jasper.servlet.JspServlet(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 847	
	org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 295	
	org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 214	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 73	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 85	
	org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 246	
	org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 214	
	org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher$State) line: 832	
	org.apache.catalina.core.ApplicationDispatcher.doInclude(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 718	
	org.apache.catalina.core.ApplicationDispatcher.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 655	
	com.liferay.portal.action.LayoutAction.includeLayoutContent(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, com.liferay.portal.theme.ThemeDisplay, com.liferay.portal.model.Layout) line: 494	
	com.liferay.portal.action.LayoutAction.processLayout(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, long) line: 751	
	com.liferay.portal.action.LayoutAction.execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 266	
	com.liferay.portal.struts.PortalRequestProcessor(org.apache.struts.action.RequestProcessor).processActionPerform(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.struts.action.Action, org.apache.struts.action.ActionForm, org.apache.struts.action.ActionMapping) line: 431	
	com.liferay.portal.struts.PortalRequestProcessor(org.apache.struts.action.RequestProcessor).process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 236	
	com.liferay.portal.struts.PortalRequestProcessor.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 182	
	com.liferay.portal.servlet.MainServlet(org.apache.struts.action.ActionServlet).process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 1196	
	com.liferay.portal.servlet.MainServlet(org.apache.struts.action.ActionServlet).doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 414	
	com.liferay.portal.servlet.MainServlet(javax.servlet.http.HttpServlet).service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 734	
	com.liferay.portal.servlet.MainServlet.callParentService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 559	
	com.liferay.portal.servlet.MainServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 536	
	com.liferay.portal.servlet.MainServlet(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 847	
	org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 295	
	org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 214	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 73	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.servlet.filters.secure.SecureFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 314	
	com.liferay.portal.servlet.filters.secure.SecureFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 46	
	com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 85	
	org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 246	
	org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 214	
	org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher$State) line: 832	
	org.apache.catalina.core.ApplicationDispatcher.processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher$State) line: 620	
	org.apache.catalina.core.ApplicationDispatcher.doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 553	
	org.apache.catalina.core.ApplicationDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 482	
	com.liferay.portal.servlet.FriendlyURLServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 137	
	com.liferay.portal.servlet.FriendlyURLServlet(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 847	
	org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 295	
	org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 214	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 73	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.servlet.filters.strip.StripFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 355	
	com.liferay.portal.servlet.filters.strip.StripFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.servlet.filters.gzip.GZipFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 123	
	com.liferay.portal.servlet.filters.gzip.GZipFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.servlet.filters.secure.SecureFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 314	
	com.liferay.portal.servlet.filters.secure.SecureFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.servlet.filters.i18n.I18nFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 259	
	com.liferay.portal.servlet.filters.i18n.I18nFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.servlet.filters.etag.ETagFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 84	
	com.liferay.portal.servlet.filters.etag.ETagFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 46	
	com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.servlet.filters.autologin.AutoLoginFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 250	
	com.liferay.portal.servlet.filters.autologin.AutoLoginFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 83	
	com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.sharepoint.SharepointFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.sharepoint.SharepointFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 88	
	com.liferay.portal.sharepoint.SharepointFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter(com.liferay.portal.kernel.servlet.BaseFilter).processFilter(java.lang.Class<!--?-->, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 169	
	com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) line: 191	
	com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter(com.liferay.portal.kernel.servlet.BaseFilter).doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 59	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 188	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 96	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 738	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(javax.servlet.Filter, javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 207	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 109	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 168	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 96	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 168	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 96	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 117	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(javax.servlet.Filter, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) line: 188	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 96	
	com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) line: 85	
	org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 246	
	org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) line: 214	
	org.apache.catalina.core.StandardWrapperValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 231	
	org.apache.catalina.core.StandardContextValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 149	
	org.apache.catalina.authenticator.FormAuthenticator(org.apache.catalina.authenticator.AuthenticatorBase).invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 420	
	org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 50	
	org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 50	
	org.jboss.as.web.security.SecurityContextAssociationValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 169	
	org.apache.catalina.core.StandardHostValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 145	
	org.apache.catalina.valves.ErrorReportValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 97	
	org.apache.catalina.core.StandardEngineValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) line: 102	
	org.apache.catalina.connector.CoyoteAdapter.service(org.apache.coyote.Request, org.apache.coyote.Response) line: 344	
	org.apache.coyote.http11.Http11Processor.process(java.net.Socket) line: 856	
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(java.net.Socket) line: 653	
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run() line: 926	
	java.lang.Thread.run() line: 744	
</s>
thumbnail
Juan Gonzalez,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 3089 加入日期: 08-10-28 最近的帖子
Hi Michael,

I guess this is related to: https://www.liferay.com/community/forums/-/message_boards/view_message/31102970

For that, we made some investigations using latest Weld version at that moment (1.1.16).

These were my findings at that moment:


The JSF portlet doesn't render properly:

javax.portlet.faces.BridgeException: java.lang.IllegalStateException: Must call associate() before calling activate()
at com.liferay.faces.bridge.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:193)
at com.liferay.faces.bridge.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:85)
at com.liferay.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:112)

Seems the issue is caused by the inclusion of code from these two tasks :

https://issues.jboss.org/browse/WELD-1415

commit: https://github.com/weld/core/commit/a7582f78503ee563535d21d1d07a1e77e3834f71

and

https://issues.jboss.org/browse/WELD-1511

commit: https://github.com/weld/core/commit/3b7e1498fe2b0d4e876f3f1d31486dbc2a66bed7

Both conditions (isIncludeRequest and isForwardRequest) returns true.


Can you try compiling Weld using this branch (Weld 1.1.16) I made some months ago and check if it fixes the Liferay+latest WELD versions?

https://github.com/juangon/core/commits/WELD_Liferay

Thanks.
thumbnail
Michael Scholz,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hi Juan,

it took some time, but finally we could test what asked for with the patched Weld 1.1.16.

It can tell, that it does not change anything - we face the same behavior and exception as with Weld 1.1.23 from EAP 6.3.1

Best regards,

Michael
thumbnail
Neil Griffin,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Hi Michael,

Will JBoss EAP 6.3.0 be sufficient for our testing? That's the newest version available from the JBoss EAP - Downloads page (at the time of this writing).

Kind Regards,

Neil
thumbnail
Michael Scholz,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hi Neil,

EAP 6.3.1 is in fact the EAP 6.3.0 available on the donwload page with "Patch 1" applied.

It should be available on the page within a separate tab.

This is at least what we did.

Kind regards,

Michael
thumbnail
Michael Scholz,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hey guys,

just wanted to ask if you have any news from here?

Could you reproduce the problem?

Any ideas what we could currently do?

Best regards,

Michael
thumbnail
Neil Griffin,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Hi Michael,

Michael Scholz:
we try to get Liferay 6.1.3 with Liferay Faces and CDI Portlet Bridge running within JBoss EAP 6.3.1.


Did you mean Liferay 6.1.2? That is the newest CE version available at Maven Central.

Otherwise, are you a Liferay EE customer? If yes, perhaps you meant Liferay 6.1.30?

In any case, I just checked our support matrix and Liferay 6.1 EE is only certified for use on JBoss EAP 5.1. There is a degree of support for JBoss EAP 6.0, but not in domain mode.

Liferay 6.2 EE is supported on EAP 6.0 and EAP 6.1 but not EAP 6.3.

Given these support constraints, the best we were able to do was to upgrade the Liferay 6.1 + JBoss AS 7.1.1 bundle. When we tried the jsf2-cdi-portlet with Weld 1.1.23, we were able to reproduce the NullPointerException during WeldListener.requestDestroyed() that you reported at the beginning of this thread.

I'll report back after we have more information.


Best Regards,

Neil
thumbnail
Michael Scholz,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hi Neil,

sorry about the confusion with the versions.

In fact we are currently using Liferay 6.1.30.

We are currently doing evaluations for a possible version upgrade of Liferay and JBoss and one of our scenarios was testing EAP 6.3.1 with Liferay 6.1.30.

I must admit that we forgot to check the compatibility matrix when making our tests, so I'm sad to hear that our desired scenario is not supported.

I hoped that at least Liferay 6.2 will provide support for EAP 6.3.

From this point of view, this issue is somehow obsolete - sorry about that.

Do you have any idea, in which Liferay version there might be support for EAP 6.3? We are using EAP 6.3 also in other in-house implementations and would like to consolidate all implementations (including the Liferay stack) to run on the same version.

Best regards,

Michael
thumbnail
Neil Griffin,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Michael Scholz:

From this point of view, this issue is somehow obsolete - sorry about that.


No problem at all -- I think at this point we will keep our internal CDI 1.0 testing of Liferay Faces at Weld 1.1.10.

Michael Scholz:

Do you have any idea, in which Liferay version there might be support for EAP 6.3? We are using EAP 6.3 also in other in-house implementations and would like to consolidate all implementations (including the Liferay stack) to run on the same version.


I don't know the answer, but if you open a ticket in LESA then the Liferay EE support engineers might be able to provide you with more information about whether or not the support matrix will be expanded to cover EAP 6.3.

Best Regards,

Neil
thumbnail
Neil Griffin,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Hi Michael,

FWIW, I wanted to mention that we spent a little bit more time on the stacktrace you reported:

12:05:09,645 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/PlatformArchitectureReferenceProcess]] (http-/0.0.0.0:8180-4) JBWEB000238: Exception sending request destroyed lifecycle event to listener instance of class org.jboss.weld.servlet.WeldListener: java.lang.NullPointerException
        at org.jboss.weld.context.AbstractBoundContext.deactivate(AbstractBoundContext.java:71) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]


And determined that if the following is removed from WEB-INF/web.xml:

<filter>
	<filter-name>WeldCrossContextFilter</filter-name>
	<filter-class>org.jboss.weld.servlet.WeldCrossContextFilter</filter-class>
</filter>


Then the stacktrace disappeared. The problem was that the Weld HttpRequestContextImpl.deactivate() method was being called twice. The first call was caused by the WeldCrossContextFilter.doFilter() (which simulates a request destroyed ServletContextEvent) to WeldListener.requestDestroyed() :

HttpRequestContextImpl(AbstractBoundContext<s>).deactivate() line: 71	
HttpRequestContextImpl.deactivate() line: 77	
WeldListener.requestDestroyed(ServletRequestEvent) line: 147	
WeldCrossContextFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 66	
InvokerFilterChain.processDoFilter(Filter, ServletRequest, ServletResponse) line: 207	
InvokerFilterChain.doFilter(ServletRequest, ServletResponse) line: 109	
CDICrossContextFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 49	
InvokerFilterChain.processDoFilter(Filter, ServletRequest, ServletResponse) line: 207	
InvokerFilterChain.doFilter(ServletRequest, ServletResponse) line: 109	
InvokerFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 79	
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 280	</s>


And the second time was caused by the normal (non-cross-context) call to WeldListener.requestDestroyed():

HttpRequestContextImpl(AbstractBoundContext<s>).deactivate() line: 71	
HttpRequestContextImpl.deactivate() line: 77	
WeldListener.requestDestroyed(ServletRequestEvent) line: 147	
ApplicationDispatcher.invoke(ServletRequest, ServletResponse, ApplicationDispatcher$State) line: 907	
ApplicationDispatcher.doInclude(ServletRequest, ServletResponse) line: 720	
ApplicationDispatcher.include(ServletRequest, ServletResponse) line: 657	
InvokerPortletImpl.invoke(LiferayPortletRequest, LiferayPortletResponse, String, List<portletfilter>) line: 602	
InvokerPortletImpl.invokeRender(RenderRequest, RenderResponse) line: 675	
InvokerPortletImpl.render(RenderRequest, RenderResponse) line: 382	
render_005fportlet_jsp._jspService(HttpServletRequest, HttpServletResponse) line: 1194	
render_005fportlet_jsp(HttpJspBase).service(HttpServletRequest, HttpServletResponse) line: 70	
render_005fportlet_jsp(HttpServlet).service(ServletRequest, ServletResponse) line: 847	
JspServletWrapper.service(HttpServletRequest, HttpServletResponse, boolean) line: 369	
JspServlet.serviceJspFile(HttpServletRequest, HttpServletResponse, String, Throwable, boolean) line: 326	
JspServlet.service(HttpServletRequest, HttpServletResponse) line: 253	
JspServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 847	
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 329</portletfilter></s>


Just a guess, but it might be that some changes were made to the internal design of Weld 1.x such that the WeldCrossContextFilter is not necessary for Liferay Portlets + Weld 1.1.23 (and newer, at least up to 1.1.26).

Best Regards,

Neil
thumbnail
Michael Scholz,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hi Neil,

thank you very much for the further feedback and investigations :-D

I also saw that the requestDestroyed() is called twice (see my postings above) but I did not understand why.

As one of the participants was the CDICrossContextFilter, I thought that the problem might be somewhere within the portlet bridge.

You did now mention the WeldCrossContextFilter could be the reason.

Just for my technical understanding - what is the exact task of this class? It is still there within newer Weld versions, so it seems to have it's reason of existence.

Kind regards,

Michael
thumbnail
Neil Griffin,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Hi Michael,

Michael Scholz:
I also saw that the requestDestroyed() is called twice (see my postings above) but I did not understand why.

As one of the participants was the CDICrossContextFilter, I thought that the problem might be somewhere within the portlet bridge.

You did now mention the WeldCrossContextFilter could be the reason.

Just for my technical understanding - what is the exact task of this class? It is still there within newer Weld versions, so it seems to have it's reason of existence.


I did not investigate why the WeldCrossContextFilter was no longer necessary in these newer versions of Weld. In reality the WeldCrossContextFilter should still be necessary. For an explanation as to why, I recommend that you read the description (and all of the comments) on FACES-146.

Newer versions of Weld must be invoking WeldListener.requestDestroyed(ServletRequestEvent) in a different manner (that does not require a synthetic/simulated invocation via the WeldCrossContextFilter) when the request is complete.

Kind Regards,

Neil
thumbnail
Neil Griffin,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Hi Michael,

I just deployed the jsf2-cdi-portlet.war demo on JBoss AS without the cdi-portlet-bridge-shared.jar dependency, and without the extra stuff added to WEB-INF/web.xml and WEB-INF/portlet.xml as specified in the Developing JSF Portlets with CDI wiki article.

The good news is that the portlet worked OK. So when you get a chance, I would be interested to know -- if you were to do the same in one of the portlets in your environment, does it work OK without cdi-portlet-bridge-shared.jar?

Thank you,

Neil
thumbnail
Michael Scholz,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Junior Member 帖子: 47 加入日期: 13-9-3 最近的帖子
Hi Neil,

I made some tests with our application and can report that everything seems to work fine also here.

Nevertheless there is one major drawback:

You might remember LPS-48810 where I have added a contribution to provide a @PortletSessionScoped CDI context.
This implementation is built on top of the CDI-Shared-Bridge.

As we needed this feature rather soon, we have internally built an addon to the offical CDI-Shared-Bridge 6.2.0.2 which also provides such a scope.

As a result, I was of course no longer able to use this scope in our current portlets. Unfortunately this would cause some major drawbacks in our application.

One possible solution would be to evaluate, if there is a way to implement @PortletSessionScoped in a standalone way without a dependency to the CDI-Shared-Bridge, but to figure this out I would have to dive more deeply into the code (which is currently not possible due to lack of time).


BTW - to give you the whole picture: Before having @PortletSessionScoped, we tried to use the CDI @ConversationScoped annotation together with the CDI-Shared-Bridge, but this did not really work for our scenario - see this other thread


Kind regards,

Michael
thumbnail
Neil Griffin,修改在9 年前。

RE: LiferayFaces within JBoss EAP 6.3.1: NPE when rendering portlets

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
Hi Michael,

Thanks so much for letting us know that things work well in your environment without the cdi-portlet-bridge-shared.jar dependency. emoticon

Regarding @PortletSessionScoped, I would like to say again that it is a very valuable contribution. But due to our current release cycle, we probably won't be able to merge your contribution in LPS-48810 in a timely manner. Because of this, I recommend that you try to implement the idea that you mentioned here:

Michael Scholz:
One possible solution would be to evaluate, if there is a way to implement @PortletSessionScoped in a standalone way without a dependency to the CDI-Shared-Bridge.


Kind Regards,

Neil