Oracle JDeveloper 12c (12.2.1.0.0) Known Issues

Introduction

This document contains a list of known issues (and, where applicable workarounds for those issues) for the following products:

  • Oracle JDeveloper 12c (12.2.1.0.0)
  • Oracle Application Development Framework (ADF) 12c (12.2.1.0.0)
  • Oracle ADF Essentials 12c (12.2.1.0.0)

For a list of new features in this release, see the What's New document on OTN.

This document describes known issues with the release. If and when new issues are discovered they will be added to this document. Please also use the JDeveloper community discussion forum and other community resources for questions and answers and to let us know what you think!

Deployment

Domain Creation May Be Slow on Linux Machines With Inadequate Entropy

Creating a domain may take a long time on Linux machines with inadequate entropy. For more information, see Release Notes for Oracle WebLogic Server .

Web Services Development

Policy Not Enforced on a Provider Service Without a WSDL

For a web service provider with no WSDL associated with it, any policy attachments on it are not enforced by the server. To prevent users from deploying a Provider service without a WSDL, JDeveloper displays a warning in the code editor when this scenario is detected. The workaround for this problem is to maintain a WSDL for the Provider service and attach it to the service using the wsdlLocation annotation parameter.

Avoid Creating Multiple Top-down Web Services in the Same Project/Package (7165531)

Unless 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.

Deployment Fails When Deploying a JAX-WS RI Web Service to a Glassfish Server (14629256)

If you attempt to deploy a JAX-WS RI web service EAR or WAR file created using JDeveloper to Glassfish server, the deployment will fail.

To work around this issue, perform one of the following steps:

  • If your web service requires the web.xml file to support advanced capabilities, such as securing with basic authentication, then:
    • Edit the web.xml file to delete the oracle.adf.share.glassfish.listener.ADFGlassFishAppLifeCycleListener lifecycle listener entry, which is not required.
    • Delete the sun-jaxws.xml file.
  • Delete the web.xml file (if it is not required to support advanced capabilities).

ADF Business Components

Notes for ADF REST Deprecated Features

ADF REST HTTP PUT is deprecated functionality

Oracle has deprecated the functionality for executing HTTP PUT methods on ADF REST resource requests. In the current release, the describe for ADF REST resources continues to display PUT actions when the backing view object has the Update operation enabled (the operation enables both PUT and PATCH methods); however, ADF REST service clients should avoid making PUT requests (replace all items of the view row) as this functionality will be desupported in a future release.

Notes for ADF REST Runtime

REST resource PATCH requests fail when an attribute that is the row key value is changed (20859674)

PATCH requests executed by the ADF REST framework will fail if the update occurs on the view object row key attribute value. For example: PATCH /rest/Departments/10 with {“Deptno” : “11”} where Deptno is the key attribute will fail.

REST resource POST request for non-updateable fields not ignored (20389422)

POST requests executed by the ADF REST framework on the backing view object with non-updateable attributes defined, will create the record instead of throwing a validation error for read-only attributes. For example: POST /rest/Departments/10 with {“DeptNo” : 10, “DeptName” : “HR”} where DeptName is configured as read-only will create the record despite the read-only defined attribute.

REST resource GET request with “query” param on date or date-time attributes fails (20883177)

GET requests executed by the ADF REST framework throw a null pointer exception when using '>', '>=', '<', '<=' operators on date attributes with the REST GET q (query) parameter. For example: GET /rest/v1/Employees/101?q=HireDate>2015-03-06 raises an exception where HireDate is a date attribute.

REST resource GET request “fields” param is ignored (20569781)

GET requests executed by the ADF REST framework will include all the attributes in the view object irrespective of the actual list (subset) of attributes that are requested through the fields parameter. For example: GET /rest/v1/Employees/101?fields=FirstName, LastName, Email does not limit to just these three fields.

REST Resource GET does not support CLOB attributes with non-ASCII characters (21636374)

The REST framework displays invalid data when attempting to retrieve an attribute of type CLOB that contains characters not supported by ASCII (such as Chinese characters).

REST operations to create/modify a child row attribute of java.util.Date type fail (21447248)

The REST framework throws an IllegalArgumentException when attempting to create or modify a child resource row attribute that is defined as java.util.Date type.

describe fails when child REST resource attributes list is empty (18342215)

The ADF REST framework throws an exception when executing the describe for a view object of a child resource with no selectable attributes defined (because all attributes of the view object have been configured as PAYLOADHINT=Hide). For example: /rest/v1/Departments/10/child/Employees/120/describe will fail when the view object has been configured with the Payload Hint set to Hide for all attributes.

