- Avoid Blind SQL Call from ADF Task Flow Method. Keep an eye open on ADF Task Flow Method Call activities where methods from ADF Bindings are called. JDEV 12c sets deferred refresh for ADF binding iterators related to TF Method Call activities and this causing blind SQL to be executed. Blind SQL - query without bind variables.
Download - ADFTFCallBindingApp.zip
- Workaround for ADF 12c Choice List Blank Selection Issue. I would like to share a workaround for Choice List component in ADF 12c. There is specific issue, related to blank selection - as soon as user selects blank selection in the choice list, it starts to invoke value change listener for that list, each time when any other element is selected in the table. This is quite annoying and could lead to unexpected results, especially if you depend on logic implemented in value change listener.
Download - ADFChoiceList12cApp.zip
- Handling Format for BigDecimal Numbers in ADF BC. This may not be as straightforward as it sounds - to define a format for a number attribute in ADF BC. Especially if you are going to have large number (more than 15 digits). Most likely you are going to experience precision/scale and rounding issues, for BigDecimal and Number type attributes with format mask applied. Sounds frustrating? Yes it is. I hope my blog post will help you to implement proper number formatting.
Download - ADFFormattingApp.zip
- ADF 11g PS6 Table Pagination and Displaying Selected Row Issue - Solution. While ago, I had a blog post about new feature in ADF 11g PS6 (11.1.1.7) - table pagination support. There is an issue, when we want to open specific row and display it automatically in the table - required table page for the selected row is not opened correctly. However, blog reader suggested a fix, received from Oracle Support. Blog reader was kind enough, to post a comment with suggested fix, you can read it here - JDev/ADF sample - ADF 11g PS6 Table Pagination and Displaying Selected Row Issue. I decided to test this fix myself and provide updated sample application. The fix is to use range start from the iterator and set to it for the first property of the table with pagination. Actually, this fix does the job, but not completely perfect. Current row is displayed, only if Range Size for the iterator is set to 25, probably there is some hard coding somewhere. Ok, but at least it works.
Download - TablePaginationApp_v5.zip
- Alert for ADF Security - JSF 2.0 Vulnerability in ADF 11g R2. You must be concerned about your system security, if you are running ADF runtime based on ADF 11.1.2.1.0 - 11.1.2.4.0 versions. These versions are using JSF 2.0 with known security vulnerability - Two Path Traversal Defects in Oracle's JSF2 Implementation. This vulnerability allows to download full content of WEB-INF through any browser URL. There is a fix, but this fix is not applied by JDeveloper IDE automatically, when creating new ADF application. To prevent WEB-INF content download, you must set javax.faces.RESOURCE_EXCLUDES parameter in web.xml - make sure to provide all file extensions, you want to prevent to be accessible through URL.
Download - VulnerabilityTestCase.zip
- BPM 11g JDeveloper IDE PS5 Bug for Process ExecData. I was hitting ugly BPM 11g JDeveloper IDE PS5 bug recently. This bug is strange, because is reproduced just after JDeveloper restart for the working process. Imagine you have valid BPM process, everything works well - restart JDeveloper and suddenly BPM process is corrupted. In my specific scenario I was referencing system attribute from BPM execData - execData object is suddenly lost after JDeveloper restart. I don't have solution for this yet, just want to share with you the use case for this BPM 11g JDeveloper IDE PS5 bug.
Download - SimpleProcess.zip
- Issue with First Transient Attribute in ADF BC Entity Object. There is one interesting bug reproduced across all ADF versions - related to the order of attributes in ADF BC Entity Object. Specifically to the order of transient attributes within the Entity Object attributes list. If transient attribute is set as a first attribute in the Entity Object - it will break, when trying to commit transaction. SQL Select for Update executed from Entity Object will fail, because ADF BC includes invalid comma for the transient attribute defined in the Entity.
Download - FirstTransientApp.zip
- Good To Know - Conflicting View Objects and Shared Entity. While killing various issues and helping developers to get up to speed, during this week I encountered interesting ADF behavior - I would like to share it with you. Firstly it took some time to locate it and then I managed to reproduce it with sample application. Use case: 1 EO and 2 separate VO's, based on the same EO. You should admit, is quite common use case - often we share EO's across different forms and usually we implement dedicated VO's for each form (in most of the cases, hardly we can reuse the same VO with different View Criterias applied, because each form usually have different joins and different Master-Detail View Link relationships). Two separate VO's were conflicting during insert operation, more specifically - overridden create(AttributeList) method was invoked by the framework incorrectly. This method was overridden on VO (not on EO) level for a reason, because even VO's were based on the same EO - DB sequences for each of them were supposed to be different. I will describe it below - I hope it will be more clear at the end of this post, what I'm trying to explain (at this stage I believe is not) :).
Download - EOSharedAccessApp.zip
- Issue with Show Printable Page Behavior in ADF 11g R2 (11.1.2.2.0). You may experience strange issue in ADF 11g R2 (11.1.2.2.0, 11.1.2.1.0), related to printable page behavior. After af:showPrintablePageBehavior operation is applied, ADF fails to register Active Data for command component on runtime. It doesn't seem to break application completely, but obviously is annoying for the users. Same issue related to Active Data registration is reproduced after applying export to Excel operation. This seems to be a bug and most likely will be fixed in the next ADF versions. There are workarounds how to overcome Active Data registration bug, I will describe them at the end of this post.
Download - PrintPageBehaviorApp.zip
- Missing New Feature in JDev (11.1.2.2.0) - ADF Methods Security. New features are always good to have in JDeveloper - but missing new features, this is something really new :-) It looks like documentation is released faster than actual functionality. If you read What's New in This Guide in Release 11.1.2.2.0 document, it provides new documentation section about how to setup security for ADF Methods (see Chapter 35). There are nice step by step instructions available in Chapter 35, how to enable security for ADF Methods. This guide says you need to have command component to execute ADF Method, also ADF Security must be enabled. Finally documentation says - "The Resource Grants page of the overview editor displays all methods that your application defines.". Well, may be I'm missing some magic check-box, but methods are not listed in the overview editor. I will be really happy, if its just me - and there is hidden check-box that enables this functionality.
Download - ADFMethodSecurity.zip
- JDeveloper 11g R2 Bug - Wrong Scope for Managed Bean. During recent training event, I have noticed students were struggling with JDeveloper 11g R2 issue - sometimes Action method from the button was throwing exception about invalid Action method name. This happens because there is a bug in JDeveloper 11g R2 IDE, it sets wrong scope for Managed Bean expression call, when Managed Bean is defined in Backing or PageFlow scopes. I decided to document this and describe the reason for Managed Bean error in JDev 11g R2, because is not so obvious for new ADF developers how to identify and resolve this issue. This bug is registered in our Ora-Bug Tracker.
Download - JDev11gR2ScopeApp.zip