Monday, May 31, 2010

Choise list in popup turn to null after submit (Fixed in

After migration we have strange behavior in popups with choise list, file upload and other components.
I managed to reproduce it in a simple test case with a table and a Edit popup with a simple choise list.
The first time i open popup it looks ok

If i press 'Submit' button (full submit) the popup is closed as expected since it is autoCancel enabled.

But if i open popup again, then the coise list is empty!!??

This causes other side effects. I.e. if you have partial trigger in popup components from page table, then when you change a line after you have closed popup with submit you get the following error:

The following does not happen if you press the ok/cancel dialog buttons or x button.

The workaround we are using is not to use full submit buttons in popups, and close popup programaticaly in backing bean:

public void closePopUp(String popUpId){
FacesContext facesContext = FacesContext.getCurrentInstance(); ExtendedRenderKitService service = Service.getRenderKitService
(facesContext, ExtendedRenderKitService.class);
service.addScript(facesContext, "AdfPage.PAGE.findComponent('templateid:"+ popUpId

Also with autocancel = enabled, then a partial submit button and a partial trigger on popup or on parent component will close the popup without problem.

Test case:

Wednesday, May 26, 2010

Single Row LOV in Query Criteria Bug (Fixed in

When List of values has only 1 row then in query criteria you cannot set input to null after the first time you set a value.

To reproduce in the test case of Employees with Departments LOV i set where clause of DepartmentsView rownum=1.

I assign DepartmentsView as LOV in Employees.DepartmentId attribute and set it to autosubmit.

I put DepartmentId in query criteria of Employees.

I create a simple query panel with results table for Employees and i run application:

Steps to reproduce:
1. open DepartmentId LOV and select value. press tab or search
2. delete value of DepartmentId and press tab or search
Result: value is not deleted from LOV field. and search still has the criterion.

Only way to make value null is to press reset button.

Is this a bug?

Test Case:

Friday, May 14, 2010

ADF and DBA have 2/3 letters in common

I was doing DBA work this week. We installed our application in different schema and the performance dropped to hell.

The View objects queries that we spend a lot of time tuning in previous schema now they had different execution plan.

So I check the instance properties and I see OPTIMIZER_MODE=ALL_ROWS.
This option means that when you do a query the optimizer thinks that you are trying to retrieve all data from the query so it check the statistics to find the best plan to retrieve all rows usually by full table scans. The all_rows mode is generally used during batch-oriented processing and for data warehouses where the goal is to minimize server resource consumption.

This is not the case in our application and I guess in most ADF applications. I changed it to OPTIMIZER_MODE=FIRST_ROWS. The first_rows optimizer_mode is generally used in online system where the end-user wants to see the first page of query results as quickly as possible. This had a huge positive effect in the performance of our fusion application.
May be this is considered basic for DBAs but it seems that ADF developers should know also in order not to loose time tuning view objects in a wrong configured database.

Thursday, May 6, 2010

User principal is not propagated to Middle tier. New bug on (Fixed in

It may be strange that a new bug like that is introduced in a bug fixing release but it can happen to the best also.

After Migrating to jdeveloper you will notice that application module method getUserPrincipalName() return always ‘Anonymous’ and history columns for user are populated with null. Andrejus Baranovskis have posted about it, Steve Muench logged on Oracle Metalink - bug# 9672139 and a workaround is posted also in the comments that we also use and seams to solve the problem.
I post it also to follow upe with it.
On our base Application Module class we override the prepare session and:

protected void prepareSession(Session session) {
String contextUser = ADFContext.getCurrent().getSecurityContext().getUserName();
String envUser = (String)session.getEnvironment().get(PropertyMetadata.USER_PRINCIPAL.getName());
if (!envUser.equals(contextUser)) {


Tuesday, May 4, 2010

Still reproduced bugs in jdeveloper

I went through previus posted bugs and verified that the following defects are still reproduced in new version of jdeveloper:

*Attribute Validation on Input List of Values attribute

Page Fragment Design view is messed up when using resource bundle

Workaround for Page Fragment Design view when using resource bundle

Number precision and scale bug

Tab selection and Enable User Customization on Session bug.

Unsaved changes uncommittedDataWarning bug

*ExecuteEmptyRowSet and Range Paging.

Table Filter Bug

Returning from dialog to a page that has f:verbatim tag bug

*Range paging and Table Selected Row Bugs
*** even though related metalink bug 8673654 is marked as fixed for this version

*Partial Page Rendering ChangeEventPolicy="ppr" bug.

Setting value programmatically on required field.

*Composition Association and Locking

*Bind Variable and View Criteria in view with range paging bug

*Rollback does not refresh current row of af:table after validation errors.

Removing a LOV return value leaves garbage in view object

Type Map change corrupt project metadata.

Unique Key Validator on Entity does not work correctly

Auto Submit does not set the value in bindings if you navigate with mouse

From the above i consider more important those with * since there is not an easy workaround or have big effect on functionality.

Monday, May 3, 2010

Fixed Defects in

I went through previus posted bugs and verified that the following defects are fixed in new version of jdeveloper:

LOV execute query many times

Range Paging in Master Detail bug.

Af:Query bind variable bug

LOV view object Tuning: 'Only up to row number' bug

Query Component Required Criterion bug ( r1 Bug)

New Bind Variable and View Criteria bug

Selectively required criteria in LOV

Required Criterion on Choice List type Attribute.

These are quite important Fixes for us since they improve LOV functionality that we commonly use and view criteria. They also improve the performance of these controls.