Developer Tools
JDeveloper
last updated: 15-APRIL-2011
This document lists known
issues for this release. As new issues
arise, they will be added to this document. We welcome and
encourage your
feedback.
Your input helps us make the
product better. Please use the JDeveloper
community discussion forum on
OTN for questions and answers, as
well as to
let us know what you think!
Please read the installation guide for details on system requirements and specific installation instructions for various platforms.
Some additional steps are required to install JDeveloper on Mac OS beyond what is documented in the installation guide. Please refer to the installation guide (http://download.oracle.com/docs/cd/E17904_01/install.1111/e13666/toc.htm) for additional details on installing JDeveloper for Mac OS X.
1. Make Java 6 the default VM.
2. Create a symbolic link for classes.jar
If you start Oracle JDeveloper in Japanese language on MS Windows (jdev -J"-Duser.language=ja”), the OK button is not visible on the Import and Export dialogs. To workaround, either re-size the dialog so the OK button re-appears or double-click the file name in the dialog to select it.
An example of such a file is:
def1 = value1
\\
def2 = value2
If you get ORA-29552: verification warning: java.lang.UnsupportedClassVersionError when deploying Java to the database, you need to change the version of the JDK used for that project to a version compatible with that used by the database.
This version of JDeveloper uses Java JDK Version 1.6. The following table shows Java JDK version used by different database versions:
| RDBMS
Version |
Java
JDK Version |
|---|---|
| 9.2 |
1.3.1 |
| 10.2 |
1.4.2_04 |
| 11.1 |
1.5.0_10 |
| 11.2 |
1.5.0_10 |
For information about changing the Java SE on a project by project basis, see the topic in the online help "Setting the Target Java SE for a Project".
You
can download previous releases of Java SE from http://www.oracle.com/technetwork/java/javase/downloads/previous-jsp-138793.html
.
When
you migrate an application that contains offline database objects from
JDeveloper 10.1.3 you will see
one or more warnings in the messages log:
oracle.jdevimpl.offlinedb.browser.DBObjectFileWrapper getProvider
WARNING: Offline Database file does not
exist for file filename [offlineObjectType]
These appear because of the different way that offline databases are
handled in this version, and can be safely ignored.
JDeveloper
does not look at the value of CLASSPATH or JAVA_HOME to determine its
classpath or jdk; it stores this
information in proprietory locations.
The WebLogic domain installation scripts, however, extend the supplied
value of the CLASSPATH and JAVAHOME variables, and WebLogic domain
creation will fail if JAVAHOME contains ')' or
CLASSPATH contains a
space. The former happens when, for example, the 32bit JDK is installed
in its default path,
for example:
C:\Program
Files (x86)\Java\jdk1.6.0_18
The latter if an application such as Apple QuickTime adds itself to the
to the CLASSPATH environment variable, for example:
CLASSPATH=.;C:\Program Files
(x86)\QuickTime\QTSystem\QTJava.zip
In either of these cases,
creation of the Integrated WebLogic Server domain fails with a message
similar to:
[waiting for the server to complete its initialization...]
\Java\jre6\lib\ext\QTJava.zip was unexpected at this time.
Process exited.
The
workaround is to install the JDK in a path withpout ')', and remove the
Apple QuickTime entry from the classpath,
and restart JDeveloper.
If you are deploying your application to an IBM WebSphere application server, you must modify the application's connections.xml file before you deploy. JDeveloper automatically creates entries in connection.xml that is compatible with WebLogic Server. You must modify this file to be compatible with WebSphere.
JDeveloper creates a connections.xml with entries similar to the following:
<StringRefAddr addrType="jndiName">
<Contents>
AppModuleServiceBean#project1.common.serviceinterface.AppModuleService
</Contents>
</StringRefAddr>
In the visual editor, change the StringRefAddr addrType="jndiName" tag Contents value similar to the following:
<StringRefAddr addrType="jndiName">
<Contents>
project1.common.serviceinterface.AppModuleService
</Contents>
</StringRefAddr>
When you enable ADF Security for your web application, the web.xml file includes the Java EE security constraint allPages to protect the Java EE application root. By default, to support deploying to Oracle WebLogic Server, JDeveloper specifies the URL pattern for the security constraint as / (backslash). If you intend to deploy the application to IBM WebSphere, the correct URL pattern is /* (backslash-asterisk). Before you deploy the application to WebSphere, manually edit the web.xml file for your application to change the allPages security constraint as follows:
<security-constraint>
<web-resource-collection>
<web-resource-name>allPages</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
. . .
</security-constraint>
A complete Fusion web application is an application that uses the ADF Controller, ADF Model, and ADF Faces modules. A Fusion web application that does not include the ADF Model Runtime fails to start with an NoClassDefFoundError on the IBM WebSphere application server. This happens because the IBM WebSphere application server's JVM attempts to locate all classes rather than just those that the application uses.
Two workarounds are available to resolve this issue:
If a client that runs on the server-side needs to access SOAP-supported ADF BCService, the application requires a web module and you must add an ADF Connections MBeans listener to the web.xml file.
<listener>
<description>ADF Connection MBeans</description>
<display-name>ADF Connection MBeans</display-name>
<listener-class>oracle.adf.mbean.share.connection.ADFConnectionLifeCycleCallBack</listener-class>
</listener>
In order to deploy an application that uses EJB 2.1 artifacts to WebSphere, you must:
If you are working behind a proxy server you need to enable Use HTTP Proxy Server and set the appropriate values in the Web Browser Proxy page of the Preferences dialog, which is available from the Tools menu. In addition, if you are deploying to a Weblogic server connection configured to use SSL you should use the form *.<company_name>.com in the Exceptions field otherwise the connection will fail.
When upgrading a JAX-RPC Web service developed using JDeveloper from Oracle Containers for J2EE (OC4J) to Oracle WebLogic Server 10.3.x, the following warning may be displayed. This warning is displayed when the OC4J Web service contains whitespace or carriage return characters within the code. This warning can be ignored.
WARNING: A Text node was set to a value that is all whitespace. The DOM will be out of sync with the Text Buffer. The Text Node on reparse will also be removed from the DOM.
When testing Web services in JDeveloper, if you have a schema with nested levels of complex type and the nested type is an array, the generated test SOAP message may use the outermost namespace in the inner nested type instead of the actual namespace of the child element.
For example:
<ns1:outermost>
<ns2:nested1>
<ns2:nested2>....</ns2:nested2>
<ns2:nested2>....</ns2:nested2>
</ns2:nested1>
</ns1:outermost>
Instead of the correct ns2:nested2 namespace, the SOAP message is being generated ns1:nested2 namespace, as shown below:
<ns1:outermost>
<ns2:nested1>
<ns1:nested2>....</ns1:nested2>
<ns1:nested2>....</ns1:nested2>
</ns2:nested1>
</ns1:outermost>
As a workaround, manually correct the inner ns1:nested2 references to ns2:nested2 in XML format before testing.
Unless they are operating on the same schema avoid creating multiple top-down web services in the same project as each successive top-down service may overwrite the ObjectFactory class created by the previous one if generated into the same package.
When calling conversational web services from HTTP Analyzer, the request message headers for the 'continue' methods need to be manually updated with the conversation id that is specific to that particular conversation. This value is available from the response SOAP message of the method that starts the conversation.
From the response message of the conversation start method, copy the xml tags similar to the one below:
<conv:ContinueHeader xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/">
<conv:conversationID>uuid:701f9f3d434bfc98:-3f39a0ef:11c4b649fd4:-7fff</conv:conversationID>
</conv:ContinueHeader>
From the HTTP Content tab in HTTP Analyzer, insert the above tags within the header element of the SOAP request message, as below:
<env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<!- other header
elements-->
<conv:ContinueHeader
xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/">
<conv:conversationID>uuid:701f9f3d434bfc98:-3f39a0ef:11c4b649fd4:-7fff</conv:conversationID>
</conv:ContinueHeader>
</env:Header>
<env:Body>
<!- message data
details ->
</env:Body>
</env:Envelope>
Because of the OC4J proprietary nature of some of the properties set on web services that were created with previous JDeveloper releases (which supported OC4J), it is likely that there will be problems when attempting to deploy and run such services on WLS (including the integrated WLS that is bound with JDeveloper). Known problems include JAX_RPC services that have annotations, stateful services, DIME encoding, OWSM Policy (both 10.1.3 and 11 styles including WS-Security and WS-Reliability).
When using JAX-RPC web
services
deployed to weblogic using the
generators in JDeveloper you may have trouble with method signatures
that contain "bare" array types. For example: public class Hello
These will either not deploy or when deployed will not work properly
with errors complaining about mapping issues. There are a few
workarounds for this problem:
It is not possible to successfully invoke a JAX-RPC style conversational (stateful) web service deployed in weblogic server from a JAX-WS style proxy client. The design time JAX-WS proxy creation does not currently warn the user if the supplied WSDL document contains conversational behavior advertisement. Even though the tool leads to a successful generation of JAX-WS client artifacts, invoking the service from this client results in a SOAPFaultException. Only the conversation 'start' methods will get executed successfully. Invoking any other conversational methods after a conversation 'start' method will result in error.
The workaround is to use a JAX-RPC style proxy client to call a stateful service deployed in the weblogic server.
The BPEL server included in 10.1.3 SOA only knows how to use the '2003 draft version of the WS-Addressing specification. The JAX-WS async client will be default generate a client that by modifying the WS_ADDR_VER constants to support either the final '2005 or the member submission '2004 version of the specification. To support the '2003 version the user will need to make some minor modification to the code in order to invoke the process properly.
In the callback handler you
need fix the code that requests the
relatesToHeader as shown here:
// HeaderList ...
//Header relatesToheader = headerList.get(WS_ADDR_VER.relatesToTag,
true);
//String relatesToMessageId = ralatesToheader.getStringContent();
String relatesToMessageId = RelatesTo.getValue();
This uses the header which
get
automatically bound to a method
parameter. Now the BPEL service explicitly defines both the ReplyTo and
MessageID headers in the WSDL so the default proxy generator will map
these to method parameters. Assuming that you accept this default you
need to pass both the replyTo address and the message ID in as
parameters to the method rather than as header as you will see in the
generated code. The only exception for this is the WS-Addressing action
header which if it is required should be set using the '2003 namespace.
Here is an example that invokes a loan process that has the required
edits.
americanLoan = new AmericanLoan();
LoanService loanService = americanLoan.getLoanServicePort();
// prepare Message Id
AttributedURI messageId = new
AttributedURI();
messageId.setValue( "uuid:" + UUID.randomUUID() );
// prepare ReplyTo
AttributedURI address = new
AttributedURI();
address.setValue("http://x.x.x.x:7101/Application23-Project1-context-root/LoanServiceCallbackPort");
EndpointReferenceType replyTo = new EndpointReferenceType();
replyTo.setAddress( address );
// prepare action header
WSBindingProvider wsbp =
(WSBindingProvider)loanService;
wsbp.setOutboundHeaders(
new StringHeader(
new QName( "http://schemas.xmlsoap.org/ws/2003/03/addressing", "Action"
),
"http://services.otn.com/LoanService/initiateRequest" ));
// Prepare payload
LoanApplicationType payload = ...
// Invoke service with
replyTo
and messageID parameter
loanService.initiate(lt, replyTo, messageId);
The following information should be added to the section "How to Use an XML Catalog File":
NOTE:
When creating the client and proxy classes for multiple web
services on a local system that share the same endpoint, to ensure
that URL is unique for each web service in the jaxws-catalog.xml file,
the
service QName is appended as anchor text.
For example:
http://foo.org/helloworld?wsdl![]()
Might
become:
http://foo.org/helloworld#%7Bhttp%3A%2F%2Fexample.com%2F%7DHelloService?wsdl
.
When you editing a spring bean definition you might experience hangs as
the
code incorrectly tries to download files from the internet.
(In particular
datatype.dtd) You need an active network connection to make use
of the Spring
tools.
At
present, the list of values (LOV) for
"Planned For" items in the Rational Team Concert connector shows
releases from all projects,
not the project to which the work item belongs.
To duplicate the issue: Define different releases for different
projects. Find one work item (for example, Task or Defect) and then
click the
"Planned For" LOV on the work item detail page. Click the
Clear button and observe the result list. It shows all releases from
all projects.
It should only show the release defined for the project
this work item belongs to.
This is a defect in Rational Team Concert. If you have access to the
Jazz tracking Web site, please refer to the following bug:
http://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=125797
When
you create a new work item in the RTC connector of Team
Productivity Center, the value specified for "Team Area" in
OSLC RTC
connector detail page is not saved.
This
is a defect in Rational Team Concert. If you have access to the Jazz
tracking Web site, please refer to the following bug:
http://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=126917![]()
In prior releases (11.1.1.3 and older), a Team Productivity Center client from an older release cannot connect to a Team Productivity Center server from a newer release. The client must upgrade to at least the same release number as the server. In order to upgrade the client, however, users must upgrade JDeveloper. Many customers cannot upgrade JDeveloper immediately.
Beginning with release 11.1.1.4, the Oracle Team Productivity server supports backward compatibility mode. The server will accept connections from any older clients that have been enabled for this support as well. Currently, Team Productivity Center server from the 11.1.1.4 release will only accept connection from clients up to release 1.1.1.4. This means customers with Team Productivity Center clients with release 11.1.1.3 can connect to TPC server from release 11.1.1.2 and older, but cannot connect to TPC server from release 11.1.1.4. Customers must submit a patch request to the Oracle Support team to have the fix for bug 10064542 backported to TPC release 11.1.1.3 or older in order to connect to Team Productivity Center server release 11.1.1.4 or newer.
Using
the JIRA Web user interface, any user in the groups
jira-developers or jira-administrators is able to browse full list of
the group
jira-users to assign an issue to any one of them.
Due to a restriction in the JIRA API, users of Oracle Team
Productivity Center must be members of the group jira-adminstrators
before
they can have access to the full list of users when they open a
list of values (LOV) to assign users to an issue.
As a workaround, make sure to add any Team Productivity Center user who
will have responsibility for assigning users to an issue being
tracked
in JIRA to the group jira-administrators.
If you are administrator for a team that uses the Subversion version control system with Oracle Team Productivity Center, you need to follow two-step process for the creation of the repository connection, that is different from the process for working with other types of repositories:
1.
Create a versioning connector of type 'SVN' in the Repositories tab of
the Team Server Administration Dialog.
2. From the Teams tab, select the Team Repositories tab and enter the
URL to the server.
This lets the team use the URL to the area of the repository that is of relevance to them. It might be that they wish to use the 'root' of the repository or perhaps to restrict the view of the repository to just that relevant to the team.
Excel
validation does not
get applied to the placeholder row in an ADF Table component that
contains data. (bug 7509432)
Given an ADFdi Table component with Excel "Data Validation" rules
applied to one or more columns: if the user downloads data
and then
inserts new rows just under the header row, the new rows do not have
the Excel Data Validation. Additionally, if the
workbook developer
performs the same set of steps in test mode and then returns to the
designer, the data validation rules are
lost altogether.
Workaround:
Do not insert rows just under the column headers. Instead, insert new
rows anywhere in the middle or at the end of the table.
At this point, an unexpected exception occurs.
Workaround:
To resolve the situation, dismiss the error dialog and remove the
filter from the table. Then, click the Stop button again to return to
design-time mode.
Microsoft Excel does not invoke the "before right click" event when a user invokes a context menu from a keyboard. Users should use either the keyboard or the mouse's right-click button to invoke a cell's context menu. Do not use both in the same user session. This behavior occurs at design time and runtime in integrated Excel workbooks. (bug 7511508)
Oracle
ADF Desktop
Integration does not support the conditional formatting features
provided in Excel by clicking Home > Conditional Formatting.
(bug 6869548)
Workaround: Use Excel named styles in combination with ADFdi expressions in the component's style properties
Users may encounter unexpected reports of errors under certain circumstances during the Upload operation for an ADF Table component. The Upload operation processes rows in batches. After posting changes from a batch, ADFdi executes the action specified by the CommitBatchActionID. Errors that occur during the commit action may continue to be reported on subsequent batch commit actions, even though those batches of records do not contain the error. (bug 8262587)
Cause: any pending model changes that exist when the CommitBatchActionID gets called are not automatically reverted when commit fails.
Workaround: Create a custom action for the CommitBatchActionID that first attempts to commit the pending model changes. However, if an exception occurs during commit, the custom method should first rollback the pending model changes, so that any subsequent batch commit attempts can succeed. Note: it is important that the commit exception gets re-thrown after rollback so that the commit error(s) will get reported as expected on the client.
Summary:
ADFdi does not
support variables in the page definition declared with the syntax of
variableUsage. (bug 6377073)
Details:
If the developer creates variableUsage in the ADFdi-related page
definition, it will produce NullPointerExceptions in the server at
runtime.
Workaround:
Instead create variables using the <variable> element in
the page definition.
The
property inspector and
expression builder features in the ADFdi Designer are driven off of the
saved component metadata. As a result, there are some
known issues when dealing with new objects or values. In each case, the
work-around is to save the object and then re-open.
Sample issues:
At design-time, some
property inspectors provide access to
"collection editors" (bug 8254551)
For example, the Workbook properties include
"Branding Items". The items can be edited in a pop-up collection
editor.
When making changes to existing items via this collection
editor and then pressing the Cancel button, the changes to the
collection are not canceled as expected.
Workaround: cancel the parent property editor to cancel the undesirable changes from the collection editor.
ADFDI-00134: An attempt to connect to the web application has failed.
Solution: Navigate to a web
page from the same application using Internet
Explorer. This action will install the certificate locally.
Subsequent
attempts to use the integrated workbook will succeed.
The
following known issues may be encountered when working with the
ADF Read-only Table Component. To avoid these issues, consider using
the ADF Table component in a read-only configuration.
Summary: if the workbook
developer switches the View mode of Excel
to "Page Layout", ADF Button components may be rendered
in an
unexpected position (bug 7482216).
Workaround: Switch Excel back to Normal View mode. Then, Run and Stop the workbook so that the buttons will redraw correctly.
Consider the following sequence of events (bug 10623397):
Result: Any date-time values
from modified rows will be considered to have changed by the difference
in the time zones.
Analysis: Date-time values in Excel do not have any notion of time
zone. ADFdi always uses the local computer's time zone
to adjust
date-time values before communicating with the server.
Workaround: Complete the upload of any pending changes before altering
the local computer's time zone settings. After altering
the local
computer's time zone settings, be sure to re-download worksheet data
before making any modifications.
Date and number formatting (convertDateTime, inputDate, etc.) do not work with the 17 new locales added in JDK1.6. Locales supported in JDK 1.5 do not have this issue.
The profiler file logger can be used only in a non-portal environment on FF and IE browsers with at least 1.5._06 JRE on the client box and privilege to write to the user home directory. The resulting file format is subject to change without any notice and not intended to be used with any xml parser tool. In order to use the feature, the user has to accept the certificate.
Application developers must be cautious when assigning access keys to menus. Hot keys may be intercepted by various browsers or even the operating system. One such hotkey, ALT-D, will send focus to the address bar in both IE and FireFox 2. For this hotkey, we have removed the references in our demos. But many more hotkeys may be restricted so it is a good idea to try them out on all of your supported browsers.
ADF Faces components expect applications to use primary keys on the model which are pre-populated for new records and do not change with any record updates. If an application cannot pre-populate primary keys in the data objects for any reasons and the data objects are bound to tables, trees or treeTables, it needs to have the following configuration to workaround potential failures due to primary key value changes:
Here is an example:
<af:table value="#{bindings.EmpView1.collectionModel}" var="row"
... partialTriggers="it1">
<af:column sortProperty="Empno" sortable="true"
headerText="#{bindings.EmpView1.hints.Empno.label}"
id="c1">
<af:inputText value="#{row.bindings.Empno.inputValue}"
... autoSubmit="true" id="it1">
<f:validator binding="#{row.bindings.Empno.validator}"/>
<af:convertNumber groupingUsed="false"
pattern="#{bindings.EmpView1.hints.Empno.format}"/>
</af:inputText>
</af:column>
...
<af:column sortProperty="Deptno" sortable="true"
headerText="#{bindings.EmpView1.hints.Deptno.label}"
id="c8">
<af:selectOneChoice value="#{row.bindings.Deptno.inputValue}"
label="#{row.bindings.Deptno.label}"
shortDesc="#{bindings.EmpView1.hints.Deptno.tooltip}"
id="soc1">
<f:selectItems value="#{row.bindings.Deptno.items}" id="si1"/>
</af:selectOneChoice>
</af:column>
</af:table>
The Application View Cache won't work for any page where the rendering of the component tree causes the structure of the component tree to change temporarily. Since this is often the case and the application developer has no way of telling when this will occur, USE_APPLICATION_VIEW_CACHE should never be used. It also only helps initial render performance and does not help the session size.
New Window Detection logic only works in Rich Client applications, but not in Trinidad applications For Trinidad applications, the following parameter should be added in web.xml to disable New Window Detection logic.
<context-param>
<param-name>oracle.adf.view.rich.newWindowDetect.OPTIONS</param-name>
<param-value>off</param-value>
</context-param>
The table component has some known issues in emailable page mode.
ADF Faces components do not support persisting customization changes if the component is contained inside of (anywhere in the subtree of) af:forEach or af:iterator. However, if the repeating component and the repeated component are located across document, for example, in different jsff or jspx files, then we can't detect this case and will allow the customization persistence.
Because of a limitation in the IE userData persistence behavior, the userActivity data for previous requests may be partially or sometimes completely unavailable when accessed from pages with a different URL than when it was originally saved.
If af:SelectBooleanCheckbox is used, the component needs to have partialTriggers on all buttons of the component's form.
ADF Faces users can typically produce accessible table content by specifying column headers for every column in their AF:table. However, in certain complex cases, such as when the AF:table contains total or subtotal rows, the cell containing the labels for these rows may be inappropriately associated with the containing column's column header. For example, assuming a column contains employee names and has the header text "Employee Name", a cell containing the text "Total" will be inappropriately identified to screen reader users as being an "Employee Name". In order to avoid confusion, such cells should not be associated with any column header. ADF Faces does not provide any mechanism for suppressing column headers for such cells.
When interacting with an AF:table, AF:tree, or AF:treeTable, using the up/down arrow keys to change the selection can result in a round trip to the server. ADF Faces already optimizes to reduce the number of round-trips by only sending a single request at a time, and also by dropping requests for intermediate selection states that occur while a request is outstanding. However, in some cases keyboard users may find the current behavior inefficient, since a request is sent to the server as soon as the request queue frees up. Ideally, no request would be sent until after the user has reached the item that they intend to select - ie. until after the user has paused keyboard activity for some short period of time.
Currently read-only input components, such as AF:inputText, are rendered by ADF Faces as plain text. As such, there is a loss of information that may be meaningful to screen reader users - ie. screen reader users have no way to determine that the text in question corresponds to a input control. In addition, since plain text content is not included in the tab navigation order, screen reader users may fail to recognize that this read-only content is present on the page.
When disabling row selection in the AF:treeTable by setting the rowSelection attribute to "none", the resulting AF:treeTable content is not keyboard navigable. In particular, it is not possible to use the keyboard to navigate to and expand/collapse nodes in the AF:treeTable. This issue can be avoided by not disabling row selection for this component.
There is a known limitation for Automatic Partial Page Rendering support on components which are associated with actions, examples are buttons, hyperlinks. This limitation occurs when the binding associated with the component is recreated, which should happen very rarely, e.g. dynamic form, dynamice region, DT@RT. There are two types of workaround that can be applied:
When
there are multiple components share the same iterator binding in
one page, the application needs to use partialTriggers to sync up UI
states.
One example is a form and a table based on the same iterator
binding, the table's partialTriggers needs to point to the form's
navigation buttons,
for table selection to sync with form.
Due to WAS's specific implementation of HttpServletResponse class, server side redirect for UTF-8 encoded URL with MBCS characters does not work correctly. Because of this, when you access a page with multibyte character set name, you may get Http Error 404, or "Failed to find resource" error.
For some usages of ADF, when
the unified EL classes (javax.el.*) are
not on the classpath (i.e. applications not running in the application
server), this new dependency can result in a NoClassDefFoundError for
javax.el.ELContext when oracle.adf.share.ADFContext is initialized. For
JDeveloper projects the issue may be resolved by adding the 'JSP
Library' to the project library. For applications running on the WLS
platform, the issue may be resolved by adding
'$WLS_HOME$/modules/javax.jsp_1.2.0.0_2-1.jar' to the classpath. For
applications running on the WAS-ND and WAS-AS platforms, the issue may
be resolved by adding $WAS_HOME$/plugins/javax.j2ee.jsp.jar to the
classpath.
WLST commands for managing URL connections leave console output disabled after invocation, so other WLST commands that normally generate output, such as help() or ls() may appear to be broken. Subsequent commands should still be running, even though console output is not visible. Commands which leave output disabled include adf_createFileURLConnection(), adf_createHttpURLConnection(), adf_setURLConnectionAttributes() and adf_listURLConnection(). Workaround is to exit and start a new WLST session after invoking URL connection commands.
If
you change the Project Property
settings to generate a different resource bundle type, JDeveloper
currently does not overwrite
the element in the component's XML definition file.
In your data model project, when you want to create localizable
resource strings such as validation messages, you use the Resource
Bundle page in the Project Properties dialog to specify a resource
bundle type (properties text file, ListResourceBundle class file, or
XLIFF based file) and other options. After you create the resource
string in the overview editor for a particular business component (like
the entity object), the overview editor saves the resource bundle
definition in the component's XML definition file as the element. For
example, for the DeptEO entity
object, this definition appears for the ListResourceBundle class type
resource bundle:
<ResourceBundle>
<JavaResourceBundle MsgBundleClass="test.eo.common.DeptEOMsgBundle"/>
</ResourceBundle>
To change existing resource bundle properties in the Project
Properties dialog, you must delete the original Message Bundle
file, delete the
At runtime, your application may throw a class cast exception if you
extend an Application Module in JDeveloper and that AM already has a
base class definition. This error occurs because JDeveloper fails to
update the ComponentClass definition in the AM XML definition file. For
example, your team may use the Project Properties dialog to define a
base class so that all generated application modules extend the same
class. Later, you may try to override this base class for a specific
application module using the Select Java Options dialog (launched from
the Java page of the application module overview editor), but the XML
definition fails to update with your selection. Note that this error in
the XML will only occur when you intentionally do not select the
"Generate Application Module Class" option in the Select Java Options
dialog.
To ensure your application module extends the desired base class,
you must edit the XML source in the overview editor for the application
module. For example, edit the ComponentClass value to match the
DesignTime Value:
<AppModule
xmlns="http://xmlns.oracle.com/bc4j"
Name="MyAM"
ComponentClass="mycompany.model.ApplicationModuleImpl"
ClearCacheOnRollback="true">
<DesignTime>
<Attr Name="_deployType" Value="0"/>
<Attr Name="_superClassName"
Value="mycompany.model.ApplicationModuleImpl"/>
</DesignTime>
...
</AppModule>
When you run the Business Component Browser to test your application module on a machine running under 64 bit Linux, a bug in the Linux OS prevents credentials from being entered in a password field that displays in a popup box. The nonobvious workaround for this issue involves changing the OS locale. By default, the OS sets the environment variable LC_ALL to "C". If you change it to "en_US" and then restart JDeveloper, the password field will accept input. To perform this action, at the 64 bit OS csh prompt, type:
setenv LC ALL en US
ADF Business Component service interface now supports MDS integration, which allows users to build customizations of service schemas at runtime. With this new feature, you can no longer use SDO's global helper context in ServiceFactory clients. You must modify any source code in ServiceFactory clients using DataFactory.INSTANCE, XMLHelper.INSTANCE, XSDHelper.INSTANCE, etc. Instead, the SDO helper related code has to use the new oracle.jbo.client.svc.ServiceFactory APIs. For details, see the new getServiceProxy() call example in section 11.3.6 "How to Invoke Operations of the Service-Backed Components in the Consuming Application" in the Oracle Fusion Developer's Guide for Oracle ADF.
In the previous release of ADF Business Components, there was a bug that if you had a join view object (i.e. a non-expert mode view object with more that one entity usage) and any of the entity usages other than the first were marked updateable then we did not automatically mark the primary key attributes from the entity object as key attributes. If you have a view object that is incorrectly marked, then you should open the view object editor, select the key attribute on the attributes page and mark it as a key attribute.
If you want to remove a workspace-level CustomizationLayerValues.xml file, use the file system to delete the file, then close and reopen the application in JDeveloper. You cannot delete the CustomizationLayerValues.xml file from the Application Resources panel of the Application Navigator.
When
you run an MDS-enabled application from JDeveloper in the
Integrated Weblogic Server, runtime customizations are saved to a
directory
configured on the Run > MDS page of the Application Properties
dialog. The default location of the MDS Repository Directory is ORACLE_HOME\jdeveloper\systemXX.XX\o.mds.dt\adrs\Application\AutoGeneratedMar\mds_adrs_writedir.
You can optionally provide an
alternative directory in the Override
Location field.
To
manually remove runtime customizations
from the previous run, delete all files in the configured MDS
Repository Directory location.
If you want to delete runtime customizations from the previous run
every time you run the application from JDeveloper in the Integrated
Weblogic Server, select Delete customizations before each run on the
Run > MDS page of the Application Properties dialog.
When you enable ADF Security for your web application, the web.xml file includes the Java EE security constraint allPages to protect the Java EE application root. By default, to support deploying to Oracle WebLogic Server, JDeveloper specifies the URL pattern for the security constraint as / (backslash). If you intend to deploy the application to IBM WebSphere, the correct URL pattern is /* (backslash-asterisk). Before you deploy the application to WebSphere, manually edit the web.xml file for your application to change the allPages security constraint as follows:
<security-constraint>
<web-resource-collection>
<web-resource-name>allPages</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
. . .
</security-constraint>
Before you migrate the jazn-data.xml file to a production environment, you want to check that the policy store does not contain duplicate permissions for a grant. If you created a duplicate permission (one that has the same name and class), the administrator migrating the policy store will receive an error and the migration of the policies will be halted. You should manually edit the jazn-data.xml file to remove any duplicate permissions. For example, this sample shows a duplicate grant named "duplicatePolicy":
<grant>
<grantee>
...
</grantee>
<permissions>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>duplicatePolicy</name>
</permission>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>duplicatePolicy</name>
</permission>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>writePolicy</name>
</permission>
</permissions>
</grant>
Before
you can migrate the above sample, the file should appear as (with the
extra "duplicatePolicy" permission deleted):
<grant>
<grantee>
...
</grantee>
<permissions>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>duplicatePolicy</name>
</permission>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>writePolicy</name>
</permission>
</permissions>
</grant>
For J2SE applications using ADF security, if you make authorization grants in the jazn-data.xml file to a user or to an enterprise role, then you need to add the property name "oracle.security.jps.policy.principal.cache.key" with value="false" on "policystore.xml" serviceInstance in your application's src\META-INF\jps-config.xml file, as shown below:
<serviceInstance provider="policystore.xml.provider" name="policystore.xml">
<property value="./jazn-data.xml" name="location"/>
<property value="false" name="oracle.security.jps.policy.principal.cache.key"/>
</serviceInstance>
For example, if you use the jazn-data.xml overview editor to grant to users and then run the ADF BC Business Component Browser (a J2SE application), you would need to make this change. Note that this change is not necessary when the grants are made to application roles, when you are developing a Fusion web application, or when you develop any JEE web application that uses a non-XML based respository, such as the Oracle WebLogic Server LDAP repository.
When your application uses ADF Security to enable security for entity objects or their attributes, you use the Edit Authorization dialog to grant privileges (read, update, delete) to roles that your application defines. However, when you open the overview editor for the jazn-data.xml file, the Resource Type field (visible in the Resource Grants page) will not detect the needed permission classes EntityPermission and EntityAttributePermission and displays these items in red to indicate they are not found. If you need to use either of these resource types, click the "+" button next to the Resource Type list and locate these permission classes:
permission class (oracle.adf.share.security.authorization.EntityPermission
permission class (oracle.adf.share.security.authorization.EntityAttributePermission
When you run the ADF Security wizard and choose the ADF Authentication option (because you do not want to enable ADF authorization) and your application uses a custom login page or a custom error page, you may need to edit the default Java EE security constraint added to the the web.xml file by ADF Security. The default URL pattern "/*" defined in the allPages security constraint covers everything under "/" and that may include the resources, such as images, CSS files, or JavaScript libraries, used by the login page:
<security-constraint>
<web-resource-collection>
<web-resource-name>allPages</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>valid-users</role-name>
</auth-constraint>
</security-constraint>
If the pages you create use resources such as an image, CSS file, or JavaScript library, the default allPages security constraint in the web.xml file would prevent those resources from loading at runtime. To allow your application to display those resources, you should save the resources in a folder of their own and then edit the allPages security constraint so that the resources folder is not contained in the URL pattern.
Note that this resource issue does not apply when you run the ADF Security Wizard and choose the ADF Authentication and Authorization option. Specifically, in that case, the default generated constraint is on the ADF Authentication servlet and the constraint (/adfAuthentication) excludes any resources.
ADF Mobile Client implements a subset of the ADF's Model View Controller architecture that runs on servers. Therefore, certain ADF functionality is not supported, and developers should not assume a functionality supported in the server-based ADF library is also supported in ADF Mobile Client. Developers are advised to review the ADF Mobile Client Developer Guide for exact list of supported ADF functionality.
When creating ADF Business Components from ADF Library, developer can either select this functionality from "Current Project Technologies" tab or from "All Technologies" tab. If "All Technologies" tab is selected, the subsequent wizard will fail with "Null Pointer Exception". Workaround is always to ensure the ADF Mobile Model technology scope is added to the project, and use the "Current Project Technologies" tab to launch the "Business Component from ADF Library" wizard.
In the Japanese version of JDeveloper, developer may see two Application Sources folder in the ADF Mobile Client projects. There is no workaround for this issue, and developers using the Japanese version should just pick one of Application Sources folder to work with. They are essentially duplicates of each other, with identical contents. Developer can add files to either folder, and content in both will be updated as expected.
In the View Object editor, developer can delete existing bind variables from several places in the Query tab. If you click on the pencil icon to edit the query, the Edit Query screen will give you the option of removing the bind variable. However, if you attempt to remove bind variable here, it will not work. Workaround is to delete bind variable directly from the View Object - Edit Query - Bind Variables screen. The impact is fairly minor because in most cases you would directly delete the bind variable.
ADF Mobile Client currently supports only Oracle Named bind variable style in the View Objects. This is based on limitations around the SQLite database. The View Object editor generally restricts developers to use supported bind variable style. However, when developer selects the Query tab in the View Object Editor, the Property Inspector will display un-supported bind variable styles. Developer should avoid using Property Inspect to set the Bind Variable style, to avoid using an unsupported bind variable format, which will result in runtime SQL errors.
When developer updates the attributes of an user interface component using property inspector and then hit the enter key, the focus or selected component in the user interface designer may be reset to the "Home" or top position, instead of staying focused on the selected component. This does not have any other effect, except developer may need to re-select the component.
In
the ADF Mobile Client Database Connection definition screen, if the
client database is populated by database initialization scripts,
developer has to enter a database file path in the deployment profile.
This developer-entered database path is not verified by JDeveloper.
Developer should refer to device OS specific documentation for
allowable locations and formats of the database file. For example, for
BlackBerry devices, database file must reside in the SD Card. Path
would have the format "/SDCard/
When developer drag and drop data control based on View Object/Application Modules to the screen, a context menu is displayed to allow developer to pick the desired functionality. This content menu reflects components that can be supported by this attribute - for example, if List of Values (LOV) is set up for a particular attribute in the View Object, then selectOneChoice component is available in the content menu as an option. However, selectOneChoice option is still displayed for attributes that do not have List of Values (LOV) set up. There is no workaround for this issue - developer will need to ensure that they pick selectOneChoice only for the attributes configured with LOV.
ADF
Mobile Client application can use a mobile client database initialized
by DB initialization scripts. Developer would specify this path as part
of the deployment profile. This path is based on the location of the
script within the compiled MobileClient project file. For example, if
developer places the DB initialization script in the META-INF folder in
the project, then the path specified in the deployment profile should
be /META-INF/
ADF Mobile Client Database connection specifies key information about the location of the mobile client database. Once created at either at the application or IDE level, it can be viewed and access from almost all expected locations, except from within the Database Navigator view. Workaround is that developer should simply view and access these database controls from within the wizard and from Application Resource Palette, but not from the Database Navigator. There is no other unexpected effect from this issue.
When the operating system of developer's PC is set to use any double-byte character languages (such as Chinese), the XML encoding is set to the character set of that double-byte language. This is not supported by the ADF Mobile Client runtime. Workaround is for developer to manually change the encoding of the Mobile Client Task Flow XML to UTF-8. This is typically the first line in the XML file, like "" - developer would need to use UTF-8 as the value for encoding.
In an ADF Mobile Client application that contains multiple scanner data controls, certain data in one scanner data control may not get cleaned out properly after subsequent scans. There can be some stale data still displayed on the screen, if these data fields are bind to a different scanner data control. The workaround is to bind the user interface components to application variables instead of to scanner data control, and developer need to refresh the application scope variables directly.
In the BlackBerry mode of the UI designer, Input Number Spin Box inside a Panel Form Layout does not expand in width as expected, when the value of the Aligned attribute is set to "Top". However, when the application is running in simulator or device, the Spin Box would expand as expected. There is no workaround for this issue.
Setting the font size attribute in the Panel Label and Message component will have no effect on the label of the Panel Form Layout. To set the font size of the label part of the Panel Label and Message component, developer would set the labelFontSize attribute in the Panel Form Layout. This means developer cannot individually set the font size of each label. There is no workaround for this issue.
When developer adds a sub-menu to a page and views the page in Windows Mobile mode of the UI designer, the sub-menu is displayed outside of the UI designer window in JDeveloper. This is because the UI designer is trying to imitate the multi-layer layout of Windows Mobile sub-menu items. The workaround is to horizontally scroll to see the sub-menu.
When developer removes a component from a page, no other user interface component receives focus or is "selected" in the various designers/structure panes. Developer must select a component to set focus on a component. This does not have any impact and does not change any part of the application. There is no current workaround for this issue.
When a Table component is wider than what the User Interface Designer can display, some of the columns in the table would be invisible. Currently there is no mechanism to allow developer to horizontally scroll to see these invisible columns. This does not impact the runtime behavior - on devices, user will be able to horizontally scroll to see additional columns. The workaround is to surround the Table component with a PanelGroupLayout component, and set the Horizontal Scrolling attribute to true.
In the User Interface Designer, when developer sets the labelFontColor attributes of one Panel FormLayout components, it affects the display color of labels that do not belong to the selected PanelFormLayout on the same page. This impacts those PanelFormLayouts that do not have the LabelFontColor set, not the ones that already have a color set. This does not impact the runtime behavior of the application - labels on different PanelFormLayout would still respect its own LabelFontColor attribute.
In the Windows Mobile mode of the User Interface Designer, if the label is long, then extra spaces would be displayed on the screen above and below the label. This does not reflect the runtime behavior, and should be ignored.
In the Windows Mobile mode of the User Interface Designer, setting the ForegroundColor of the InputNumberSpinBox sets not only the font color of the number, but also the arrow of the spin box. This does not reflect the runtime behavior and should be ignored.
In the User Interface Designer, the arrows in the Table component do not reflect the spacing as rendered during runtime. There are more spaces available during runtime, allowing actual users to correctly use these sort arrows to sort data.
Attributes listed in the Contextual Event tab in the Page Data Binding Definitions Page are not supported by ADF Mobile Client, as ADF Mobile Client current do not support raising custom business events generated from data binding events. However, the tab is not disabled or hidden as expected. Please do not set any attributes in the Contextual Event tab, as it will have no effect on the application.
The Increment attribute of the InputNumberSpinBox defines incremental values between each numbers in the spin box. This number must be positive. However, the User Interface Designer incorrectly allows the developer to set a negative value for this attribute. Please do not set this value to a negative number.
When there is no SelectItem or SelectItems in a SelectOneChoice component, the User Interface Designer displays some default value/text in the SelectOneChoice box. This is incorrect - runtime behavior is that the SelectOneChoice box is blank as expected.
When developer select an Entity Object in JDeveloper and right click on the mouse, the Context Menu offers "Create Default View Object" as an option. Using this option would result in a View Object that has incorrect bind variable style. Correct style should be OracleName, but using this Context Menu item, bind variable style is set to JDBC. This would cause runtime errors when bind variables are added to this View Object. The workaround is to go to New Gallery, select the ADF Mobile Client Business Component category, and then select View Object to create a new View Object. In the subsequent wizard, you can then select an Entity Object for this View Object. This would ensure the correct bind variable style is set.
In the View Object or Entity Object editors, developers can typically set the default date/time formats for a date/time field, as well as a timestamp field. However, for ADF Mobile Client business components, these options are disabled. There is no way for developer to set the default Date/Time format at the ADF BC level. The workaround is to set the date and time format in the User Interface designer, by using ConvertDateTime component in the Data/Time fields.
Business tier-Spring Option in the project New Gallery does not apply to Application Mobile Client projects. However, they are enabled for ADF Mobile Client projects. Please ignore this entry.
In the New Gallery of an Application Mobile Client application, certain un-supported connection types are displayed as valid options. Creating these connections will have no effect, and may cause unintended deployment issues. These un-supported connection types are: File System, UDDI, URL, WebDav, and WSIL.
When
the label property of a MenuItem component is set to a string
containing the "<" character, the characters after the
"<" character is truncated. For example, if the label is set to
"Menu
When developer selects "Show Menu" in the UI Designer, a preview of the menu should be displayed. However, when the page is opened initially, selecting "Show Menu" would display menu label as blanks. This does not reflect the runtime behavior. The workaround is to simply select a different component in the same page, and the menu preview would display the item labels as expected.
Drag and dropping data control into the UI Designer would typically cause a context menu to be displayed, which allowed developer to create UI components that automatically binds to the selected data controls. When dragging and dropping an attribute from a data control into a table component in the UI designer, the expected behavior is that the new attribute would be added as a column to the table, as long as the table is based on the same data control. However, currently drag and dropping a data control into a table is generally not allowed by the UI Designer. The workaround is to add a column component to the table, add the new attribute to the Tree Binding backing the table, and then set the value of the new column to the new attribute in the Tree binding.
To deploy any application to a BlackBerry device using the web browser, a BlackBerry specific file with the .JAD extension needs to be generated and uploaded to the web server. This file is used by BlackBerry devices to determine which application files to download. This file is not automatically generated for the runtime framework files. The workaround is for developer to use BlackBerry tools (JDE) to generate these files. Instructions on creating these JAD files can be found at these links: http://docs.blackberry.com/en/developers/deliverables/1182/BlackBerry%20Java%20Development%20Environment%20Component%20Package%20Release%20Notes.pdf http://docs.blackberry.com/en/developers/deliverables/5779/Create_jad_files_that_reference_multiple_cod_file_512526_11.jsp http://supportforums.blackberry.com/t5/Java-Development/Install-two-cod-files-using-one-jad-file-OTA/td-p/482536
Various mobile operating systems have certain restrictions on what characters can be used in the application name. For example, "-" character is not allowed as the application name on a BlackBerry smart phone. Currently JDeveloper does not check for these invalid characters, and the deployment process would also succeed without returning any error messages. However, this application is invisible or disabled on the device. The workaround is to manually ensure that no invalid characters are used. General rule of thumb is to use numbers and alphabets only as application names.
Each application's synchronization rules deployed to Oracle Database Mobile Server needs to have a unique application name. Developer may deploy synchronization rules from the same application multiple times to the Mobile Server. However, if developer creates a new application but give it the same name as an existing application that has been deployed to Mobile Server, then the deployment process would fail silently - synchronization rules are not deployed, but no visible error message is generated. The workaround is for developer to ensure that unique application names are used for different applications. Furthermore, if developer wishes to use the same application name, then developer will need to manually remove the application, publication, and publication items using Oracle Database Mobile Server console and the Mobile Workbench.
Between different releases of JDeveloper and ADF Mobile Client extensions, the runtime framework files will typically be updated for bug fixes, enhancements, etc. Installing these files typically involves developer to use the Tools Menu - Install ADF Mobile Client runtime to deploy the files. For BlackBerry simulators, however, this does not work - files are replaced but the simulator itself does not recognize the updated files. Workaround: to update the runtime framework modules (COD files) in a simulator that has previous runtime version installed, developer would first need to clean the simulator completely by running the "clean.bat" file in the simulator file directory, and then deploy the runtime framework files after the clean up process is complete.
When deployment profiles are deleted, they should no longer be displayed in the Application Menu - Deploy context menu. However, sometimes they are still displayed but disabled. This is a minor UI issue, and the deleted profile is removed as expected.
In the Applications New Gallery, developer can create deployment profiles for various types of applications built using JDeveloper. The ADF Mobile Client deployment profiles are displayed as an available option, regardless of the type of application that's currently selected in JDeveloper. There is no workaround for this issue.
Deployment Descriptor items in the New Gallery do not apply to ADF Mobile Client applications. However, they are available as valid options when an ADF Mobile Client application is selected in JDeveloper. Please do not create these items as they will have no effect.
Synchronization client needs to be deployed whenever the ADF Mobile Client application uses a local database. This is true even if the database is initialized with a database initialization script, and not coming from data synchronization. Workaround is to ensure Data Synchronization client is always deployed for an application using a local database.
For an ADF Mobile Client application deployed to a BlackBerry 6.0 device, if the same file is used for focused and un-focused icon, then no application icon is displayed on the device's home screen. The application appears simply with its name without an icon. The workaround is to use different files for the focused (i.e. selected) and un-focused icon if the application may be deployed to a BlackBerry 6.0 device.
In the Deployment Profile definition dialog box for an ADF Mobile Client application, the "Localization" panel displays a list of localized resource bundle that would get deployed with the application. Currently there is no check on the format and the names for these resource bundle files. Therefore, developer can add an invalid file as a resource bundle file, which would then get packaged into the application package. Including invalid files would generally not result in runtime errors.
Binding operations "Create" and "Create With Parameters" are not supported by ADF Mobile Client. Adding these operations and executing them will not have any effect. CreateInsert is recommended whenever adding a record is needed. However, "Create with Parameters" allows developer to initialize certain attributes when creating a new record - for example initialize "Created By" or "Create Date" fields in a table. To initialize fields without using "Create with Parameters", developer would need to use a combination of Managed Bean and Application Module code to initialize fields. Managed Bean could be invoked from either a command control on the screen or a "Method" control on the task flow, and the Application Module code is used to set/initialize the attributes on a View Object. An example can be found in the ADF Mobile Client samples delivered with the ADF Mobile Client extensions. Look for "ADF BC" sample application - open the Task Flow, and you will see SRs and SREdit views, and SetDefaults Method node. SetDefaults invokes a Managed Bean method called ADFBCBean.SetDefaults to invoke an Application Module method called SetDefaultValues. Leverage these samples to initialize values in your application.
ADF Mobile Client local database can be initialized either by data synchronization (with Oracle Database Mobile Server) or with database initialization scripts packaged with the application. When Mobile ADF Business Components create a new database record, and one of the field has the type "DB Sequence", ADF BC will automatically generated a new DB Sequence number using a database table that tracks sequence numbers. This DB Sequence table is automatically generated if database is created by database synchronization with Mobile Server. However, when database is initialized with database scripts, developers also must add DDLs that creates the DB Sequence table. An example of the DDL is as follows - please note <> indicates the strings developer needs to update. First create the sequence table as follows:
CREATE TABLE C$SEQ_CLIENTS (
NAME VARCHAR2(30) NOT NULL,
CUR_VALUE NUMBER(10,0),
MAX_VALUE NUMBER(10,0) NOT NULL,
MIN_VALUE NUMBER(10,0) NOT NULL,
PUB_NAME VARCHAR2(30) NOT NULL,
DB_NAME VARCHAR2(30),
INCREMENT_BY NUMBER(10,0) NOT NULL,
CONSTRAINT SEQ_CLIENT_PK PRIMARY
KEY(NAME)
);
Next, add rows for each of the tables developer would want to create new record in. Each row should be added as follows:
Insert into C$SEQ_CLIENTS
(NAME,
CUR_VALUE, MAX_VALUE, MIN_VALUE, PUB_NAME, DB_NAME, INCREMENT_BY)
values ('
Lastly,
there is a limit of 26 characters
for the "Name" of the sequence. The logic for determining the "Name"
field is as follows:
but, if it is more than 26 characters long, application name will be shortened (only if the app name is more than 6 chars) by removing the middle part, retaining first 2 characters and last 3 characters. ABCDEFGHIJK => AB_IJK If the name is still longer than 26 chars, table name will be shortened (only if the table name is more than 17 chars) by removing the middle part, retaining first 8 characters and last 8 characters. ABCDEFGHIJKLMNOPQRST => ABCDEFGH_MNOPQRST e.g. Publication item name for app="MYAPPWITHLONGNAME" and table="MYTABLEWITHNAMETHATISREALLYLONG" becomes "I_MY_ONG_MYTABLEW_ALLYLONG"
When
the value of an inputDate is null,
then when user clicks on the data control to specify a date value, this
date value must be set to a value different from today's date. This is
an issue associated with the BlackBerry operating system. If there is a
field that can be Null and also needs to be set to the current date,
developer must initialize date field with today's date using a Managed
Bean and an Application Module custom module. The workaround is
identical to the issue above "Binding Operations "Create" and "Create
With Parameters" are not supported", i.e. initialize the values as a
step in the Task Flow.
Application
with Scanner Data Control may falsely log "Severe" error
message in log files when scanner datacontrols are loaded.
When running an application with Scanner Data Control, the ADF Mobile Client log file may falsely log a "severe" error as follows:
[SEVERE - adfnmc.util - ScannerBeanDefinition - log] Data Control: model.mobile.scanner.ADFmcScannerDataControl was not found.
The data control will work correctly as expected. Please ignore this error message.
When specifying a List of Value (in View Objects, etc), developer can specify an "empty" item in the LOV, which allows end user to select it to set the value of that field to Null. This empty item can either be represented as spaces or as a custom string on the top of the SelectOneChoice control. However, if developer elects to add the "Empty" item to the end of the list, then this would not work correctly. Empty item as spaces or as a special string will show up correctly on top of the LOV, but would not show up if it's at the bottom. There is currently no workaround for this issue - developer should always place these empty items on the top of the LOV.
In
certain Windows Mobile devices such as
Motorola MC-75, the device itself ships with an internal Flash/SD Card.
On these devices, ADF Mobile Client runtime would be unable to
create/set the database or log file location to use the external SD
Card on the device. It has to store database or log file in the main
device memory. For example, you cannot set the database path to
"\Storage Card\
Using the integrated synchronization screen, user can choose to save the credentials for future use, so subsequent synchronization sessions would automatically use this credential. However, if for any reason the synchronization screen is displayed in the future after credential has been saved, the saved value is not displayed in the screen. This forces user to have to enter the credentials again even if they saved credential before. There is no workaround for this issue - user would have to re-enter the credentials in order to continue. Typically synchronization screens should not be displayed once the credentials are saved, but it could occur if for some reason the local database file cannot be found by the application.
Uncommitted data in a Table component will appear on top of the table, regardless of the sort order for the table. For example, if an end user enters a new record, and navigates to a screen that displays that record in a table, then that record would be displayed on top of the screen. Even if user sort the table, this record would still show up on top of the screen. Workaround is to always commit data before navigating to a screen that contains a table component that may display new data.
From JDeveloper, developer can drag and drop an operation/method from the Data Control to the Task Flow Editor to add a Method invocation to the task flow. During runtime, the ADF Mobile Client runtime will correctly invoke this operation or method in the task flow, but any return value is lost and cannot be used in any page. The workaround is to invoke these operations from within a page, or developer would write a Managed Bean that invokes this Data Control operation or method, save the return to an applicationScope variable, and then invoke the Managed Bean in the Task Flow.
When user clicks on the date picker of any date field on the screen of a Windows Mobile 320X320 emulator or device, part of the date picker is outside the display area. There is no workaround for this issue, but impact should be minimal as there is no such device on the market today.
On touch screen BlackBerry devices, users can typically click and drag on any part of the page to scroll to different part of the page, if the page is larger than the display area. However, if user touches/select the Table component or any other component that support scrolling within it, then the screen will not scroll. This is because the scrolling event is absorbed by the Table component itself, since it is a scrollable component. Workaround is to ensure such a scrollable component can never take up the entire screen, which would allow user to select any area outside the component to scroll the screen.
When
specifying time format in a
ConvertDateTime component, "Z" typically represents a timezone format -
for example,
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
Z timezone is not supported by the runtime.
Workaround is to use the
lower case "z" to display timezone.
On Windows Mobile devices, if user uses a track pad/ball or something similar to scroll to a cell in the table, and that cell does not contain any component that can be selected/focused, ,then data can't be retrieved from the table bindings as expected. Workaround is to click/select on the cell itself. This is typically invisible to the users because typically users of touch-screen based Windows Mobile devices would click on a record to select it, and not rely on track pad/ball.
In the Bindings custom Java code, developer can sort View Object data in two modes - Database and In-Memory. If the custom code performs a sort in Database Mode, and then in the In-Memory mode, then the second sort will not work. The workaround is to always sort in one mode, and not mix-and-match modes.
When multiple UI controls are added to the PanelLabelAndMessage component, extra spaces are displayed within the PanelLabelAndMessage component during runtime. PanelFormAndMessage should typically only contain one component (OutputText) to support labels, and should not need multiple components. If multiple controls are needed, then the workaround is to place these components in individual/different PanelLabelAndMessage component, or outside of it if these components do not have to align with the label.
A table on a screen may contain more columns than what the device can initially display, and user can scroll left or right to view these columns that are not initially visible. However, if user attempts to sort against any of these columns that are not initially visible, the current display position of the table is reset to the left most column. This means the selected/sorted column would most likely become invisible. Generally it is not good user interface design practice to place more columns in a table that can be displayed on the screen, as horizontal scrolling on mobile devices generally results in sub-optimal user experiences. There is no workaround for this issue at this time - this does not change the actual functionality of the table, and developers are advised to arrange tables in such a way to minimize need for horizontal scrolling.
When user synchronizes data using synchronization screen from the ADF Mobile Client framework itself, a synchronization status window is typically displayed while data synchronization is taking place. However, on Windows Mobile devices, the synchronization status window may be closed before the cycle is complete, and user may temporarily see the synchronization login screen being displayed again, before the first screen of the application is shown. This typically does not cause major usability issues. However, if a workaround is desired, developer is recommended to develop their own synchronization login screen using the synchronization credential attributes available from the framework. Please consult the ADF Mobile Client developer guide for details.
InputNumberSpinBox supports maximum and minimum limits for values entered by the user. These two properties set the upper and lower limit values for the spin box value. User may either use up and down arrows to set the value, or directly type a value into the control. On Windows Mobile devices only, if user directly types a value into the control, then user can type a value outside the upper and lower limit of the value. If user then tabs/selects a different control on the page, then invalid value would be retained, ignoring the limits set in the control attributes. The workaround is to implement validation logic either in Managed Bean or in Entity Objects. If Entity Objects are used for the application, then implement the validation logic in entity object as a business rule would be the best alternative.
Values of the properties for UI components can generally be set to either Java code (Managed Bean) or EL Expressions. When Java code or EL Expressions evaluates/returns to a "Blank" or null string, the values of these properties are set to "Blank" or null, instead of to their default values. This can result in unexpected runtime issues and errors. For example, if developer sets the "rendered" property of an UI component to a Managed Bean method, and the method returns null instead of "true" or "false", then during runtime the rendered property would also be set to null, which would result in runtime error. The workaround is to ensure that Managed Bean or EL Expression always defaults/initializes to a valid value for that property.
On BlackBerry devices, title for the error message pop-up box (for Entity Object validation error, for example) cannot be displayed. There is no workaround for this issue.
When increasing the height of the SelectOneChoice control, different background colors for the control may be displayed. Generally it is not necessary to set the height property for the SelectOneChoice control, since the height of the control is automatically set based on the text length. If there is need for the SelectOneChoice control to take more vertical space, then the workaround is to use a Spacer component to pad spaces as desired.
InputNumberSpinBox currently only supports integer values, and cannot accept floating point or decimal values. In other words, incremental value has to be one or greater, and min/max number has to an integer. If user enters a number contains decimals values, or if the value is set in EL Expression or Managed Bean as floating point values, runtime error will occur. There is no direct workaround for this issue currently, and developer is advised to use InputText control with Convert Number to support entry of decimal/floating point values.
The height property of the PanelGroupLayout can be set to a relative value, i.e. as a percentage value. If the PanelGroupLayout is contained within another layout component (for example another PanelGroupLayout), then this relatively height is supposed to be based on the height of its containing element. However, currently the relative height property is based on the height of the screen/device viewport. For example, we have PanelGroupLayout1 and PanelGroupLayout2, where PanelGroupLayout2 is nested inside PanelGroupLayout1, and we set the height of both layout components to 50%. Furthermore, the overall height of the device screen is 480 pixels. The expected height of the PanelGroupLayout2 is 480 pixel X 50% X 50% = 120 Pixels. However, currently in the ADF Mobile Client, PanelGroupLayout2 height is 480 pixel X 50% = 240 Pixels instead. The workaround is to set the height of the layout components based on the overall screen height. Therefore, in the example above, if PanelGroupLayout2 should only take up 120 pixels, then set its height to 25% instead.
Disabled controls in Windows Mobile applications generally are expected to have a "disabled" appearance, which generally means the controls are grayed out. This gives user a visual cue that the control is disabled. However, for an ADF Mobile Client application, disabled controls are rendered the same way as enabled controls. These controls are not grayed out on Windows Mobile version of the application. Its runtime behavior is still correct, that a disabled controlled cannot be clicked or used. There is currently no workaround for this issue.
There are a few properties for the InputNumberSpinBox and SelectOneChoice controls that can affect its appearance on the screen - for example, its value, font size, color, etc. When the values of these properties are changed (for example in Managed Bean code), these controls are not re-draw or refreshed on the screen. The screen needs to be reloaded for user to see change in these properties. This does not impact the actual value of these properties - as soon as the Managed Bean code is executed, the values are updated as expected. This is strictly a screen refresh issue. The workaround is to force a reload/refresh of the screen when the property values are changed, by performing a page navigation back to the same page.
Setting the InputText Foreground Color property in the UI Designer would update both label and value/field's color in JDeveloper. However, during runtime, only the value/field's color is set based on the Foreground Color property. This gives an incorrect visual cue to developers on label's font color. To set the font color of the labels, the developer must use a PanelFormLayout to contain the InputText component, and then set the LabelFontColor property of the PanelFormLayout.
Certain Windows Mobile devices have a physical "Back" button, which generally allows user to undo/return to the previous screen. This "Back" button is currently not supported by ADF Mobile Client, and does not have any effect when user clicks on this button. To support users to return to the previous screen to mimic the behavior of the "Back" button, developer must either add a command control (i.e. CommandButton, MenuItem, CommandLink, etc) to the page itself to navigate to the previous screen.
During
runtime, when Entity Object's
validation rules are violated, a pop-up error message is displayed on
the screen with details of the message specified by the developer. All
of these error messages are currently displayed with "informational"
icon only, not with "Error" or "Warning" icons as expected. There is
currently no workaround for this issue. Developers are advised to
pre-face the error message with the nature of the error, in order to
ensure end user clearly understand the nature of the message. For
example, preface the text of an error message with "ERROR:
Using
the UI Designer, developers can
place a PanelFormLayout control inside a PanelLabelAndMessage
component, if the PanelFormLayout is contained within any other
supported components. During runtime, when these controls are rendered
on the device, the application will exit due to runtime error on the
BlackBerry smart phone. To workaround this issue and still be able to
nest these layout components, developer should nest the PanelFormLayout
inside another PanelFormLayout, instead of inside the
PanelLabelAndMessage. Please see example below:
This
will result in runtime error:
<amc:panelFormLayout
id="panelFormLayout1">
<amc:panelLabelAndMessage label="label1"
id="panelLabelAndMessage1">
<amc:panelGroupLayout id="panelGroupLayout2">
<amc:panelFormLayout id="panelFormLayout2">
</amc:panelGroupLayout>
</amc:panelLabelAndMessage>
</amc:panelFormLayout>
This
will work:
<amc:panelFormLayout
id="panelFormLayout1">
<amc:panelLabelAndMessage label="label1"
id="panelLabelAndMessage1">
<amc:panelGroupLayout id="panelGroupLayout2">
<amc:panelFormLayout id="panelFormLayout2">
</amc:panelGroupLayout>
</amc:panelFormLayout>
When there is no default activity defined in the Task Flow of an ADF Mobile Client application, application start up process will hang on the Windows Mobile devices, instead of displaying an error message. There is no direct workaround for this issue, and developers must always ensure an activity (i.e. view) is set as the default activity in the Task Flow.
When OutputText components are placed inside a PanelFormLayout component, the alignment properties of the OutputText components are not respected. Default alignment properties are used during runtime. If developer wishes to set the alignment of the outputText within a PanelFormsLayout, then developer may use Spacer components or multiple PanelFormLayout components to achieve desired effect.
On Windows Mobile devices, when user clicks on a CommandLink in an ADF Mobile Client page, the font style of the CommandLink changes to Italic unexpected. This is a display only issue and has no other effects. There is no workaround for this issue.
ADF
Mobile Client's table column
component allows end user to filter table data based on user-specified
string using either menu (BlackBerry) or an input text box in the table
component itself (Windows Mobile). If the column contains a date field,
then end user must enter the date in the
In the UI designer for ADF Mobile Client, if the CommandButton label text is greater than the width of the button itself, then the left part of the label text is displayed. However, during runtime, the center part of the label text is displayed. There is currently no workaround for this issue, but in general developer should always ensure the width of the label text can fit within the button itself. It is generally un-desirable to display only part of the label text.
The ConvertNumber component supports several different modes for formatting the value of the InputNumber component. One mode is "pattern" mode, which allows developers to specify a pattern for number format. On the BlackBerry version of ADF Mobile Client, ¤ AND % characters are not supported. For example, patterns such as "¤#,###.##" or "%#,###.##" are not recognized and would not work on the BlackBerry device. There is currently no workaround for this issue.
When
creating a read-only View Object
based on SQL statement, developer can enter a SQL such as "select *
from
<table name>" for the View Object. The View Object wizard
would then allow
developer to map table columns to View Object attributes, and also to
change orders of the attributes. If developer changes the order of the
attributes, then during runtime, table column to the View Object
attribute mapping would not be preserved. For example, initially table
column A,B,C is mapped to attributes X,Y,Z, and developer changes the
order to B,A,C and Y,X,Z. During runtime, the attributes Y,X,Z are
mapped to columns A,B,C. The workaround is that developer needs to
specify column names in the SQL statement, and ensure that maps to the
correct attribute in the View Object. Do not use wild card "select *
from <table name>.
On BlackBerry 6.0 devices, one of the default context menu for any InputText field is to check spelling. Currently when end user selects the spell check context menu to check for the spelling, the spelling always succeeds regardless of the actual text in the field. There is no workaround for this issue.
When you migrate the jazn-data.xml file to a production environment, the migrator will throw an error and stop the migration of the policy store when a grant contains a duplicate permission. If the jazn-data.xml file contains a duplicate permission (one that has the same name and class), you should manually edit the jazn-data.xml file to remove any duplicate permissions. This sample shows a duplicate grant named "duplicatePolicy":
<grant>
<grantee>
...
</grantee>
<permissions>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>duplicatePolicy</name>
</permission>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>duplicatePolicy</name>
</permission>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>writePolicy</name>
</permission>
</permissions>
</grant>
Before you can migrate the above sample, the file should appear as (with the extra "duplicatePolicy" permission deleted):
<grantee>
...
</grantee>
<permissions>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>duplicatePolicy</name>
</permission>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>writePolicy</name>
</permission>
</permissions>
</grant>
The valid value for startDayOfWeek attribute is: sun, mon, tue, wed, thu, fri, sat. In Property Inspector, these valid value are provided in a LOV. When Jdeveloper is started in Japanese locale, the LOV item in Property Inspector is localized, when choose the localized value from PI, there will be error thrown since the localized value is not valid value.
Workaround: Go to source code to enter the valid value directly instead of using PI.
In the Search Navigator, you can also use the * wildcard character in your search string. Note that the support for the * wildcard character is available in between and at the end of the search string, but not at the beginning of the search string. For example, John*Doe and John* are valid search strings, but *Doe is an invalid search string.
When
opening the visual editor you may not be able to see all the
toolbar functions available and there is no visual indication
[... or
=>] that more toolbar functions are
available. You can, however,
expand the window wider to see them all.
When viewing a page preview from the visual editor using the default browser users should:
This option will now be keyboard accessible.
When
working in a facelet and attempting to drop a JSF html message
component onto the page, a dialog appears to allow the user
to specify
the ID to which to attach the message. The workaround is to use the
Property Inspector to change the 'for' property of h:message.
This
error happens due to bug 6875866 (HotSpot compiler bug in
String.indexOf() using SSE4.2 instruction-set on new Intel chips). This
is related to a JDK regression bug, 6875866.
Workaround:
To workaround it you need to use the -XX:-UseSS42Intrinsics
option on two places:
1. Project Properties -> Run/Debug/Profile -> Default (or
whatever is your Run Configuration name) -> Edit... ->
Java
Options -> enter -XX:-UseSSE42Intrinsics
in the text box.
2. Edit <JDEV_HOME>/jdev/bin/jdev.conf
and add this line: AddVMOption
-XX:-UseSS42Intrinsics
|
Oracle Corporation |
Worldwide Inquiries: |
Copyright © 1997,2009, 2010, 2011 Oracle and/or its affiliates. |