ADF "Select many shuttle" (af:selectManyShuttle) component does not show all items in the leading list

   ADF "Select many shuttle" does not populate all items available in binded iterator. I don't know whether this is a bug or some other reason, but af:selectManyShuttle in the leading list populates just no more items then defined in the "RangeSize" property of iterator.
   To my mind it supposed to fetch all items in iterator in bunches of %RangeSize% (like other components do). But it is like it is for now and the workaround solution is simply to increase "RangeSize" of iterator to reasonable size. It applies to ADF 11.1.1.7.

How to escape special symbols in Oracle SQL, PL/SQL (i.e. "&")?

For escaping "&" or other special symbols in SQL or PL/SQL use function utl_i18n.escape_reference(string_needed_to_escape):

select UTL_I18N.ESCAPE_REFERENCE('Here is my special symbol: '||chr(38)) from dual

Example returns "Here is my special symbol: &"

Problem with navigation using task flow actions - action is not executed after first button click

I experienced such strange ADF behavior regarding navigation using task-flow actions. Navigation doesn't work after single button press. After second press - works fine.

Preconditions:
  • Application "MyApp" with two pages - main.jspx and popup.jspx (You can download sample app)
  • popup.jspx belongs to bounded task-flow
  • main.jspx belongs to unbounded task-flow
  • Action "open" is defined in unbouded task-flow (see picture below)

  • CommandButton which executes action "open" is placed in main.jspx - it should open popup.jspx as inline dialog
  • In web.xml as  main.jspx is configured to be welcome file (see picture below)

 Strange behavior:
  1. Open application URL=http://localhost:7101/MyApp. Application is automatically redirected to URL:
    http://localhost:7101/MyApp/faces/main.jspx?_afrLoop=73412101452107&_afrWindowMode=0&_adf.ctrl-state=12hvlnrp73_4


    Pay attention to red-colored file name.
  2. Press button "open popup". After first press nothing happen except browser URL changes to:
    http://localhost:7101/MyApp/faces/main.jspx?_adf.ctrl-state=12hvlnrp73_4 
  3. Press button "open popup" once again. Now popup is shown and browser URL changes to:
    http://localhost:7101/MyApp/faces/main?_adf.ctrl-state=12hvlnrp73_4
What did happen here? Right after request application is forwarded to welcome file - its main.jspx. After button press action was not executed because its real source name (displayed in browser URL - "main.jspx")  was not the same as defined in task-flow ("main"). A bit strange, but ADF behaves like this - if there is such mismach it does't execute an action. But... Refreshes URL to one which conforms requirements. Need to remember specific ADF navigation behavior that in browser address bar shows URL of previous page, not the current one. Thats why in step2 we see the same main.jspx and just in step3 - see refreshed to "main".

To fix this (make button working right after the first click) available two solutions:
  • Rename view name in unbouded task flow "main" -> "main.jspx"
  • Change welcome file in web.xml "/faces/main/main.jspx" -> "/faces/main" (this case is implemented in my sample application available for download)
This case was tested in ADF 11.1.1.7.