Exception with c:forEach after upgrading from 2.1 to 2.2

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Exception with c:forEach after upgrading from 2.1 to 2.2

Felipe Jaekel
Hi,

I have this implementation (JSTL 1.2, PrimeFaces 5.1.20):

<c:forEach
items="#{avaliacaoController.prova.perguntas}"
var="perguntaProva"
varStatus="status"
>
<pm:page id="pergunta#{status.index}">
<h:form id="perguntaForm#{status.index}">

<pm:content>

<pm:field>
<h:outputText value="#{perguntaProva.numero + 1})
#{perguntaProva.pergunta.texto}" />
<p:selectOneRadio
layout="pageDirection"
converter="entityConverter"
value="#{perguntaProva.pergunta.respostaFechada.resposta}"
>
<f:selectItems
value="#{perguntaProva.pergunta.respostaList}"
var="resposta"
itemLabel="#{resposta.texto}"
/>
<p:ajax
listener="#{avaliacaoController.responder(perguntaProva)}"
process="@this"
/>
</p:selectOneRadio>



After upgrading from MyFaces 2.1.17 to 2.2.8, when I click on the radio
button I get the exception below, so I'd like to know if I need additional
configuration or if is it a bug.

Thanks


GRAVE: javax.el.PropertyNotFoundException: Property 'pergunta' not found on
type org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
org.apache.myfaces.view.facelets.el.ContextAwarePropertyNotFoundException:
javax.el.PropertyNotFoundException: Property 'pergunta' not found on type
org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
at
org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpressionUEL.getValueReference(ContextAwareTagValueExpressionUEL.java:56)
at
javax.faces.validator._BeanValidatorUELUtils.getUELValueReferenceWrapper(_BeanValidatorUELUtils.java:46)
at
javax.faces.validator.BeanValidator.getValueReference(BeanValidator.java:245)
at javax.faces.validator.BeanValidator.validate(BeanValidator.java:153)
at
javax.faces.component._ComponentUtils.callValidators(_ComponentUtils.java:276)
at javax.faces.component.UIInput.validateValue(UIInput.java:470)
at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:71)
at javax.faces.component.UIInput.validate(UIInput.java:625)
at javax.faces.component.UIInput.processValidators(UIInput.java:274)
at
org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:779)
at
org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:213)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1016)
at
javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
at
javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
at
javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
at javax.faces.component.UIForm.visitTree(UIForm.java:345)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
at
javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
at
javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
at
javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
at
org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:430)
at
org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:411)
at
org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
at
javax.faces.component.UIViewRoot$ProcessValidatorPhaseProcessor.process(UIViewRoot.java:1797)
at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1655)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:909)
at
org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:38)
at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:105)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1706)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.el.PropertyNotFoundException: Property 'pergunta' not
found on type org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:290)
at
javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:243)
at javax.el.BeanELResolver.property(BeanELResolver.java:377)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at org.apache.el.parser.AstValue.getTarget(AstValue.java:132)
at org.apache.el.parser.AstValue.getValueReference(AstValue.java:381)
at
org.apache.el.ValueExpressionImpl.getValueReference(ValueExpressionImpl.java:276)
at
org.apache.webbeans.el22.WrappedValueExpression.getValueReference(WrappedValueExpression.java:49)
at
org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpressionUEL.getValueReference(ContextAwareTagValueExpressionUEL.java:52)
... 67 more
Reply | Threaded
Open this post in threaded view
|

Re: Exception with c:forEach after upgrading from 2.1 to 2.2

Alexey Shakov
Hi,

take a look at this issue
https://issues.apache.org/jira/browse/MYFACES-3980, it is probably the
reason for your problem.

The workaround is to add

<context-param>
<param-name>org.apache.myfaces.STRICT_JSF_2_FACELETS_COMPATIBILITY</param-name>
     <param-value>true</param-value>
   </context-param>

to web.xml

Greetings,

Alexey

Am 30.07.2015 um 21:48 schrieb Felipe Jaekel:

