Search code examples
oracle-adfselectmanycheckbox

How to allow selection then deselection in selectManyChoice LOV outside a view criteria


here is my issue.

I got a selectManyChoice in a form (that is not part of a view criteria). Everything work just fine except when a user select 1 or multiple entries, they can't deselect them all otherwise I get a PPR exception.

The setup I have is a simple LOV based on a query, that was made available in my AM data model, I simply dragged the LOV from my Data control to my form to a selectManyChoice. The selectManyChoice is in autoSubmit because I also got a onValueChangeListener that need to be prompted.

without my onValueChangeListener I still get the error the same way (selecting something and then de-selecting everything)

Leaving the selection empty doesn't generate any error and let the form be used normally, but selecting something and then de-selecting it cause the error...

For information purpose, I use jDeveloper version 11.1.1.9.0

Thanks in advance !

Here is the PPR error launched in case it can help

java.lang.NullPointerException
at oracle.adfinternal.view.faces.model.binding.FacesCtrlListBinding.findObjectFromIndex(    FacesCtrlListBinding.java:292)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlListBinding.getInputValue(    FacesCtrlListBinding.java:215)
at oracle.jbo.uicli.binding.JUCtrlValueBinding.internalGet(JUCtrlValueBinding.java:2374)
at oracle.jbo.uicli.binding.JUCtrlListBinding.internalGet(JUCtrlListBinding.java:3807)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlListBinding.internalGet(    FacesCtrlListBinding.java:524)
at oracle.adf.model.binding.DCControlBinding.get(DCControlBinding.java:768)
at javax.el.MapELResolver.getValue(MapELResolver.java:196)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200)
at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:68)
at org.apache.myfaces.trinidad.component.UIXComponentBase.getProperty(UIXComponentBase.java:1429)
at org.apache.myfaces.trinidad.component.UIXValue.getValue(UIXValue.java:79)
at org.apache.myfaces.trinidad.component.UIXEditableValue.validate(UIXEditableValue.java:187)
at org.apache.myfaces.trinidad.component.UIXEditableValue._executeValidate(UIXEditableValue.java:616)
at org.apache.myfaces.trinidad.component.UIXEditableValue.processValidators(UIXEditableValue.java:304)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$ProcessValidationsCallback.invokeContextCallback    (LifecycleImpl.java:1675)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1661)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.invokeOnComponent(    ContextSwitchingComponent.java:223)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1682)
at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(    UIXComponentBase.java:1565)
at oracle.adf.view.rich.component.fragment.UIXInclude.invokeOnComponent(UIXInclude.java:157)

Solution

  • Apparently there is a patch for it the bug occur from version 11.1.1.7.0 to 11.1.1.9.0 here is the link to the oracle ticket describing the issue

    support.oracle.com ticket page

    the patch number needed to fix this issue is 16224082

    this issue is fixed in 12.1.3.0.0