Tuesday, July 14, 2009

JDeveloper 11 r1 Cascading LOV bugs

Since I had a strange reply for the previews post in oracle forums
I decided to investigate cascading LOVs a little more

So I created a ManagersLOV view object with query:
SELECT m.EMPLOYEE_ID,
m.FIRST_NAME,
m.LAST_NAME,
m.DEPARTMENT_ID
FROM EMPLOYEES m
WHERE EXIST (select null
from employees e
where e.manager_id = m.employee_id)
I added bind variable inDepartmentId and view criteria for DepartmentId
I added it as LOV in the employees view and in the accessors I set DepartmentId as value for the bind variable.


I see in property inspector that Row Level Bind Variables is set to true.
I also added ManagerId in query Criteria
I test the application.
In query page if I select a department from LOV and then open manager LOV, managers are filtered correctly depending on department, But:
Bug 1:
If I Type a value in department (or if I remove value) and then try to select manager then the managers are not filtered correctly.


Bug 2: If I type an invalid value in Department and press search, and then try to select a manager I have a null pointer exception.:
Caused by: java.lang.NullPointerException
at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding$AdfCriterionValues.(FacesCtrlSearchBinding.java:2834)


Bug 3: If I type an invalid value in Department and go to Edit page (press Edit or New) and return (New Search) tha page is corrupted with the same null pointer exception.


Bug 4: In Edit page I type an invalid value in ManagerId, then I change the department and try to select new value for the ManagerId from the LOV. But the managers are filtered according to the old department


So I think this is not correct so I go to the LOV of ManagerId field and in the UI Hints I select the checkbox Filter Combo Box Using 'ManagersLovCriteria'


I go again to the accessor and I see that property Row Level Bind Variables is empty.
I go again to the LOV of ManagerId field and in the UI Hints and I see the checkbox Filter Combo Box not checked. No mater how many times I try to check it it remains unchecked.


So I try the application and I reproduce all the above bugs.

So I manually change the value of property 'Row Level Bind Variables' to “false” and I try the application.
I cannot reproduce the Bugs 2 and 3 with NullPointerException but the Managers never filter for the selected department no mater if I select it from LOV or not

So as a conclusion, cascading LOVs don't work correctly in Jdeveloper 11g r1 no mater the value of
'Row Level Bind Variables'
Find test case application at:

6 comments:

  1. Great Job!

    It is good to know the current status of Cascade LOVs in this new Release!

    Thank you!

    ReplyDelete
  2. I think all the problems here stem from the same issue: when using an LOV on a query, you must set the autosubmit on the attribute in the View.

    Open up your EmployeesView, go to
    Attributes, double-click on Dept,
    go to Control Hints in the "Edit Attributes" dialog, and change Auto-Submit from the
    default of "false" to "true".

    In general, there is no need to autosubmit
    on attributes; however, when you have
    a cascading LOV situation, where the
    values of another attribute are dependent
    on the values of a first, then there has got
    to be some way to tell the server about the changes in the first. Autosubmit does that.
    This is a requirement for the base attribute in a cascading LOV situation.

    The new release has moved toward many rich-client types of behaviors, and as a result, there is a greater burden on developers to realize the implications of client side actions.

    Hope this helps.

    ReplyDelete
  3. I havent reproduced, for me Cascading LOV components work well with suggested proper solution.

    Regards,
    Andrejus

    ReplyDelete
  4. Thanks for the tip guys, but it doesn't help much.

    It solves the bug 1 but now i get null pointer exception as soon as i type an invalid value for departmentId and press search or new.
    So it does not solve bugs 2,3 and 4.

    also in query criteria i have now the bug described in previus post http://adfbugs.blogspot.com/2009/07/adf-input-list-of-values-autosubmit-bug.html

    ReplyDelete
  5. I've posted my findings in http://forums.oracle.com/forums/thread.jspa?threadID=928068

    ReplyDelete