Catalog describe fails when REST service has HTTP BASIC authentication (19546311)

The ADF REST framework throws an exception when executing the REST catalog describe and security is enabled. For example: /rest/v1/describe will not return the catalog describe when the service has HTTP BASIC authentication enabled.

Version catalog access fails unless authenticated user has GET access privileges (20657157)

The ADF REST framework throws a not authorized exception when executing REST version catalog requests and the user does not have privileges to execute the GET method. For example: GET /rest will not retrieve version release identifiers unless the user has GET method authorization.

Data consistency checking using if-match and if-none-match fails on invalid ETag values (20716180)

The ADF REST framework fails to perform data consistency checks using If-Match/If-None-Match when an invalid precondition ETag value obtained from the resource item response is provided. The ADF REST framework ignores the ETag and behaves as if the wildcard ("*") is provided.

HTTP methods not implemented by ADF REST framework don’t return response code (21107792)

The ADF REST framework throws a null pointer exception instead of returning an appropriate response code, such as 204/501, when attempting to execute HTTP methods not implemented by the framework (such as OPTIONS).

Child view link accessors display as fields on the parent REST resource describe (21151035)

The ADF REST framework displays view accessor-enabled attributes of view objects as regular fields of type Object in parent resource describe instead of as href attributes of the links object.

Notes for ADF REST Design Time

View objects defined with forward-only access mode are not supported by ADF REST design time (18801163)

View objects that have forward-only access mode defined should not be used to generate ADF REST resources in the ADF Business Components project.

Renaming a REST version does not remove original version REST resource definition file (19424020)

When a version identifier that has been assigned to an ADF REST resource is renamed and the Applications window is refreshed, both old and new version folders will exist in the window.

Creating an ADF REST resource can corrupt a template RESTWebService project (18198842)

When a new ADF REST resource is created, /rest/ servlet mapping URL pattern is always created in web.xml file even when a servlet mapping that may appear in the user’s RESTWebService project already exists (because RESTWebService project is being reused and defines the servlet mapping).

ADF Desktop Integration

MS .NET prerequisite: if a given user (developer or end-user) upgrades the ADFdi client from a previous version and does not already have .NET 4.5.2 installed, s/he will be prompted to install it. Companies that do not allow end users to install .NET should roll out .NET 4.5.2 to the target users machines beforehand.

Web Page Dialogs using af:query components

  • Users that go into an af:query component's Advanced query mode in a web page dialog (including the Model-driven List Picker) may experience flickering and unresponsive choice list components. Workarounds include giving focus to a component outside the af:query (eg. the Results Table). Users with Microsoft Internet Explorer version 11 do not experience this issue. (bug 20026213)

HTTPS Connections

  • As of 4.2.0.12861, the ADFdi client may not successfully connect using https to older versions of WebLogic Server. One example of an older WLS version is the one bundled with JDeveloper in JDEVADF (Rel11) labels. Applying the latest Patch Set Updates (PSUs) is required; for example PSU 20780171 has been reported as allowing https connections to succeed with WLS 10.3.6). See MOS Doc ID 2087746.1

Excel Configuration

  • The Excel setting known as "Trust access to the VBA project object model" is only required for integrated workbooks that include ADF Button components. The documentation suggests that this setting is always required. However, it is not required for integrated workbooks that do not contain buttons.

ADF Faces, Controller and Data Visualization Runtime

Removal of Need for Special Accessibility Modes (16622238)

We are working on a project to remove the need for special accessibility modes in ADF Faces. Our goal is to provide accessible content without the need to set special modes in ADF Faces applications. This work is partially completed in 12.2.1.0.0, and will be fully completed in a future release.

In 12.2.1.0.0, many of our components now render screen reader compatible content in regular rich mode. This means that you will receive the same accessible content whether you are in ADF Faces screen reader mode or not. But because not all of our components are updated yet, we cannot yet eliminate the need for a screen reader mode. Once all of our components are updated in a future release, ADF Faces will no longer require a screen reader mode to render screen reader mode compatible content. Because of these changes, when you switch to screen reader mode in 12.2.1.0.0 the application will no longer look radically different like it did in earlier versions - in most cases it will look exactly the same.