> Hi,
>
> I have this implementation (JSTL 1.2, PrimeFaces 5.1.20):
>
> <c:forEach
> items="#{avaliacaoController.prova.perguntas}"
> var="perguntaProva"
> varStatus="status"
> <pm:page id="pergunta#{status.index}">
> <h:form id="perguntaForm#{status.index}">
>
> <pm:content>
>
> <pm:field>
> <h:outputText value="#{perguntaProva.numero + 1})
> #{perguntaProva.pergunta.texto}" />
> <p:selectOneRadio
> layout="pageDirection"
> converter="entityConverter"
> value="#{perguntaProva.pergunta.respostaFechada.resposta}"
> <f:selectItems
> value="#{perguntaProva.pergunta.respostaList}"
> var="resposta"
> itemLabel="#{resposta.texto}"
> />
> <p:ajax
> listener="#{avaliacaoController.responder(perguntaProva)}"
> process="@this"
> />
> </p:selectOneRadio>
>
>
>
> After upgrading from MyFaces 2.1.17 to 2.2.8, when I click on the radio
> button I get the exception below, so I'd like to know if I need additional
> configuration or if is it a bug.
>
> Thanks
>
>
> GRAVE: javax.el.PropertyNotFoundException: Property 'pergunta' not found on
> type org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
> org.apache.myfaces.view.facelets.el.ContextAwarePropertyNotFoundException:
> javax.el.PropertyNotFoundException: Property 'pergunta' not found on type
> org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
> at
> org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpressionUEL.getValueReference(ContextAwareTagValueExpressionUEL.java:56)
> at
> javax.faces.validator._BeanValidatorUELUtils.getUELValueReferenceWrapper(_BeanValidatorUELUtils.java:46)
> at
> javax.faces.validator.BeanValidator.getValueReference(BeanValidator.java:245)
> at javax.faces.validator.BeanValidator.validate(BeanValidator.java:153)
> at
> javax.faces.component._ComponentUtils.callValidators(_ComponentUtils.java:276)
> at javax.faces.component.UIInput.validateValue(UIInput.java:470)
> at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:71)
> at javax.faces.component.UIInput.validate(UIInput.java:625)
> at javax.faces.component.UIInput.processValidators(UIInput.java:274)
> at
> org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:779)
> at
> org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:213)
> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1016)
> at
> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
> at
> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
> at
> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
> at javax.faces.component.UIForm.visitTree(UIForm.java:345)
> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
> at
> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
> at
> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
> at
> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
> at
> org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:430)
> at
> org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:411)
> at
> org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
> at
> javax.faces.component.UIViewRoot$ProcessValidatorPhaseProcessor.process(UIViewRoot.java:1797)
> at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1655)
> at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:909)
> at
> org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:38)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:105)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
> at
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
> at
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
> at
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
> at
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
> at
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
> at
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
> at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1706)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: javax.el.PropertyNotFoundException: Property 'pergunta' not
> found on type org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
> at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:290)
> at
> javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:243)
> at javax.el.BeanELResolver.property(BeanELResolver.java:377)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
> at org.apache.el.parser.AstValue.getTarget(AstValue.java:132)
> at org.apache.el.parser.AstValue.getValueReference(AstValue.java:381)
> at
> org.apache.el.ValueExpressionImpl.getValueReference(ValueExpressionImpl.java:276)
> at
> org.apache.webbeans.el22.WrappedValueExpression.getValueReference(WrappedValueExpression.java:49)
> at
> org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpressionUEL.getValueReference(ContextAwareTagValueExpressionUEL.java:52)
> ... 67 more
>

Reply | Threaded
Open this post in threaded view
|

Re: Exception with c:forEach after upgrading from 2.1 to 2.2

Felipe Jaekel
Hi,

Thanks for the feedback.

In this upgrade process from 2.1 to 2.2, I'm actually moving the code of a
small webapp that runs 2.1 to a large webapp that already uses 2.2 in
production.

I won't be able to test everything, so may I experience side effects by
enabling STRICT_JSF_2_FACELETS_COMPATIBILITY? In that case, is there a
prevision for 2.2.9 release?

