Volker, here're the log msgs, which might give you somewhat clear picture of
what's going on....
Appreciate your efforts..!
10:06:15,963 INFO [AjaxUtils] ajaxComponentIds = "cdbmainpage:orderPanel"
10:06:15,963 INFO [AjaxUtils] ajaxComponent for "cdbmainpage:orderPanel" =
"[EMAIL PROTECTED]"
2008-02-21 10:06:15: OrderPanelController::showInDetail(): Selected Order:
NA9
2008-02-21 10:06:15: OrderPanelController::setOrder(): Setting Order: null
Consequently, the following is the trace, as the order is getting set to
Null, everytime, even though the Value change listener is showing the
getValue() of the SelectListOneBox component, is keep on retaining the
initially set value (NA9)...as you can see:
Feb 21, 2008 10:06:16 AM org.apache.catalina.core.StandardWrapperValveinvoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at com.uunet.es3.controller.OrderPanelController.getStatus(
OrderPanelController.java:101)
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.myfaces.el.PropertyResolverImpl.getProperty(
PropertyResolverImpl.java:457)
at org.apache.myfaces.el.PropertyResolverImpl.getValue(
PropertyResolverImpl.java:85)
at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(
ELParserHelper.java:535)
at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java
:386)
at javax.faces.component.UIOutput.getValue(UIOutput.java:80)
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 javax.faces.component._ComponentAttributesMap.getComponentProperty
(_ComponentAttributesMap.java:387)
at javax.faces.component._ComponentAttributesMap.get
(_ComponentAttributesMap.java:235)
at org.apache.myfaces.tobago.renderkit.LabelWithAccessKey.<init>(
LabelWithAccessKey.java:43)
at
org.apache.myfaces.tobago.renderkit.html.scarborough.standard.tag.LabelRenderer.encodeEnd
(LabelRenderer.java:79)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java
:539)
at org.apache.myfaces.tobago.renderkit.RenderUtil.encode(RenderUtil.java
:86)
at
org.apache.myfaces.tobago.renderkit.html.scarborough.standard.tag.GridLayoutRenderer.encodeChildrenOfComponent
(GridLayoutRenderer.java:379)
at
org.apache.myfaces.tobago.component.UILayout.encodeChildrenOfComponent(
UILayout.java:70)
at
org.apache.myfaces.tobago.component.UIGridLayout.encodeChildrenOfComponent(
UIGridLayout.java:276)
at org.apache.myfaces.tobago.component.UIPanelBase.encodeChildren(
UIPanelBase.java:43)
at org.apache.myfaces.tobago.renderkit.RenderUtil.encode(RenderUtil.java
:79)
at
org.apache.myfaces.tobago.renderkit.html.scarborough.standard.tag.GridLayoutRenderer.encodeChildrenOfComponent
(GridLayoutRenderer.java:379)
at
org.apache.myfaces.tobago.component.UILayout.encodeChildrenOfComponent(
UILayout.java:70)
at
org.apache.myfaces.tobago.component.UIGridLayout.encodeChildrenOfComponent(
UIGridLayout.java:276)
at org.apache.myfaces.tobago.component.UIPanelBase.encodeChildren(
UIPanelBase.java:43)
at org.apache.myfaces.tobago.renderkit.RenderUtil.encode(RenderUtil.java
:79)
at
org.apache.myfaces.tobago.renderkit.html.scarborough.standard.tag.GridLayoutRenderer.encodeChildrenOfComponent
(GridLayoutRenderer.java:379)
at
org.apache.myfaces.tobago.component.UILayout.encodeChildrenOfComponent(
UILayout.java:70)
at
org.apache.myfaces.tobago.component.UIGridLayout.encodeChildrenOfComponent(
UIGridLayout.java:276)
at org.apache.myfaces.tobago.component.UIPanelBase.encodeChildren(
UIPanelBase.java:43)
at org.apache.myfaces.tobago.renderkit.RenderUtil.encode(RenderUtil.java
:79)
at
org.apache.myfaces.tobago.renderkit.html.scarborough.standard.tag.GridLayoutRenderer.encodeChildrenOfComponent
(GridLayoutRenderer.java:379)
at
org.apache.myfaces.tobago.component.UILayout.encodeChildrenOfComponent(
UILayout.java:70)
at
org.apache.myfaces.tobago.component.UIGridLayout.encodeChildrenOfComponent(
UIGridLayout.java:276)
at org.apache.myfaces.tobago.component.UIPanelBase.encodeChildren(
UIPanelBase.java:43)
at
org.apache.myfaces.tobago.renderkit.html.scarborough.standard.tag.PanelRenderer.encodeAjax
(PanelRenderer.java:173)
at org.apache.myfaces.tobago.ajax.api.AjaxUtils.encodeAjaxComponent(
AjaxUtils.java:67)
at org.apache.myfaces.tobago.component.UIPanelBase.encodeAjax(
UIPanelBase.java:48)
at org.apache.myfaces.tobago.util.EncodeAjaxCallback.execute(
EncodeAjaxCallback.java:32)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1246)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIForm(
ComponentUtil.java:1271)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1250)
at
org.apache.myfaces.tobago.component.ComponentUtil.prepareOnUIComponent(
ComponentUtil.java:1278)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOrPrepare(
ComponentUtil.java:1252)
at org.apache.myfaces.tobago.component.ComponentUtil.invokeOnComponent(
ComponentUtil.java:1240)
at
org.apache.myfaces.tobago.ajax.api.AjaxResponseRenderer.renderComponent(
AjaxResponseRenderer.java:140)
at
org.apache.myfaces.tobago.ajax.api.AjaxResponseRenderer.renderResponse(
AjaxResponseRenderer.java:120)
at org.apache.myfaces.tobago.lifecycle.RenderResponseExecutor.execute(
RenderResponseExecutor.java:47)
at org.apache.myfaces.tobago.lifecycle.TobagoLifecycle.render(
TobagoLifecycle.java:141)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:206)
at
org.apache.myfaces.tobago.webapp.TobagoMultipartFormdataFilter.doFilter(
TobagoMultipartFormdataFilter.java:127)
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)
On Thu, Feb 21, 2008 at 10:13 AM, Raj .G. Narasimhan <[EMAIL PROTECTED]>
wrote:
> Currently, I'm using 1.0.15...(since two days)...Previously, I started the
> development with 1.0.13....
>
> thanks,
> -R
>
>
> On Thu, Feb 21, 2008 at 10:09 AM, Volker Weber <[EMAIL PROTECTED]> wrote:
>
> > Which version of tobago? I'm trying to reproduce this.
> >
> > 2008/2/21, Raj .G. Narasimhan <[EMAIL PROTECTED]>:
> > > Yes, I did....Volker... But, there is none...
> > >
> > > thanks,
> > > -R
> > >
> > >
> > > On Thu, Feb 21, 2008 at 9:59 AM, Volker Weber <[EMAIL PROTECTED]>
> > wrote:
> > > > than it should work!
> > > >
> > > > can you add a tc:messages tag inside the orderPanel to ensure there
> > > > are no conversion/validation errors.
> > > >
> > > >
> > > >
> > > >
> > > > 2008/2/21, Raj .G. Narasimhan <[EMAIL PROTECTED]>:
> > > > > Thanks Volker, for the reply!
> > > > >
> > > > > The SelectOneListBox with the facet, is within the rendered panel
> > > > > (orderPanel which encloses both this selectListOneBox component,
> > as well
> > > as
> > > > > the 'orderDetailPanel'). Hence, I expected the value of
> > > SelectOneListBox,
> > > > > to be processed. And, it's not.
> > > > >
> > > > > I will try with the other two options....
> > > > >
> > > > > Appreciate it!
> > > > >
> > > > > tx,
> > > > > -R
> > > > >
> > > > >
> > > > >
> > > > > <tc:panel id="orderPanel">
> > > > > ....
> > > > > ...
> > > > > <tc:box label="#{rsrcBundle.order_orderListLabel}">
> > > > > <f:facet name="layout">
> > > > > <tc:gridLayout rows="*" columns="*" margin="2px" />
> > > > > </f:facet>
> > > > > <tc:selectOneListbox value="#{orderPanelController.order}"
> > > > >
> > > > >
> > > valueChangeListener="#{orderPanelController.showInDetail}"
> > > > >
> > > > >
> > > validator="#{orderPanelController.validateListSelection}">
> > > > > <f:selectItems value="#{orderPanelController.orders}"
> > />
> > > > > <f:converter converterId="deviceOrderId" />
> > > > >
> > > > > <f:facet name="click">
> > > > > <tc:command action="#{
> > orderPanelController.returnNull}">
> > > > > <tc:attribute value=":cdbmainpage:orderPanel"
> > > > > name="renderedPartially" />
> > > > > </tc:command>
> > > > > </f:facet>
> > > > > <%-- I tired the same command with 'change' facet' also %>
> > > > > </tc:selectOneListbox>
> > > > >
> > > > > </tc:box>
> > > > >
> > > > > <tc:panel id="orderDetailPanel">
> > > > >
> > > > >
> > > > > On Thu, Feb 21, 2008 at 3:22 AM, Volker Weber <[EMAIL PROTECTED]>
> > > wrote:
> > > > > > Hi Raj,
> > > > > >
> > > > > > if i interpret your code snippet correct,
> > > > > >
> > > > > > the selectOneListbox with the click/change facet is NOT inside
> > the
> > > > > > partially rendered panel. This is the problem, only the content
> > of the
> > > > > > partiallyRendered component is processed on the server.
> > > > > >
> > > > > > you have two(tree) choices:
> > > > > > 1. include the listbox into the renderedPartially scope.
> > > > > > 2. invoke the processing of listbox lifecycle in your action.
> > > > > > UIComponent listbox = facesContext.getViewRoot
> > ().findComponent(<id
> > > > > > of listbox>);
> > > > > > listbox.processDecodes(facesContect);
> > > > > > listbox.processValidations(facesContect);
> > > > > > listbox.processUpdates(facesContect);
> > > > > >
> > > > > > 3.(experimental) use 1.1-SNAPSHOT version.
> > > > > > you can declare full page to be submitted (and processed)
> > partially
> > > and
> > > > > > in your action method remove the page and add orderPanel
> > from/to the
> > > > > > partially
> > > > > > component list.
> > > > > >
> > > > > >
> > > > > > Regards,
> > > > > > Volker
> > > > > >
> > > > > > 2008/2/21, Raj .G. Narasimhan <[EMAIL PROTECTED]>:
> > > > > >
> > > > > >
> > > > > >
> > > > > > > I am trying to show the details of 'SelectItem' object of
> > > > > SelectOneListBox
> > > > > > > on a set of Input fields. Problem that I am facing is,
> > whenever the
> > > page
> > > > > is
> > > > > > > rendered partially, it always returns the 'value' of
> > > SelectOneListBox as
> > > > > > > null. I have tried using both 'change' and 'click' facets,
> > and both
> > > of
> > > > > them
> > > > > > > are not giving the desired results.
> > > > > > >
> > > > > > > Here's the scenario, in little detail:
> > > > > > >
> > > > > > > When I use, 'click' facet, and tried to select different list
> > items:
> > > > > > >
> > > > > > > ** In the valueChangeEvent, everytime it's retaining the
> > initially
> > > set
> > > > > value
> > > > > > > (First item of List box, which I set when I render the panel
> > for the
> > > > > first
> > > > > > > time) .
> > > > > > >
> > > > > > > ** getValue() of the source component in the valueChange
> > event, is
> > > > > > > supposedly returning the binding value, if the current value
> > is
> > > null.
> > > > > And, I
> > > > > > > guess, this is the reason, it retains the old value, if the
> > current
> > > > > > > localvalue is null.
> > > > > > >
> > > > > > > ** After this listerner call, it tries to set the value of the
> > > > > > > SelectOneListBox's bound value as null, and this results in
> > > NPException,
> > > > > as
> > > > > > > the 'DetailPanel's fields are this object's properties.
> > > > > > >
> > > > > > > ** I tried intercepting with a Validator - Surprisingly, this
> > is
> > > not
> > > > > called
> > > > > > > at all...
> > > > > > >
> > > > > > >
> > > > > > > When I use "Change" facet and tried to select different list
> > items:
> > > > > > > ** ValueChangeEvent does not occur at all
> > > > > > > **Agreeably, 'change' facet's command is also not called
> > > > > > > **No validator call is made
> > > > > > >
> > > > > > > Here's the code snippet:
> > > > > > > <tc:panel id="orderPanel">
> > > > > > > ....
> > > > > > > ...
> > > > > > > <tc:box label="#{rsrcBundle.order_orderListLabel}">
> > > > > > > <f:facet name="layout">
> > > > > > > <tc:gridLayout rows="*" columns="*" margin="2px"
> > />
> > > > > > > </f:facet>
> > > > > > > <tc:selectOneListbox value="#{
> > orderPanelController.order}"
> > > > > > >
> > > > > > >
> > > > >
> > > valueChangeListener="#{orderPanelController.showInDetail}"
> > > > > > >
> > > > > > >
> > > > >
> > > validator="#{orderPanelController.validateListSelection}">
> > > > > > > <f:selectItems value="#{
> > orderPanelController.orders}" />
> > > > > > > <f:converter converterId="deviceOrderId" />
> > > > > > >
> > > > > > > <f:facet name="click">
> > > > > > > <tc:command
> > > action="#{orderPanelController.returnNull}">
> > > > > > > <tc:attribute
> > value=":cdbmainpage:orderPanel"
> > > > > > > name="renderedPartially" />
> > > > > > > </tc:command>
> > > > > > > </f:facet>
> > > > > > > <%-- I tired the same command with 'change' facet' also %>
> > > > > > > </tc:selectOneListbox>
> > > > > > >
> > > > > > > </tc:box>
> > > > > > >
> > > > > > > <tc:panel id="orderDetailPanel">
> > > > > > > ....
> > > > > > > ..
> > > > > > >
> > > > > > > OrderPanelController:
> > > > > > > public void showInDetail(ValueChangeEvent valChangeEvent) {
> > > > > > > UISelectOne select =
> > > > > > > (UISelectOne)valChangeEvent.getComponent();
> > > > > > > if(select.getValue() == null){
> > > > > > > LOG.finer("Value is null");
> > > > > > > return;
> > > > > > > }
> > > > > > > order = (DeviceOrder) select.getValue();
> > > > > > > LOG.finer("Selected Order: "+select.getValue());
> > > > > > > return;
> > > > > > > }
> > > > > > >
> > > > > > > public void validateListSelection(FacesContext
> > > context,
> > > > > > > UIComponent component, Object value) throws ValidatorException
> > {
> > > > > > > if (value == null) {
> > > > > > > System.out.println("List validation:Came here :
> > Value is
> > > > > null");
> > > > > > > return;
> > > > > > > }
> > > > > > > order = (DeviceOrder) value;
> > > > > > > LOG.finer("Selected order in validation: "+order);
> > > > > > > }
> > > > > > >
> > > > > > > Appreciate your help!
> > > > > > >
> > > > > > > --
> > > > > > > Thanks,
> > > > > > >
> > > > > > > Raj .G. Narasimhan
> > > > > >
> > > > > >
> > > > > > --
> > > > > > inexso - information exchange solutions GmbH
> > > > > > Bismarckstraße 13 | 26122 Oldenburg
> > > > > > Tel.: +49 441 4082 356 |
> > > > > > FAX: +49 441 4082 355 | www.inexso.de
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Thanks,
> > > > >
> > > > > Raj .G. Narasimhan
> > > >
> > > >
> > > > --
> > > >
> > > >
> > > >
> > > > inexso - information exchange solutions GmbH
> > > > Bismarckstraße 13 | 26122 Oldenburg
> > > > Tel.: +49 441 4082 356 |
> > > > FAX: +49 441 4082 355 | www.inexso.de
> > > >
> > >
> > >
> > >
> > > --
> > > Thanks,
> > >
> > > Raj .G. Narasimhan
> >
> >
> > --
> > inexso - information exchange solutions GmbH
> > Bismarckstraße 13 | 26122 Oldenburg
> > Tel.: +49 441 4082 356 |
> > FAX: +49 441 4082 355 | www.inexso.de
> >
>
>
>
> --
> Thanks,
>
> Raj .G. Narasimhan
--
Thanks,
Raj .G. Narasimhan