In 12.2.1.0.0, many of our components now detect when OS high contrast mode is set and automatically render content that is compatible with OS high contrast. This means that many components no longer require an application high contrast mode to be set to get content meant to work with OS high contrast mode. But like screen reader mode, the mode is still required until all components are updated.

In 12.2.1.0.0, all of our components are now zoomable by default, eliminating the need for an application large fonts mode.

ADF Data Visualizations Charts

Continuing on the initiative to deprecate legacy Graph and replace it with new Charts, the radarGraph and funnelGraph tags are now deprecated in favor of the following chart tags:

Deprecated Tag New Tag
dvt:funnelGraph dvt:funnelChart
dvt:radarGraph dvt:lineChart with a coordinateSystem attribute set to Polar

Please see JDeveloper 12.2.1 New Features document for more information on the new chart types and the polar coordinate system.

ADF Data Visualization Pivot Table

Leading zeros are not carried from the pivot table to exported Excel (9927815).

Performance of Large Data Sets

For row-based data sets with more than 1000 rows, pre-calculate the summary data in the database to limit the number of rows sent to the Pivot Table to reduce resources necessary for data aggregation. You can also tune your view object to set how data is retrieved from the database by using the default setting of All Rows in batches of 1. For more information, see "Consider the Appropriate Tuning Setting for Every View Object" in Developing Fusion Web Applications with Oracle Application Development Framework guide. Finally, specify the number of columns and rows in a data fetch block by setting the columnFetchSize and rowFetchSize attributes of the dvt:pivotTable component.

ADF Data Visualizations Design Time (21935856)

Creating a data-bound Dual-Y Chart with a Quick Start Layout specifying no Legend in the Component Gallery can cause a NullPointerException in the design time. If this occurs, please close and restart JDeveloper (saving your work). To avoid the exception, you can create your data-bound Dual-Y Chart with a visible Legend, and then set the chartLegend tag's 'rendered' property to "false".

JDeveloper

JDK may crash on startup when running JDeveloper with OEL7 (20119075)

If you start JDeveloper on a machine running OEL7 which uses the gnome-classic window manager you may find that JDK crashes. The workaround is to use JDK8u60 or later.

Coherence cluster error (21812587)

Integrated WLS SERVER STARTUP fails

Notes for Databases and the MDS Schema

The Oracle Metadata Services (MDS) Repository contains metadata for certain types of deployed applications. This includes custom Java EE applications developed by your organization and some Oracle Fusion Middleware component applications, such as Oracle B2B.

The MDS Repository supports Oracle databases, as well as non-Oracle databases, including SQL Server and DB2.Refer to the certification document for 12c (12.2.1) on the Oracle Fusion Middleware Supported System Configurations page for the latest information on certified databases.

Notes for Using an Oracle Database for the MDS Schema

On Oracle databases, the MDS database user created by Repository Creation Utility (RCU) requires EXECUTE privilege on DBMS_OUTPUT and DBMS_LOB. When you create a metadata repository using RCU, if PUBLIC does not have EXECUTE privilege on DBMS_OUTPUT and DBMS_LOB, the RCU user must have the privilege to grant EXECUTE privilege on DBMS_OUTPUT and DBMS_LOB to the MDS user.

To ensure that you have the correct privileges, login to RCU as a SYSDBA or as a DBA user who has EXECUTE privilege with GRANT OPTION on DBMS_OUTPUT and DBMS_LOB.

Notes for Using a Microsoft SQL Server Database for the MDS Schema

Note the following about using SQL Server as the database for MDS:

  • To create a metadata repository in SQL Server, set READ_COMMITTED_SNAPSHOT to ON for the hosting database. This enables the needed row versioning support. This feature can be enabled using the SQL command ALTER DATABASE, as in the following example:
  • ALTER DATABASE mds SET READ_COMMITTED_SNAPSHOT ON

  • You should use case-sensitive collation to support the case-sensitive semantics in the metadata repository. For example, if Latin1_General is used, select theSQL_Latin1_General_CP1_CS_AS collation using the following SQL command:
  • ALTER DATABASE mds COLLATE SQL_Latin1_General_CP1_CS_AS

  • There are some minor differences between an Oracle schema and a SQL Server schema. The length of the certain text fields are shorter for a SQL Server schema. For example, the full path name of the metadata in SQL Server is limited to 400 characters.

Notes for Using an IBM DB2 Database for the MDS Schema

