[
https://issues.apache.org/jira/browse/DELTASPIKE-830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14627937#comment-14627937
]
Nuno G. de M commented on DELTASPIKE-830:
-----------------------------------------
Hi,
I have the impression the issue still exists.
at least with the sample application i provided a google drive link to when i
navigate from index.xhtml to TAB A, no issue.
>From TAB A to TAB B.
Select tab changedA
<Jul 15, 2015 1:52:03 PM CEST> <Warning>
<javax.enterprise.resource.webcontainer.jsf.lifecycle> <BEA-000000>
<//home/nunogdem/branches_samples/delta-spike-view-accessed-scope/target/jsf-viewaccessscoped/index.xhtml
@33,57 value="#{cr100.selectedTab}":
org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active
contexts for scope type org.apache.deltaspike.core.api.scope.ViewAccessScoped
javax.el.ELException:
//home/nunogdem/branches_samples/delta-spike-view-accessed-scope/target/jsf-viewaccessscoped/index.xhtml
@33,57 value="#{cr100.selectedTab}":
org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active
contexts for scope type org.apache.deltaspike.core.api.scope.ViewAccessScoped
at
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
at
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:170)
at javax.faces.component.UIInput.validate(UIInput.java:972)
Truncated. see log file for complete stacktrace
Caused By: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No
active contexts for scope type
org.apache.deltaspike.core.api.scope.ViewAccessScoped
at
org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:590)
at
org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71)
at
org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
at
org.jboss.weld.proxies.ViewAccessedBean$Proxy$_$$_WeldClientProxy.getSelectedTab(ViewAccessedBean$Proxy$_$$_WeldClientProxy.java)
at sun.reflect.GeneratedMethodAccessor143.invoke(Unknown Source)
Truncated. see log file for complete stacktrace
>
What Is fixed, is the BeanManager access SEVERE messages that weblogic would
produce saying bean manager has been acceessed before container intialized.
Thanks,
Nuno.
> Now active ViewAccessScoped context during restore view phase
> -------------------------------------------------------------
>
> Key: DELTASPIKE-830
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-830
> Project: DeltaSpike
> Issue Type: Bug
> Components: JSF-Module
> Affects Versions: 1.2.1
> Environment: Glassfish 3.1.2.2 and Weblogic 12.1.2.2
> Reporter: Nuno G. de M
> Assignee: Thomas Andraschko
> Fix For: 1.4.2
>
>
> While testing delta-spike in clientview mode, coming from CODI, we have one
> view that is giving problems trying to access ViewAccessScoped beans during
> the restored view phase.
> Caused by: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No
> active contexts for scope type
> org.apache.deltaspike.core.api.scope.ViewAccessScoped
> Namely the exception we get in our page is the following:
> Caused By: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No
> active contexts for scope type
> org.apache.deltaspike.core.api.scope.ViewAccessScoped
> at
> org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:590)
> at
> org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71)
> at
> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
> at
> com.corp.whatever.component.ui.web.CR100Bean$Proxy$_$$_WeldClientProxy.getPageIds(CR100Bean$Proxy$_$$_WeldClientProxy.java)
> at sun.reflect.GeneratedMethodAccessor1663.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:305)
> at
> com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
> at
> com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:183)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
> at
> org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
> at
> org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
> at
> com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
> at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:99)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
> at
> org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
> at
> org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
> at
> com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
> at
> com.sun.faces.facelets.tag.jstl.core.SetHandler.apply(SetHandler.java:163)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
> at
> com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:187)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
> at
> com.sun.faces.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:188)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
> at
> com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
> at
> com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
> at
> com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:320)
> at
> com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:379)
> at
> com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:358)
> at
> com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)
> at
> com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:155)
> at
> com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
> at
> com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
> at
> com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:320)
> at
> com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:379)
> at
> com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:358)
> at
> com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)
> at
> com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:155)
> at
> com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
> at
> com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
> at
> com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:164)
> at
> com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:914)
> at
> com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:571)
> at
> com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:142)
> at
> javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:301)
> at
> javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:301)
> at
> com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:192)
> ------------------
> -- In glassfish 3.1.2
> -------------
> we can see that exception takes place here:
> /**
> * Gets an active context of the given scope. Throws an exception if there
> * are no active contexts found or if there are too many matches
> *
> * @param scopeType The scope to match
> * @return A single active context of the given scope
> * @see
> javax.enterprise.inject.spi.BeanManager#getContext(java.lang.Class)
> */
> public Context getContext(Class<? extends Annotation> scopeType) {
> Context activeContext = null;
> final List<Context> ctx = contexts.get(scopeType);
> if (ctx == null) {
> //this happens if no context is registered
> throw new ContextNotActiveException(CONTEXT_NOT_ACTIVE,
> scopeType.getName());
> }
> for (Context context : ctx) {
> if (context.isActive()) {
> if (activeContext == null) {
> activeContext = context;
> } else {
> throw new
> IllegalStateException(DUPLICATE_ACTIVE_CONTEXTS, scopeType.getName());
> }
> }
> }
> if (activeContext == null) {
> throw new ContextNotActiveException(CONTEXT_NOT_ACTIVE,
> scopeType.getName());
> }
> return activeContext;
> }
> Where the Context Appears to exist but no be active.
> Also the bean that is reported as not being active, when we navigate out of
> hte view, we can see it being destoryed in a @preDestroy call.
> I have created a sample application that tries as best as possible to
> reproduce the sitatution we experience.
> Is there a way by which I could upload a small maven project for this?
> I am adding it to my google drive for the moment.
> https://drive.google.com/file/d/0B_dEiNBGUsxqQWRzVVRJT0RlU0E/view?usp=sharing
> In th sample project a tiny index.xhtml exists. Access it for example under:
> http://schb7mw7321:8080/jsf-viewaccessscoped/index.xhtml?dsrid=933&dswid=ViewerWindow
> If your port is configured to be 8080 (glassfish defaults or 7001 in
> weblogic).
> The page will then display several tabs using a prime faces ui component.
> The first time a TAB is clicked, the UI processes the action without problems.
> The second time a tab is clicked JSF complains that it cannot access the bean
> because its context is not active.
> The sample project is an imperfect reproduction of our real case scenario,
> since in this case the exception is taking place during the apply request
> values phase as opposed to on the restore view phase:
> Here is an example of stack trace from this sample app.
> 2015-02-04 22:41:11.460 WARNING 55 /index.xhtml @45,83
> rendered="#{cr100.selectedTab eq 'default'}":
> org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active
> contexts for scope type org.apache.deltaspike.core.api.scope.ViewAccessScoped
> (javax.enterprise.resource.webcontainer.jsf.lifecycle)
> javax.el.ELException: /index.xhtml @45,83 rendered="#{cr100.selectedTab eq
> 'default'}": org.jboss.weld.context.ContextNotActiveException: WELD-001303 No
> active contexts for scope type
> org.apache.deltaspike.core.api.scope.ViewAccessScoped
> at
> com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
> at
> javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
> at
> javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:415)
> at
> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1168)
> at org.primefaces.component.panel.Panel.processDecodes(Panel.java:290)
> at javax.faces.component.UIForm.processDecodes(UIForm.java:225)
> at
> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1178)
> at
> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1178)
> at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:925)
> at
> com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
> at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> at
> org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeLifecycleWrapper.execute(DeltaSpikeLifecycleWrapper.java:89)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
> at
> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
> at
> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
> at
> com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
> at
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
> at
> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
> at
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
> at
> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
> at
> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
> at
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
> at
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
> at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
> at
> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
> at
> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No
> active contexts for scope type
> org.apache.deltaspike.core.api.scope.ViewAccessScoped
> at
> org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:619)
> at
> org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71)
> at
> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
> at
> org.jboss.weld.proxies.ViewAccessedBean$Proxy$_$$_WeldClientProxy.getSelectedTab(ViewAccessedBean$Proxy$_$$_WeldClientProxy.java)
> at sun.reflect.GeneratedMethodAccessor876.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:363)
> at
> com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
> at
> com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:183)
> at com.sun.el.parser.AstEqual.getValue(AstEqual.java:58)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
> at
> org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
> at
> com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
> Many thanks for the help.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)