Thanks

2015-07-31 3:55 GMT-03:00 Alexey Shakov <[hidden email]>:

> Hi,
>
> take a look at this issue
> https://issues.apache.org/jira/browse/MYFACES-3980, it is probably the
> reason for your problem.
>
> The workaround is to add
>
> <context-param>
>
> <param-name>org.apache.myfaces.STRICT_JSF_2_FACELETS_COMPATIBILITY</param-name>
>     <param-value>true</param-value>
>   </context-param>
>
> to web.xml
>
> Greetings,
>
> Alexey
>
>
> Am 30.07.2015 um 21:48 schrieb Felipe Jaekel:
>
>> Hi,
>>
>> I have this implementation (JSTL 1.2, PrimeFaces 5.1.20):
>>
>> <c:forEach
>> items="#{avaliacaoController.prova.perguntas}"
>> var="perguntaProva"
>> varStatus="status"
>> <pm:page id="pergunta#{status.index}">
>> <h:form id="perguntaForm#{status.index}">
>>
>> <pm:content>
>>
>> <pm:field>
>> <h:outputText value="#{perguntaProva.numero + 1})
>> #{perguntaProva.pergunta.texto}" />
>> <p:selectOneRadio
>> layout="pageDirection"
>> converter="entityConverter"
>> value="#{perguntaProva.pergunta.respostaFechada.resposta}"
>> <f:selectItems
>> value="#{perguntaProva.pergunta.respostaList}"
>> var="resposta"
>> itemLabel="#{resposta.texto}"
>> />
>> <p:ajax
>> listener="#{avaliacaoController.responder(perguntaProva)}"
>> process="@this"
>> />
>> </p:selectOneRadio>
>>
>>
>>
>> After upgrading from MyFaces 2.1.17 to 2.2.8, when I click on the radio
>> button I get the exception below, so I'd like to know if I need additional
>> configuration or if is it a bug.
>>
>> Thanks
>>
>>
>> GRAVE: javax.el.PropertyNotFoundException: Property 'pergunta' not found
>> on
>> type org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
>> org.apache.myfaces.view.facelets.el.ContextAwarePropertyNotFoundException:
>> javax.el.PropertyNotFoundException: Property 'pergunta' not found on type
>> org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
>> at
>>
>> org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpressionUEL.getValueReference(ContextAwareTagValueExpressionUEL.java:56)
>> at
>>
>> javax.faces.validator._BeanValidatorUELUtils.getUELValueReferenceWrapper(_BeanValidatorUELUtils.java:46)
>> at
>>
>> javax.faces.validator.BeanValidator.getValueReference(BeanValidator.java:245)
>> at javax.faces.validator.BeanValidator.validate(BeanValidator.java:153)
>> at
>>
>> javax.faces.component._ComponentUtils.callValidators(_ComponentUtils.java:276)
>> at javax.faces.component.UIInput.validateValue(UIInput.java:470)
>> at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:71)
>> at javax.faces.component.UIInput.validate(UIInput.java:625)
>> at javax.faces.component.UIInput.processValidators(UIInput.java:274)
>> at
>>
>> org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:779)
>> at
>>
>> org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:213)
>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1016)
>> at
>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>> at
>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>> at
>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>> at javax.faces.component.UIForm.visitTree(UIForm.java:345)
>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>> at
>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>> at
>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>> at
>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>> at
>>
>> org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:430)
>> at
>>
>> org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:411)
>> at
>>
>> org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
>> at
>>
>> javax.faces.component.UIViewRoot$ProcessValidatorPhaseProcessor.process(UIViewRoot.java:1797)
>> at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1655)
>> at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:909)
>> at
>>
>> org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:38)
>> at
>>
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
>> at
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
>> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> at
>>
>> org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:105)
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> at
>>
>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>> at
>>
>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>> at
>>
>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>> at
>>
>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>> at
>>
>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>> at
>>
>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>> at
>>
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> at
>>
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>> at
>>
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>> at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
>> at
>>
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
>> at
>>
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>> at
>>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>> at
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
>> at
>>
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>> at
>>
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
>> at
>>
>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
>> at
>>
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
>> at
>> org.apache.tomcat.util.net
>> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
>> at
>> org.apache.tomcat.util.net
>> .NioEndpoint$SocketProcessor.run(NioEndpoint.java:1706)
>> at
>>
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>> at
>>
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>> at
>>
>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>> at java.lang.Thread.run(Thread.java:745)
>> Caused by: javax.el.PropertyNotFoundException: Property 'pergunta' not
>> found on type
>> org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
>> at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:290)
>> at
>> javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:243)
>> at javax.el.BeanELResolver.property(BeanELResolver.java:377)
>> at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
>> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
>> at org.apache.el.parser.AstValue.getTarget(AstValue.java:132)
>> at org.apache.el.parser.AstValue.getValueReference(AstValue.java:381)
>> at
>>
>> org.apache.el.ValueExpressionImpl.getValueReference(ValueExpressionImpl.java:276)
>> at
>>
>> org.apache.webbeans.el22.WrappedValueExpression.getValueReference(WrappedValueExpression.java:49)
>> at
>>
>> org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpressionUEL.getValueReference(ContextAwareTagValueExpressionUEL.java:52)
>> ... 67 more
>>
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Exception with c:forEach after upgrading from 2.1 to 2.2

