-
1. Re: WARNING: FacesMessage(s) have been enqueued
waq Feb 19, 2009 7:53 AM (in response to waq)can someone help me out...???
-
2. Re: WARNING: FacesMessage(s) have been enqueued
nbelaevski Feb 19, 2009 9:03 AM (in response to waq) -
3. Re: WARNING: FacesMessage(s) have been enqueued
waq Feb 19, 2009 10:08 AM (in response to waq)Sorry i didn't get it exactly. Can you explain a bit. It will be very kind if you give a small example
-
4. Re: WARNING: FacesMessage(s) have been enqueued
nbelaevski Feb 19, 2009 12:02 PM (in response to waq)That means that you have broken component and model synchronization.
Select items set should be the same when component is rendered and when its submission is processed on subsequent request (sort of security protection). Most probably, your code doesn't behave well in this point. -
5. Re: WARNING: FacesMessage(s) have been enqueued
waq Feb 19, 2009 1:00 PM (in response to waq)e.g if at the time of page load the list is populated as:
eq_code_list = new ArrayList<SelectItem>(); eq_code_list.add(new SelectItem(""));
and when an ajax call is made it is updated as:eq_code_list.add(new SelectItem("MY NEW DATA 2"));
Is it the problem???
THanks -
6. Re: WARNING: FacesMessage(s) have been enqueued
nbelaevski Feb 19, 2009 1:48 PM (in response to waq)yes.
-
7. Re: WARNING: FacesMessage(s) have been enqueued
waq Feb 20, 2009 4:32 AM (in response to waq)okay, so do i need to create a fresh object
eq_code_list = new ArrayList()when ajax call is made? Sorry for asking such a weird questions, as i m new to this.
-
8. Re: WARNING: FacesMessage(s) have been enqueued
waq Feb 20, 2009 10:59 AM (in response to waq).....???
-
9. Re: WARNING: FacesMessage(s) have been enqueued
nbelaevski Feb 20, 2009 11:11 AM (in response to waq)You should support such list state so that it has exactly the same items when it's rendered and when component is submitted back to server.
-
10. Re: WARNING: FacesMessage(s) have been enqueued
waq Feb 20, 2009 11:43 AM (in response to waq)Thanks for the reply.
Still got little bit confusion. By state you mean that it should have the same items during render and submit?
e.g if at the time of page loadeq_code_list = new ArrayList<SelectItem>(); eq_code_list.add(new SelectItem("ABC")); eq_code_list.add(new SelectItem("XYZ"));
then at the time of submit, it should have the same.eq_code_list = new ArrayList<SelectItem>(); eq_code_list.add(new SelectItem("ABC")); eq_code_list.add(new SelectItem("XYZ"));
if so, then how can we implement ajax as it changes the items on certain event. -
11. Re: WARNING: FacesMessage(s) have been enqueued
nbelaevski Feb 20, 2009 1:00 PM (in response to waq)<h:form> <rich:messages /> <h:selectManyCheckbox value="#{forum5Bean.valueOptions}"> <f:selectItems value="#{forum5Bean.initialOptions}"/> <a4j:support event="onclick" reRender="day" action="#{forum5Bean.apply}"/> </h:selectManyCheckbox> <h:selectOneMenu id="day"> <f:selectItems value="#{forum5Bean.options}"/> </h:selectOneMenu> <h:commandButton value="Button" /> </h:form>
private List<SelectItem> options = new ArrayList<SelectItem>(); private List<SelectItem> initialOptions = new ArrayList<SelectItem>(Arrays.asList(new SelectItem("Monday"), new SelectItem("Tuesday"), new SelectItem("Wednesday"))); private List<Object> valueOptions = new ArrayList<Object>(); public List<SelectItem> getOptions() { return options; } public void setOptions(List<SelectItem> options) { this.options = options; } public List<SelectItem> getInitialOptions() { return initialOptions; } public List<Object> getValueOptions() { return valueOptions; } public void setValueOptions(List<Object> valueOptions) { this.valueOptions = valueOptions; } public void apply() { this.options.clear(); for (Object object : valueOptions) { this.options.add(new SelectItem(object)); } }
-
12. Re: WARNING: FacesMessage(s) have been enqueued
waq Feb 23, 2009 4:46 AM (in response to waq)Sir, thanks for the reply/example. I check it out and run it but got some problem in it. When i double check any check box it throws exception.
javax.servlet.ServletException at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:595) Caused by: java.util.NoSuchElementException at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:130) at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:157) at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:61) at javax.faces.component.SelectUtils.matchValue(SelectUtils.java:82) at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:144) at javax.faces.component.UIInput.validate(UIInput.java:875) at javax.faces.component.UIInput.executeValidate(UIInput.java:1072) at javax.faces.component.UIInput.processValidators(UIInput.java:672) at javax.faces.component.UIForm.processValidators(UIForm.java:235) at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:439) at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:238) at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:455) at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) ... 18 more
e.g if i check Monday it updates the list with Monday, but if i uncheck Monday or select and other day it throws above exception. -
13. Re: WARNING: FacesMessage(s) have been enqueued
waq Feb 23, 2009 7:54 AM (in response to waq)i am trying to update the h:datatable using ajax call. Datatable is updating but when i click submit it throws an exception
javax.faces.el.EvaluationException: java.lang.NullPointerException at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at javax.faces.component.UICommand.broadcast(UICommand.java:387) at javax.faces.component.UIData.broadcast(UIData.java:938) at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321) at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296) at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253) at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:595) Caused by: java.lang.NullPointerException at tsheet.ApproveRegular.ApproveTsheet.showRegDetails(ApproveTsheet.java:223) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.el.parser.AstValue.invoke(AstValue.java:152) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) ... 29 more
Is it because of the same reason that values are not same during render and submit?
Please help me out to this problem. I am facing this problem at many other places. I don;t know how to keep the values same during these two phases -
14. Re: WARNING: FacesMessage(s) have been enqueued
nbelaevski Feb 23, 2009 10:50 AM (in response to waq)No, that's because of NPE:
Caused by: java.lang.NullPointerException
at tsheet.ApproveRegular.ApproveTsheet.showRegDetails(ApproveTsheet.java:223)
P.S. You can use eventsQueue attribute to prevent concurrent AJAX requests and NoSuchElementException