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
+"').hide();");
}
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:
http://adfbugs.googlecode.com/files/TestPopup.zip
What is a bug? especially in a framework that is used to develop applications? Is it only something that is described differently in manual? I will be writing more about that in this blog by presenting the functionality of the framework i am working on. Jdeveloper and fusion middleware
Monday, May 31, 2010
Wednesday, May 26, 2010
Single Row LOV in Query Criteria Bug (Fixed in 11.1.1.4)
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:
http://adfbugs.googlecode.com/files/TestSingleRowLOV.zip
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:
http://adfbugs.googlecode.com/files/TestSingleRowLOV.zip
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.
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 11.1.1.3. (Fixed in 11.1.1.4)
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 11.1.1.3.0 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:
@Override
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)) {
session.getEnvironment().put(PropertyMetadata.USER_PRINCIPAL.getName(),contextUser);
}
super.prepareSession(session);
}
After Migrating to jdeveloper 11.1.1.3.0 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:
@Override
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)) {
session.getEnvironment().put(PropertyMetadata.USER_PRINCIPAL.getName(),contextUser);
}
super.prepareSession(session);
}
Tuesday, May 4, 2010
Still reproduced bugs in jdeveloper 11.1.1.3
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
http://adfbugs.blogspot.com/2009/11/attribute-validation-on-input-list-of.html
Page Fragment Design view is messed up when using resource bundle
http://adfbugs.blogspot.com/2009/10/page-fragment-design-view-is-messed-up.html
Workaround for Page Fragment Design view when using resource bundle
http://adfbugs.blogspot.com/2009/11/workaround-for-page-fragment-design.html
Number precision and scale bug
http://adfbugs.blogspot.com/2009/10/number-precision-and-scale-bug.html
Tab selection and Enable User Customization on Session bug.
http://adfbugs.blogspot.com/2009/09/tab-selection-and-enable-user.html
Unsaved changes uncommittedDataWarning bug
http://adfbugs.blogspot.com/2009/09/unsaved-changes-uncommitteddatawarning.html
*ExecuteEmptyRowSet and Range Paging.
http://adfbugs.blogspot.com/2009/09/executeemptyrowset-and-range-paging.html
Table Filter Bug
http://adfbugs.blogspot.com/2009/08/table-filter-bug.html
Returning from dialog to a page that has f:verbatim tag bug
http://adfbugs.blogspot.com/2009/08/returning-from-dialog-to-page-that-has.html
*Range paging and Table Selected Row Bugs
http://adfbugs.blogspot.com/2009/07/range-paging-and-table-selected-row.html
*** even though related metalink bug 8673654 is marked as fixed for this version
*Partial Page Rendering ChangeEventPolicy="ppr" bug.
http://adfbugs.blogspot.com/2009/07/partial-page-rendering.html
Setting value programmatically on required field.
http://adfbugs.blogspot.com/2009/11/setting-value-programmatically-on.html
*Composition Association and Locking
http://adfbugs.blogspot.com/2009/12/composition-association-and-locking.html
*Bind Variable and View Criteria in view with range paging bug
http://adfbugs.blogspot.com/2010/02/bind-variable-and-view-criteria-in-view.html
*Rollback does not refresh current row of af:table after validation errors.
http://adfbugs.blogspot.com/2010/03/rollback-does-not-refresh-current-row.html
Removing a LOV return value leaves garbage in view object
http://adfbugs.blogspot.com/2010/03/removing-lov-return-value-leaves.html
Type Map change corrupt project metadata.
http://adfbugs.blogspot.com/2010/04/type-map-change-corrupt-project.html
Unique Key Validator on Entity does not work correctly
http://adfbugs.blogspot.com/2010/04/unique-key-validator-on-entity-does-not.html
Auto Submit does not set the value in bindings if you navigate with mouse
http://adfbugs.blogspot.com/2010/04/auto-submit-does-not-set-value-in.html
From the above i consider more important those with * since there is not an easy workaround or have big effect on functionality.
*Attribute Validation on Input List of Values attribute
http://adfbugs.blogspot.com/2009/11/attribute-validation-on-input-list-of.html
Page Fragment Design view is messed up when using resource bundle
http://adfbugs.blogspot.com/2009/10/page-fragment-design-view-is-messed-up.html
Workaround for Page Fragment Design view when using resource bundle
http://adfbugs.blogspot.com/2009/11/workaround-for-page-fragment-design.html
Number precision and scale bug
http://adfbugs.blogspot.com/2009/10/number-precision-and-scale-bug.html
Tab selection and Enable User Customization on Session bug.
http://adfbugs.blogspot.com/2009/09/tab-selection-and-enable-user.html
Unsaved changes uncommittedDataWarning bug
http://adfbugs.blogspot.com/2009/09/unsaved-changes-uncommitteddatawarning.html
*ExecuteEmptyRowSet and Range Paging.
http://adfbugs.blogspot.com/2009/09/executeemptyrowset-and-range-paging.html
Table Filter Bug
http://adfbugs.blogspot.com/2009/08/table-filter-bug.html
Returning from dialog to a page that has f:verbatim tag bug
http://adfbugs.blogspot.com/2009/08/returning-from-dialog-to-page-that-has.html
*Range paging and Table Selected Row Bugs
http://adfbugs.blogspot.com/2009/07/range-paging-and-table-selected-row.html
*** even though related metalink bug 8673654 is marked as fixed for this version
*Partial Page Rendering ChangeEventPolicy="ppr" bug.
http://adfbugs.blogspot.com/2009/07/partial-page-rendering.html
Setting value programmatically on required field.
http://adfbugs.blogspot.com/2009/11/setting-value-programmatically-on.html
*Composition Association and Locking
http://adfbugs.blogspot.com/2009/12/composition-association-and-locking.html
*Bind Variable and View Criteria in view with range paging bug
http://adfbugs.blogspot.com/2010/02/bind-variable-and-view-criteria-in-view.html
*Rollback does not refresh current row of af:table after validation errors.
http://adfbugs.blogspot.com/2010/03/rollback-does-not-refresh-current-row.html
Removing a LOV return value leaves garbage in view object
http://adfbugs.blogspot.com/2010/03/removing-lov-return-value-leaves.html
Type Map change corrupt project metadata.
http://adfbugs.blogspot.com/2010/04/type-map-change-corrupt-project.html
Unique Key Validator on Entity does not work correctly
http://adfbugs.blogspot.com/2010/04/unique-key-validator-on-entity-does-not.html
Auto Submit does not set the value in bindings if you navigate with mouse
http://adfbugs.blogspot.com/2010/04/auto-submit-does-not-set-value-in.html
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 11.1.1.3
I went through previus posted bugs and verified that the following defects are fixed in new version of jdeveloper:
LOV execute query many times
http://adfbugs.blogspot.com/2009/08/lov-execute-query-many-times.html
Range Paging in Master Detail bug.
http://adfbugs.blogspot.com/2009/08/range-paging-in-master-detail-bug.html
Af:Query bind variable bug
http://adfbugs.blogspot.com/2009/08/afquery-bind-variable-bug.html
LOV view object Tuning: 'Only up to row number' bug
http://adfbugs.blogspot.com/2009/08/lov-view-object-tuning-only-up-to-row.html
Query Component Required Criterion bug ( r1 Bug)http://adfbugs.blogspot.com/2009/07/query-component-required-criterion-bug.html
New Bind Variable and View Criteria bug
http://adfbugs.blogspot.com/2010/01/new-bind-variable-and-view-criteria-bug.html
Selectively required criteria in LOV
http://adfbugs.blogspot.com/2010/01/selectively-required-criteria-in-lov.html
Required Criterion on Choice List type Attribute.
http://adfbugs.blogspot.com/2010/01/required-criterion-on-choice-list-type.html
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.
LOV execute query many times
http://adfbugs.blogspot.com/2009/08/lov-execute-query-many-times.html
Range Paging in Master Detail bug.
http://adfbugs.blogspot.com/2009/08/range-paging-in-master-detail-bug.html
Af:Query bind variable bug
http://adfbugs.blogspot.com/2009/08/afquery-bind-variable-bug.html
LOV view object Tuning: 'Only up to row number' bug
http://adfbugs.blogspot.com/2009/08/lov-view-object-tuning-only-up-to-row.html
Query Component Required Criterion bug ( r1 Bug)http://adfbugs.blogspot.com/2009/07/query-component-required-criterion-bug.html
New Bind Variable and View Criteria bug
http://adfbugs.blogspot.com/2010/01/new-bind-variable-and-view-criteria-bug.html
Selectively required criteria in LOV
http://adfbugs.blogspot.com/2010/01/selectively-required-criteria-in-lov.html
Required Criterion on Choice List type Attribute.
http://adfbugs.blogspot.com/2010/01/required-criterion-on-choice-list-type.html
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.
Subscribe to:
Posts (Atom)