Alexey Shakov

Am 31.07.2015 um 14:06 schrieb Felipe Jaekel:

> Hi,
>
> Thanks for the feedback.
>
> In this upgrade process from 2.1 to 2.2, I'm actually moving the code of a
> small webapp that runs 2.1 to a large webapp that already uses 2.2 in
> production.
>
> I won't be able to test everything, so may I experience side effects by
> enabling STRICT_JSF_2_FACELETS_COMPATIBILITY?
In my project i had no problems switching to
STRICT_JSF_2_FACELETS_COMPATIBILITY=true, but it all depends. Read the
MyFaces documentation for possible side effects.

> In that case, is there a
> prevision for 2.2.9 release?

You can build 2.2.9-SNAPSHOT from sources or try it with 2.2.7

>
> Thanks
>
> 2015-07-31 3:55 GMT-03:00 Alexey Shakov <[hidden email]>:
>
>> Hi,
>>
>> take a look at this issue
>> https://issues.apache.org/jira/browse/MYFACES-3980, it is probably the
>> reason for your problem.
>>
>> The workaround is to add
>>
>> <context-param>
>>
>> <param-name>org.apache.myfaces.STRICT_JSF_2_FACELETS_COMPATIBILITY</param-name>
>>      <param-value>true</param-value>
>>    </context-param>
>>
>> to web.xml
>>
>> Greetings,
>>
>> Alexey
>>
>>
>> Am 30.07.2015 um 21:48 schrieb Felipe Jaekel:
>>
>>> Hi,
>>>
>>> I have this implementation (JSTL 1.2, PrimeFaces 5.1.20):
>>>
>>> <c:forEach
>>> items="#{avaliacaoController.prova.perguntas}"
>>> var="perguntaProva"
>>> varStatus="status"
>>> <pm:page id="pergunta#{status.index}">
>>> <h:form id="perguntaForm#{status.index}">
>>>
>>> <pm:content>
>>>
>>> <pm:field>
>>> <h:outputText value="#{perguntaProva.numero + 1})
>>> #{perguntaProva.pergunta.texto}" />
>>> <p:selectOneRadio
>>> layout="pageDirection"
>>> converter="entityConverter"
>>> value="#{perguntaProva.pergunta.respostaFechada.resposta}"
>>> <f:selectItems
>>> value="#{perguntaProva.pergunta.respostaList}"
>>> var="resposta"
>>> itemLabel="#{resposta.texto}"
>>> />
>>> <p:ajax
>>> listener="#{avaliacaoController.responder(perguntaProva)}"
>>> process="@this"
>>> />
>>> </p:selectOneRadio>
>>>
>>>
>>>
>>> After upgrading from MyFaces 2.1.17 to 2.2.8, when I click on the radio
>>> button I get the exception below, so I'd like to know if I need additional
>>> configuration or if is it a bug.
>>>
>>> Thanks
>>>
>>>
>>> GRAVE: javax.el.PropertyNotFoundException: Property 'pergunta' not found
>>> on
>>> type org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
>>> org.apache.myfaces.view.facelets.el.ContextAwarePropertyNotFoundException:
>>> javax.el.PropertyNotFoundException: Property 'pergunta' not found on type
>>> org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
>>> at
>>>
>>> org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpressionUEL.getValueReference(ContextAwareTagValueExpressionUEL.java:56)
>>> at
>>>
>>> javax.faces.validator._BeanValidatorUELUtils.getUELValueReferenceWrapper(_BeanValidatorUELUtils.java:46)
>>> at
>>>
>>> javax.faces.validator.BeanValidator.getValueReference(BeanValidator.java:245)
>>> at javax.faces.validator.BeanValidator.validate(BeanValidator.java:153)
>>> at
>>>
>>> javax.faces.component._ComponentUtils.callValidators(_ComponentUtils.java:276)
>>> at javax.faces.component.UIInput.validateValue(UIInput.java:470)
>>> at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:71)
>>> at javax.faces.component.UIInput.validate(UIInput.java:625)
>>> at javax.faces.component.UIInput.processValidators(UIInput.java:274)
>>> at
>>>
>>> org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:779)
>>> at
>>>
>>> org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:213)
>>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1016)
>>> at
>>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>>> at
>>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>>> at
>>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>>> at javax.faces.component.UIForm.visitTree(UIForm.java:345)
>>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>>> at
>>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>>> at
>>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>>> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1044)
>>> at
>>> javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1191)
>>> at
>>>
>>> org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:430)
>>> at
>>>
>>> org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:411)
>>> at
>>>
>>> org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
>>> at
>>>
>>> javax.faces.component.UIViewRoot$ProcessValidatorPhaseProcessor.process(UIViewRoot.java:1797)
>>> at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1655)
>>> at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:909)
>>> at
>>>
>>> org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:38)
>>> at
>>>
>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
>>> at
>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
>>> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
>>> at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>>> at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at
>>>
>>> org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:105)
>>> at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>> at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>> at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>> at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at
>>>
>>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>>> at
>>>
>>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>>> at
>>>
>>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>>> at
>>>
>>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>>> at
>>>
>>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>>> at
>>>
>>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>>> at
>>>
>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>> at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>> at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at
>>>
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>>> at
>>>
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>>> at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
>>> at
>>>
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
>>> at
>>>
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>>> at
>>>
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>> at
>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
>>> at
>>>
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>>> at
>>>
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
>>> at
>>>
>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
>>> at
>>>
>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
>>> at
>>> org.apache.tomcat.util.net
>>> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
>>> at
>>> org.apache.tomcat.util.net
>>> .NioEndpoint$SocketProcessor.run(NioEndpoint.java:1706)
>>> at
>>>
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>> at
>>>
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>> at
>>>
>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>> at java.lang.Thread.run(Thread.java:745)
>>> Caused by: javax.el.PropertyNotFoundException: Property 'pergunta' not
>>> found on type
>>> org.apache.myfaces.view.facelets.tag.jstl.core.IterationStatus
>>> at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:290)
>>> at
>>> javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:243)
>>> at javax.el.BeanELResolver.property(BeanELResolver.java:377)
>>> at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
>>> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
>>> at org.apache.el.parser.AstValue.getTarget(AstValue.java:132)
>>> at org.apache.el.parser.AstValue.getValueReference(AstValue.java:381)
>>> at
>>>
>>> org.apache.el.ValueExpressionImpl.getValueReference(ValueExpressionImpl.java:276)
>>> at
>>>
>>> org.apache.webbeans.el22.WrappedValueExpression.getValueReference(WrappedValueExpression.java:49)
>>> at
>>>
>>> org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpressionUEL.getValueReference(ContextAwareTagValueExpressionUEL.java:52)
>>> ... 67 more
>>>
>>>