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
Tuesday, December 20, 2011
Access Keys are accessible even from a modal popup
n the attached test case run testpopup page
Press Edit button to open popup
Press Alt+Shift+c access key of Commit button
Expected: Nothing should happen
Actual: Commit is performed and popup is closed.
Test case.
SR is posted for this and Bug 13338347: ACCESS KEYS SHOLD BE DISABLED BASED ON THE CONTEXT
Yet the Oracle development consider this as a Browser issue. 'The issue is not in the scope of the ADF Product as this is the feature of the browser. '
We are working on a workaround about this issue.
We are based on the fact that when a button is disabled then the access key is not functional.
So on popup FetchListeners we disable the buttons of the main page and on popupCancelListeners we enable buttons again.
It seems to work, yet we need to check any side effect and we need to implement it for all popups.
Thursday, October 6, 2011
Pressing 'Tab' in LOV field new bug in jdeveloper 11.1.2.1
While navigating through panel form fields with tab key, all validations of the page are thrown as if a full submit was performed.
This happens when you have input list of value field and the focus is on the field and you press tab key. The input list of value is autosubmit in order to refresh other fields
In the test case run testTab page and press CreateInsert button. Click on Department or Job List of value field and press Tab key. All validations of the page appear.
I also notice that errors appear in Greek even though my browser language is in English.
Test Case:
http://adfbugs.googlecode.com/files/TestLOVTab.zip
Bug 11939353 was already logged in oracle support which is fixed in a future release.
also in OTN Thread: Validation issue
https://forums.oracle.com/forums/thread.jspa?threadID=2254388&start=15&tstart=0
According to this thread a workaround exist in Didier's blog:
How To Avoid The JBO-27014 Error During The AutoSubmit
Sunday, August 28, 2011
Cannot use a region in a page more than one time?
For example we have An address region that we reuse in order to show and edit a person address and a company address. We pass the address owner as a parameter to the region in order to show corresponding data.
Yet if regions are placed in the same page then both regions show the same data even if they get different parameters.
This is because of automatic application modules nesting.
The framework see that AddressModule is already in data control and it use the same for both regions due to shared data control scope.
It does not happen if we don't use shared data control scope, yet then we have a different database connection for each region. It does not seems right to have different connection to get different data!!?
In the test case i have a simple Department Task flow that query for specific department depending on passed parameter inDepId
Then in a page i place the same region 2 times with different parameter passed in each region.
Yet when i run the application both regions show the same data.
Is there a way to show different data without having different database connection?
Test Case:
http://adfbugs.googlecode.com/files/TestRegions.rar
Tuesday, August 16, 2011
Rollback is executed when a region is refreshed
I have just noticed that when a region refreshes then a data control transaction rollback is executed transparently.
This does not happen the first time the region is displayed but every time it is refreshed after that.
This cause unexpected behavior of loosing data and the current rows of any other shared transaction task flow.
Could this be an expected (designed) functionality? Why?
As a test case I have 2 application modules (DepartmentsModule and Employees module) and a page that has departments and a region that has Employees with ‘share transaction if possible’ in the EmployeesTaskFlow.
Also the EmployeesTaskFlow get as parameter the current DepartmentId and has Refresh condition ifNeeded so that it refresh every time I navigate into departments.
Yet when I press next button I loose any change made on current department and I stay in the same row.
What I see in log is that Rollback is executed as a consequence of region Refresh and releaseViewPort.
Is this expected behavior or a bug?
I will check also what happens in 11.1.2 that it seems the nesting implementation have changed:
http://one-size-doesnt-fit-all.blogspot.com/2011/08/task-flows-sayonara-auto-am-nesting-in.html
It reproduce also in 11.1.2
Test Case
http://adfbugs.googlecode.com/files/TestRegionRollback.zip
A Perfect explanation and solution is given by Oracle Support. I will put it as is here:
@ At the point when the customer decided the region should share the
@ transaction with its parent, he also made the region a potential actor on the
@ parent transaction. Since the transaction mode on the region is not 'Always
@ Use Existing Transaction', the region transaction is not necessarily created
@ by the parent (and I will come back to that later), the behavior of the
@ region becomes the behavior of the parent even if they don't share the same
@ datacontrol. That is because both datacontrol are in one transaction since
@ the transaction is shared. When the region refresh, it rollback the
@ transaction which rollback both datacontrol.
@ .
@ To make the share mode work, the main point the customer should pay attention
@ to is that the transaction should be created by the parent, not by the
@ region. If it is created by the region, then the region become the owner of
@ the transaction and will rollback when the region is refreshed. If the
@ transaction was created by the parent it will work as expected.
@ .
@ What you need to do is ensure that the transaction is owned by the parent.
@ You need to have it created before the region. They are several ways to do
@ that:
@ 1) Have the parent page in a bounded taskflow with 'Always Begin New
@ Transaction' mode on.
@ 2) Call beginTransaction() on the DataControlFrame in an action that
@ navigates to the parent page with the region.
@ 3) Have a method activity that executes beginTransaction() on a request bean
@ before navigating to the parent page with the region.
@ The code to do begin the transaction is:
@ .
@ public void beginTransaction()
@ {
@ BindingContext context = BindingContext.getCurrent();
@ .
@ String dcFrameName = context.getCurrentDataControlFrame();
@ DataControlFrame dcFrame = context.findDataControlFrame(dcFrameName);
@ dcFrame.beginTransaction(new TransactionProperties());
@ }
@ .
@ To prevent the region from owning the transaction and run into these types of
@ issue for share mode, you can set the transaction mode on the taskflow to:
@
@ property inspector. If the transaction does not exist, an exception is
@ thrown.
@ .
@ I modified the original test case to illustrate the different options. Open
@ the workspace and look at adfc-config.xml. Run the Start page, withoutTrans
@ is the original test case, withTrans and beginTrans are 2 options that work.
@ .
Resolution Test Case
http://adfbugs.googlecode.com/files/TestRegionRollback2.zip
Unfortunately it seems that the issue is not fully resolved.
This works until a Data control frame commit or Rollback is executed.
Then it seems that the parrent looses control again of the transaction and regions rollback again on every refresh...
In the test case i added 2 buttons that do :
DataControlFrame dcFrame = context.findDataControlFrame(dcFrameName);
dcFrame.commit();
and
DataControlFrame dcFrame = context.findDataControlFrame(dcFrameName);
dcFrame.rollback();
The test case work fine until any of the commit or rollback transaction is pressed
Then Next button still causes rollback to be executed.
This means that still i cannot control the full data control frame transaction when i have regions with parameters.
New test case
http://adfbugs.googlecode.com/files/TestRegionRollback3.zip
Sunday, June 26, 2011
Table Filter Number format bug
It is an oracle database error that shows that the number entered in criteria is not converted correctly according to the locale of the database.
Same value in Search criteria works correctly.
Sunday, June 19, 2011
Bugs Review in jdeveloper 11.1.2
Posted bugs that still reproduce in latest version of jdeveloper are:
Combo box does not remember values in table
Invalid values in choice lists
Dependent LOV in table shows invalid values
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
Custom Attribute Validation on LOVs
http://adfbugs.blogspot.com/2009/11/attribute-validation-on-input-list-of.html
Number precision and scale
http://adfbugs.blogspot.com/2009/10/number-precision-and-scale-bug.html
Range paging and Table Selected Row Bugs
http://adfbugs.blogspot.com/2009/07/range-paging-and-table-selected-row.html
Tab selection and Enable User Customization on Session bug.
http://adfbugs.blogspot.com/2009/09/tab-selection-and-enable-user.html
Not Reproduced bugs in JDeveloper 11.1.2:
Jdeveloper 11.1.1.5 severe bug
Application Module cannot get principal when you use transaction controller in task flows
ExecuteEmptyRowSet and Range Paging.
http://adfbugs.blogspot.com/2009/09/executeemptyrowset-and-range-paging.html
Partial Page Rendering ChangeEventPolicy="ppr" bug.
http://adfbugs.blogspot.com/2009/07/partial-page-rendering.html
Tuesday, June 7, 2011
First jdeveloper 11.1.2 bug
Fast and furious
Yet I hit on the first bug already.
I used the default oracle three column layout and created a jsf page with a panel box
On runtime when I tried to disclose first empty column I got a java script error
Is it a problem of combination of jspx template with Facelet page?
Will see…
Test case
http://adfbugs.googlecode.com/files/Application5.rar
Major : Jdeveloper 11.1.2 release
Not yet for SOA and Web Center.
Yet it is much earlier than i expected.
http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html
Lets hope it is the stable and promissing release we expected.
I have done over 10 migrations already of applications from TP1.
More than 3 every year, and it was a tricky task every time.
I am downloading at the moment.
Lets see...
Friday, May 27, 2011
Combo box does not remember values in table
When you define a List of Values in a View object as Combo Box with List Of Values there is an option to define ‘Most Recently Used Count’
Where you, enter the number of items to display in the choice list when you want to provide a shortcut to the end user to display their most recent selections.This is quite useful functionality and it work fine when the field is used in a panel form layout.
Yet when it is used in table then it does not work, no matter how many times you select a value it does not remember the previously added values.
Is this a bug?
Test case:
http://adfbugs.googlecode.com/files/TestComboBox.zip
Still reproduce in jdeveloper 11.1.2
SR 3-3705906727 was posted for this.
Enchancement request that was created was rejected by Oracle development team.
=== ODM Answer ===
The MRUCount when the inputComboboxListOfValues is in a table won't work when ADF bindings are used:
The LOV bindings are created dynamically when used in a table and the "Most Recently Used Count" (MRU) feature is not enabled then.
MRU doesn't work in af:query too.
There is currently no plan to implement this feature in future releases.
Monday, May 16, 2011
Jdeveloper 11.1.1.5 severe bug (Fixed in 11.1.2)
When you press rollback and the page has a table with editable fields, all fields get the same values as the last row of the table.This is a really blocking issue in order to use the latest version
It seems the problem is in the immediate property of Rollback button
This is also in forums
http://forums.oracle.com/forums/thread.jspa?messageID=9587923#9587923
Oracle have logged a bug 12551764 for it and an Alert in support
Note 1321896.1 - 11.1.1.5.0 Regression: Rollback Button With Property immediate="true" Causes Replacing Existing Rows With Current One
since it is possibly going to affect all users of 11.1.1.5
Oracle is working on a patch for it.
I will do more investigation about the posted bugs here when this patch is ready
Tuesday, May 3, 2011
Application Module cannot get principal when you use transaction controller in task flows (Fixed in 11.1.2)
To reproduce it I have an application module with an exposed method:
public void checkTransaction(){
System.out.println(this.getDBTransaction().getSession().getEnvironment().get("jbo.user.principal"));
System.out.println(this.getUserPrincipalName());
}
I also have 2 ‘isolated’ task flows, StartNewTransaction with ‘Always Begin new Transaction’ and UseExistingTransaction with ‘Use existing transaction if possible’
I have user: ‘user1/welcome1’ and run TestTransactions page and loggin.
In main page checkTransactions works as expected. Yet in other task flows it gives a:
java.lang.NullPointerException
at oracle.jbo.server.ApplicationModuleImpl.getUserPrincipalName(ApplicationModuleImpl.java:8429)
at model.modules.AppModuleImpl.checkTransaction(AppModuleImpl.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
…
Is this a specific method bug?
Will I have issues with history columns?
Do I loose any other security context?
Test Case:
http://adfbugs.googlecode.com/files/testTransactions.zip
Does not reproduce in jdeveloper 11.1.2
Monday, March 21, 2011
Invalid values in choice lists
For example there can be a lookup table for Status that some values can be selected by user and other that only the system can set.
An other case are Types that are not valid any more but exist for old data.
So if you have limited the data of a choice list with a where statement there is a chance that, data exist for the limited rows. The behavior of choise list then is quite problematic.
To demonstrate it in HR schema I limit the DepartmentView to have only departments that have managers (WHERE Departments.MANAGER_ID is not null) and jobs WHERE Jobs.MIN_SALARY<4000. In a simple adf form if you go to an Employee that has a department without a manager then the department choice list seems to have no value and 2 empty selections.
Also in the log you see the message:
If you go to an employee that has invalid job you see again the choice list empty, even though it has a value. If you try to change any other field and submit you get the required field error even though it has a value.
Similar issue exists when Choice List is dependent to another field. Then if you change the other field and choice list does not have a valid value any more it shows empty even though the value still exist in view object. In this case you need to define dependency on view attributes so that the choice list becomes null every time you change the other field. This way though the choice list value will be lost even if it is valid.
was posted for this. Yet it is rejected by the Oracle development team with the answer:
=== ODM Answer ===
From the Bug request # 12320392 - JDEV 11.1.1.4.0 INVALID ENTRIES IN SELECTONECHOICE
BDE team has answered as follows:
Currently there is no way to do this automatically for selectonechoice component. Which is why for this use case you should use af:inputListOfValues or af:inputComboboxListOfValues (ADF LOV Choice List).
Saturday, March 19, 2011
Jhug
http://www.jhug.gr/
It is a very active user group with great people that i had the pleasure to meet. Among others they organise monthly meetings in greece, discussing technology development and making presentations. I have attended 2 times and had the honor to make a presentation about jdeveloper 11g
http://adfbugs.googlecode.com/files/Jdeveloper%20IDE.pdf
I find this user group very usefull and helpfull and wish to continue like this.
Monday, February 14, 2011
Dependent LOV in table shows invalid values
This is reproduced in Jdeveloper 11.1.1.3 and 11.1.1.4
For example lets say that there is a business rule that ‘The manager of an Employee must be from the same Department.’
To implement this we usually have a list of value for departments and a list of values for Managers that is depended from the department field. Also added dependency on ManagerId attribute to DepartmentId attribute.
I have created an updatable table with the above fields and added auto-submit and partial trigger properties
So for example (testTable.jspx)
When Department is Administration there are 2 selectable employees (189,200) for manager Id
When Department is Marketing there are 3 different selectable employees (190,201,202) for manager Id
It works correctly as long as there is no validation error in manager id field.
To reproduce the problem, do the following:
1. Select row for employee 190 that has department Marketing and type in ManagerId field the value 200.
2. Select an other row. A validation error shows for Manager Id.
3. Select again the same row and change Department to Administration. (Validation error continue to show)
4. open ManagerId LOV. The values shown are wrong (190,201,202). The ManagerId LOV is not refreshed according to Department.
5. Select or Type a value in field (i.e. 201 that is invalid) and press commit. The invalid value cleared. The row is saved to database with null value for manager id.
This issue does not reproduce in form layout (testForm.jspx) since Manager Lov always becomes null when department is changed.
It is quite confusing for the users.
Test Case:
http://adfbugs.googlecode.com/files/DependentLOVtest.zip
Still reproduce in jdeveloper 11.1.2
The workaround we found for this is in managed bean to resetValue of the LOV component in the value change listener of choise list
Friday, February 11, 2011
Jdeveloper is Ready
On the first release of jdeveloper 11, I had made a post that jdeveloper is not ready.
http://forums.oracle.com/forums/thread.jspa?messageID=2836045�
After 4 patches I feel now that jdeveloper 11.1.1.4 and ADF is ready to use for development of large scale enterprise applications.
The basic bugs have been minimized and the IDE have been stabilized.
We migrated the 46000 files (1GB) adf application to 11.1.1.4 without any serious issue apart from fixing the jazn-data.xml according to note 1288757.1 - Policy Migration of the "jazn-data.xml" File Fails Silently in JDeveloper 11.1.1.4.0.
We are also working now with java 64 bit on windows and set the following configuration :
Set in jdev.conf file (in $Middleware_Home$\jdeveloper\jdev\bin) depending on java installation path:
SetJavaHome D:\Java64\jdk1.6.0_23
AddVMOption -XX:MaxPermSize=1024M
Set in ide.conf file (in $Middleware_Home$\jdeveloper\ide\bin) depending on the available memory:
AddVMOption -Xmx2048M
AddVMOption -Xms512M
The low memory messages have been minimized.
I would like to congratulate the jdeveloper team for their work and wish the best for the future.
Friday, January 28, 2011
Still reproduced bugs in jdeveloper 11.1.1.4
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
Custom Attribute Validation on LOVs
http://adfbugs.blogspot.com/2009/11/attribute-validation-on-input-list-of.html
Number precision and scale
http://adfbugs.blogspot.com/2009/10/number-precision-and-scale-bug.html
Range paging and Table Selected Row Bugs
http://adfbugs.blogspot.com/2009/07/range-paging-and-table-selected-row.html
Tab selection and Enable User Customization on Session bug.
http://adfbugs.blogspot.com/2009/09/tab-selection-and-enable-user.html
ExecuteEmptyRowSet and Range Paging.
http://adfbugs.blogspot.com/2009/09/executeemptyrowset-and-range-paging.html
Partial Page Rendering ChangeEventPolicy="ppr" bug.
http://adfbugs.blogspot.com/2009/07/partial-page-rendering.html
Saturday, January 22, 2011
Jdeveloper 11.1.1.4 resolved bugs
It seems many of them are resolved since I cannot reproduce them in the specific test chases. Those are:
Choice List Loose value in disclosed af:Query
http://adfbugs.blogspot.com/2011/01/coise-list-loose-value-in-disclosed.html
LOVs does not reset criteria values. Yet there is a new issue that second time you open LOV it displays same amount of rows as the first search but different.
http://adfbugs.blogspot.com/2010/11/lovs-does-not-reset-criteria-values.html
Activation creates duplicate row when primary key is populated through DB sequence
http://adfbugs.blogspot.com/2010/11/activation-creates-duplicate-row-when_15.html
http://adfbugs.blogspot.com/2010/11/activation-creates-duplicate-row-when.html
Passivation - Activation looses data of Subclassed Entities (Dimitris Stasinopoylos blog)
http://dstas.blogspot.com/2010/11/entity-inheritance-and-passivation.html
Choice list and LOV in query criteria bug
http://adfbugs.blogspot.com/2010/07/choice-list-and-lov-in-query-criteria.html
Range paging in LOVs throw SQL exception with specific steps
http://adfbugs.blogspot.com/2010/06/range-paging-in-lovs-bug-9467477.html
Choise list and checkboxes in popup turn to null after submit
http://adfbugs.blogspot.com/2010/05/choise-list-in-popup-turn-to-null-after.html
Single Row LOV in Query Criteria cannot clear value
http://adfbugs.blogspot.com/2010/05/single-row-lov-in-query-criteria-bug.html
User not populated to model and history collumns
http://adfbugs.blogspot.com/2010/05/user-principal-is-not-propagated-to.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
Removing a LOV return value leaves garbage in view object
http://adfbugs.blogspot.com/2010/03/removing-lov-return-value-leaves.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
Many Thanks to Oracle Developmnet team.
Sunday, January 16, 2011
New Patch Set PS3 of JDeveloper (11.1.1.4) is out there
http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html
From the release notes it seems to have a lot of bug fixes and some usefull new features.
http://www.oracle.com/technetwork/developer-tools/jdev/index-088099.html
http://www.oracle.com/technetwork/developer-tools/jdev/relnotes-14-jan-11-261400.html
From the basic components the most usefull new features for us will be:
• Column stretching of results table in search and select dialog
• Ability to configure column widths of inputComboboxListOfValues
• New API on the RichPopup component that complements the client-side API to show, hide and cancel a popup.
In the next weeks I will go through the bugs posted there and the SRs in Oracle Support to post what is fixed or not.
I hope there will be no new defects on existing functionality and that we can easily migrate applications to new patch
Tuesday, January 11, 2011
Choice List Loose value in disclosed af:Query (Fixed in 11.1.1.4)
In a simple Query page with Query panel and result table I put some criteria values:
Then i close the Search panel and i press Submit button
When i open Search panel again the selected value in department choise list is lost
Is this a nice bug or what?
Test Case:
http://adfbugs.googlecode.com/files/TestDisclosedCriteria.zip