Note the following about using DB2 as the database for MDS:

  • DB2 9.7 or later must be used for MDS repository to work properly.
  • Make sure that CUR_COMMIT is set to "ON", which is the default value for a newly installed DB2 9.7 database. This setting can be verified using following DB2 command:

    db2 connect to your_database user admin_user
    
    db2 "get db cfg" | grep -I commit
    Curently Committed   (CUR_COMMIT) = ON
    
  • Set the lock timeout parameter of the database to a low value. Unlike Oracle databases, with DB2, if one user is updating a row, under some conditions, another user may be blocked when updating a different row and must wait until the transaction is committed or rolled back by the first user. To facilitate better concurrency, do not specify -1, which sets the lock timeout to infinity.
  • To query the lock timeout value for your DB2 database, use the following command:

    db2 'get database config for database_alias' | grep -i timeout

    If the value is too high, change it. For example, to change the lock timeout value to 180 seconds, use the following command:

    db2 'update database config for database_alias using locktimeout 180'

    Choose a proper value for the locktimeout parameter. If a large value is used, it will affect system throughput, since the transaction has to wait a very long time before giving up. If the value is set too small, users will see many timeout exceptions if the database is processing many long running transactions.

  • Set the DB2 registry variables DB2_EVALUNCOMMITTED, DB2_SKIPINSERTED, and DB2_SJIPDELETED to OFF to avoid deadlock and locking issues. By default, they are set to OFF. To view the current registry variables setting, use the db2set -all command.
  • If they are not set to OFF, use the following commands:

    db2set DB2_EVALUNCOMMITTED=OFF
    
    db2set DB2_SKIPINSERTED=OFF
    db2set DB2_SKIPDELETED=OFF
    

    Restart the database server using the using db2stop and db2start commands.

  • DB2 may escalate a row lock to a table lock due to memory stress or lock usage. As the result, a user's transaction may be rolled back as a victim of deadlock or lock timeout. To reduce lock escalation, you can increase the size of the MAXLOCKS and LOCKLIST configuration parameters. Use the following commands:
  • 
    
    db2 'update database config for database_alias using locklist value'
    db2 'update database config for database_alias using maxlocks value'
    

    For 11g Release 1 (11.1.1.8.0) and later, the MAXLOCKS value should be set to 20, and the LOCKLIST value should be set to 70000.

  • The isolation level must be set to Currently Committed. To verify the setting, use the following command:
  • db2 'get database config for database_alias' | grep -i commit

    To set the isolation level to Currently Committed, use the following command:

    db2 'update database config for database_alias using CUR_COMMIT ON'

  • If the database transaction log is often full, increase the database configuration parameter to allow for a larger log file. A larger log file requires more space, but it reduces the need for applications to retry the operation. You should set the log file size to at least 10000 and the number of primary log files to at least 50. Use the following commands:
  • 
    
    db2 'update database config for database_alias using LOGFILSIZ 10000'
    db2 'update database config for database_alias using LOGPRIMARY 50'
    
  • If an MDS DB2 data source is created under an IBM WebSphere application server and the IBM DB2 JCC driver is chosen for the data source, the progressiveStreaming=2 property must be added to the property list of the data source. In effect, progressive streaming will be disabled. Without this property setting, MDS may run into issues in accessing document contents saved in a large object (LOB) column in the MDS repository.

MDS Remote Notifications

The MDS database repository has the capability of using Coherence to send cluster-wide notifications when a document in that repository is changed by a cluster member. When this feature is enabled, all the cluster members are notified of changes to documents when the changes are committed instead of waiting for the repository poll to be run on each node (either because the polling interval has expired or a change was made to the repository on that node). When a cluster member receives notification of a change to a document, it invalidates its current local version of that document and uses the updated document instead.

From release 12c, in order to enable this feature when using MDS in a WLS domain, set the “remote-notifications-enabled” property to “true” in the adf-config.xml file:

<persistence-config>

  ...
  <external-change-detection enabled="true" polling-interval-secs="5"

   remote-notifications-enabled="true"/>
</persistence-config>

For this feature to work you must ensure that the JNDI name that each node is using to refer to the repository is the same on every node, and polling must be enabled i.e. external-change-detection=”true” (it is enabled by default, but it must not be disabled).

If Remote Notifications is enabled for the application, individual DB metadata stores may opt-out by specifying the property “remote-notifications-enabled” as “false”:




   <metadata-store-usage id="db2">
      <metadata-store class-name="oracle.mds.persistence.stores.db.DBMetadataStore">
        ...
         <property name ="remote-notifications-enabled" value="false"/>
       </metadata-store>
   </metadata-store-usage>