Oracle® JDeveloper 10g

Release Notes


May 2004



Oracle JDeveloper 10g is an Integrated Development Environment (IDE) for building applications and Web services using the latest industry standards for Java, XML, and SQL. Oracle JDeveloper supports the complete development life cycle with integrated features for modeling, coding, debugging, testing, profiling, tuning, and deploying applications.

A visual and declarative approach and the innovative Oracle Application Development Framework (Oracle ADF) work together to simplify application development and reduce mundane coding tasks, offering developers unparalleled productivity and their choice of technology stack.

Oracle JDeveloper offers an Extension SDK that lets you add capabilities and customize your development environment. To learn more about Oracle JDeveloper, and to catch up on the latest news, visit JDeveloper’s home page on the Oracle Technology Network (OTN), at Also available on this site is the Oracle JDeveloper 10g Release Notes Addendum , which contains additional information not available at the time of this document's publication.

Migration Issues

JDeveloper Launch May Appear Hung with New Migration Prompt (3450579)

Upon running JDeveloper for the first time a migration dialog will be presented to the user asking if they would like to migrate user settings from a previous install. Since the JDeveloper main window has not yet been shown, this dialog will be parented to the user's desktop. As a result, there will not be an item in the Windows taskbar and the dialog itself may become obscured by the windows of other running applications. If obscured by the windows of other running applications, it may appear to the user that JDeveloper is hung. In such cases, JDeveloper is not hung, it is simply waiting for the user to reply to the migration dialog. The user may minimize the other applications in order to uncover the JDeveloper dialog or use ALT + TAB to iterate through running applications to find the JDeveloper dialog (as represented by the standard Java coffee cup icon).

Struts Applications May Not Compile Correctly After Migration (3531833)

Struts applications created in Oracle JDeveloper 10g Preview and earlier releases may no longer compile correctly after migration to JDeveloper 10g.

If you have a Struts application that no longer compiles correctly after migration to JDeveloper 10g, the migration process may have incorrectly removed the struts.jar file from your WEB-INF/lib directory.


Note: Oracle JDeveloper 10g is integrated with Struts release 1.1.

Migrating Struts Applications to Oracle JDeveloper 10g

Struts applications created in Oracle9i JDeveloper or other tools may not compile correctly after being migrated to Oracle JDeveloper 10g production release. This may happen even if the applications were previously successfully migrated to Oracle JDeveloper 10g preview release.

If you have a Struts application that no longer compiles correctly after migration to JDeveloper 10g, the migration process may have incorrectly removed the struts.jar file from your WEB-INF/lib directory.

To correct Struts compilation errors after migration:

Migrating Struts-based Applications from Oracle JDeveloper 10g Preview/Oracle ADF API Changes

If you are updating Struts-based web applications that use Oracle ADF from the Oracle JDeveloper 10g Preview, you need to be aware of several changes to the API.

Oracle ADF Class Methods that Have Been Removed

This section describes Oracle ADF classes and class methods that have been removed or replaced in the controller layer.

oracle.adf.controller.Lifecycle Interface and Subclasses

The class oracle.adf.controller.struts.actions.JspLifecycle has been replaced by oracle.adf.controller.struts.actions.StrutsJspLifecycle.

The following methods are no longer part of the Lifecycle interface:

  • buildControlActionBindingsList()has been replaced by buildEventList(LifecycleContext lcContext) This method builds the list of events with any associated action bindings from the request parameters.
  • processForwardConfig()
  • getParameters()
  • initializeRequestParameters()
  • convertForwards()

oracle.adf.controller.lifecycle.LifeCycleContext Class

The addControlActionBinding() method has an additional argument, an event name with the type java.lang.String.

The getControlActionBindings() method has been replaced by getEvents() This method builds the list of events with any associated action bindings from the request parameters.

The following methods are no longer part of the LifecycleContext class:

  • getDataAction()
  • setDataAction()
  • getRequestParameters()
  • setRequestParameters()

oracle.adf.controller.struts.actions.DataAction Class

The execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.ServletRequest, javax.servlet.ServletResponse) method is now a final method. executeImpl(oracle.adf.controller.struts.actions.DataActionContext) has been removed. To customize DataAction behavior, extend the lifecycle functionality.

The following methods are no longer part of the DataAction class:

  • getParameters(oracle.adf.controller.struts.actions.DataActionContext) You can obtain request parameters from the HttpServletRequest by using the following code:

     HttpServletRequest request = actionContext.getHttpServletRequest();
     return request.getParameterMap();

  • initializeRequestParameters(oracle.adf.controller.struts.actions.DataActionContext)

Changes in Exceptions Thrown by Data Action, Lifecycle, and LifecycleContext Methods

Several of the methods in the the oracle.adf.controller.Lifecycle interface and the oracle.adf.controller.lifecycle.LifecycleContext and oracle.adf.controller.struts.actions.DataAction classes now throw different exception types. For example, the method DataAction.hasErrors(oracle.adf.controller.struts.actions.DataActionContext) used to throw a ServletException and an IOException. Now this method does not throw any exceptions.

Other methods have gained or lost exceptions. You can easily resolve these incompatibilities by:

  1. Compiling your migrated applications using Oracle JDeveloper 10g.
  2. Checking your compilation errors and correcting the code.

Changes in Method Return Types

Several of the methods in the the oracle.adf.controller.Lifecycle interface and the oracle.adf.controller.lifecycle.LifecycleContext and oracle.adf.controller.struts.actions.DataAction classes now have different return types. For example, LifecycleContext.getControlActionBindings() now returns a List instead of an ArrayList. You can also resolve these incompatibilities by fixing your migrated code based on the compilation errors you get.

Default Iterators for View Object Rowsets Advance to First Row When Bound to ADF Iterator Bindings

The new ADF iterator bindings in JDeveloper 10g cause the iterator to which they are bound to advance to the first row in the rowset. This is the optimal behavior for the UI rendering of those rows, and the behavior is required for ADF iterator bindings to work correctly with standard JSP tag libraries like JSTL.

However, this new behavior can cause trouble for existing application logic when you migrate a BC4J application to JDeveloper 10g and begin to add new ADF iterator bindings to your application. Consider the following hypothetical application module method representing some user-written business logic.

public boolean employeeExists(Number empno) {
  EmpViewImpl eview = getEmpView();
  eview.setWhereClause("empno = :1");
   * ~~~~~~~~~~~~~~~~
   * When no ADF iterator bindings are bound to the "EmpView"
   * view object instance -- more precisely, to the default iterator
   * of its default rowset -- then immediately after executeQuery()
   * the iterator will be at the slot before the first row. Assuming
   * this query retrives a single row, then the eview.hasNext() will
   * be true, since we haven't yet advanced to the first row.
   * When an ADF iterator binding is bound to "EmpView" then after
   * the executeQuery() the iterator will advance to sit on the first
   * row of the result -- in this case, the only row in the result --
   * and the eview.hasNext() will return false.
  if (eview.hasNext()) {
    return true;
  else {
    return false;

The issue can also surface in middle-tier business logic which is written to loop over rowset results and perform some operation on each row. Examples include calculating the sum of some numeric attribute in each row, but not limited to this. For example, you might have code like:

public Number shoppingCartTotal() {
  ShoppingCartImpl cart = getShoppingCart();
  double total = 0;
   * ~~~~~~~~~~~~~~~~
   * When no ADF iterator bindings are bound to the "ShoppingCart"
   * view object instance, then immediately after the reset() call above
   * the iterator will be at the slot before the first row. The loop
   * below will operate over all N rows in the rowset coded like this.
   * When an ADF iterator binding is bound to "ShoppingCart" then after
   * the reset() call, the iterator will advance to sit on the first
   * row of the result. If the loop code is not changed, then it will
   * operate on the 2nd through the Nth rows, missing the first row.
  while (cart.hasNext()) {
    ShoppingCartRowImpl curCartItem = (ShoppingCartRowImpl);
    total += curCartItem.getExtendedTotal().doubleValue();
  return total;

There are two basic solutions to the issue:

  1. Where just testing whether the first row exists, use the first() API and test whether it is null or not.
  2. Where performing iteration over the rowset, use the createRowSetIterator() API to create a secondary iterator for use in middle-tier programmatic business logic instead. Remember to call closeRowSetIterator() on the iterator when you are finished with the loop if you do not want the iterator to remain around and active.

Use these best-practices for new code that you write as well. Following the two pieces of advice above, the two examples illustrated above would be rewritten like:

public boolean employeeExists(Number empno) {
  EmpViewImpl eview = getEmpView();
  eview.setWhereClause("empno = :1");
   * Using first() instead of hasNext() to test for existence of
   * at least one row in the result since default iterator might be
   * bound to an ADF iterator binding being used in the view layer
  if (eview.first() != null) { /* Using first() instead of hasNext() */
    return true;
  else {
    return false;


public double shoppingCartTotal() {
  ShoppingCartImpl cart = getShoppingCart();
   * Using secondary iterator since default iterator
   * might be bound to an ADF iterator binding being used
   * in the view layer
  RowSetIterator cartIter = cart.createRowSetIterator(null);
  double total = 0;
  while (cartIter.hasNext()) {
    ShoppingCartRowImpl curCartItem = (ShoppingCartRowImpl);
    total += curCartItem.getExtendedTotal().doubleValue();
  return total;

Migrating UIX/Struts/Oracle ADF Applications from Oracle JDeveloper 10g Preview

When you drag a method binding from the Data Control Palette to a UIX page in the UIX Visual Editor, a submit button is created. The buttons you created this way in Oracle JDeveloper 10g Preview do not work in the current release.


  1. Open the UIX page in the UIX Visual Editor.
  2. Select and delete each submit button that was created by dragging a method binding to the page.
  3. Replace the deleted submit button by dragging the method binding from the Data Control Palette again.
  4. Save the updated file.

TopLink Data Bindings Created in JDeveloper 10g Preview not Compatible with JDeveloper 10g (3541371)

Due to changes in the Toplink data control implementation, you cannot use TopLink data bindings created in JDeveloper 10g Preview in JDeveloper 10g. You need to delete and recreate any data bindings that access Toplink data controls. Migration of your current project(s) is not possible due to the major restructuring done to the Toplink Data Control.

Text Property Removed from Action Bindings Since JDeveloper 10g Preview

The text property was used in JDeveloper 10g Preview to provide Expression Language (EL) support for accessing the button title. Because this property does not support resource bundles, it was removed. If you used EL to access this property, remove any references and replace them with the actual button text or use a ResourceBundle.

Iterator Binding Hierarchy Support Added Since JDeveloper 10g Preview

JDeveloper 10g Preview did not support iterator hierarchies. In a databinding scenario, if a master-detail relationship is encountered, the detail iterator needs to depend on the master iterator. The preview release did not define these relationships properly. In order to create the proper XML entries for your bindings, you need to delete and recreate any iterator bindings that rely on master-detail relationships.

Method Iterators No Longer Use UIModel Name in the Binds Property

The Binds property of the method iterators used a syntax in JDeveloper 10g Preview that included the UIModel name. These references need to be updated to remove the UIModel name.

For example, change the following iterator definition:

         BeanClass="model.Book" >


         BeanClass="model.Book" >

Migrated 9.0.X UIX/BC4J/JSP Applications Do Not Have UIX Resources and Styles Available (3365125)

If you migrate a 9.0.X UIX/BC4J/JSP complete application project to JDeveloper 10g and then run the application, the UIX resources and styles are not seen at runtime. This is because the migration process only removes objects and files that are related to prior versions of the product; it does not add the new installables.


  1. Migrate your applications.
  2. Rebuild the model and view projects individually for your 9.0.X applications to add the latest UIX resources and styles.

NPE(LOADDRILLMARKER) When Browsing the Chart Data Web Bean (3507792)

When migrating a BC4J JSP Web application making use of Chart DataWebBean, a null pointer exception is thrown if the legend marker is on. This happens when the chart image is rendered.


  1. Switch off the legend marker.
  2. Modify the generated scriptlet as follows:


JClient JAR File Renamed From bc4jui.jar to adfjclient.jar (3328121)

The bc4jui.jar contains only Swing classes and has been renamed as adfjclient.jar. When migrating a JClient project into JDeveloper 10g from a previous release, you must update the project to include adfjclient.jar.

JClient Data Binding Changes Limit Usage with JDeveloper 9i Projects (3407704)

When migrating a project from JDeveloper 9.0.4 or earlier to JDeveloper 10g, you will be able to work with control bindings by selecting the control's Model/Document property in the Property Inspector. However, you must not use the new ADF-style bindings (that you create using the Data Control Palette) in the panels and forms that you previously created. Mixing the new bindings with old bindings on the same panels and forms will not work. You can, however, create new panels and forms using the Data Control Palette and add them to your existing application. These new panels and forms can use the new ADF-style bindings.

When you use the Property Inspector to display the model binding editor for a control that you want to customize, JDeveloper will display the binding editor appropriate to the style of the binding (either for JDeveloper 9i, and earlier, style bindings or for the new ADF-style bindings in JDeveloper 10g). The displayed binding editor will generate the binding code appropriate to the binding style used by the form or panel. Note that the usage of the Structure window's UI Model tab to edit control bindings is reserved for ADF-style bindings only. JDeveloper 10g does not support creating new panels and forms with the old-style bindings. You must import a project created in JDeveloper 9i, or earlier, into JDeveloper 10g in order to continue to work with the old-style bindings.

Webstart Migration


JDeveloper 9.0.3 PL/SQL Web Service has Compile Errors When Regenerated (3023311)

If you open a JDeveloper 9.0.3 project and attempt to regenerate a PL/SQL web service in that project, it will be left in an uncompilable state afterwards.


Regeneration of Migrated Web Service May Result in an Incomplete Deployment Profile (3506154)

When you regenerate a web service that has been migrated from a previous version of JDeveloper, you may find that the regenerated interface is missing from the deployment profile which will cause the deployed service to be inaccessible.


WS-I Test Tools Location Must be Entered Again (3535897)

If you migrate user settings from JDeveloper 10g Preview, the location of the WS-I test tools will appear to be correct, however you have to enter the location again to populate a hidden field which is necessary for the analyzer code to function correctly.

Go to *Tools | Preferences* and choose WS-I Testing Tools. Re-enter the home location for the testing tools by browsing to the folder or by typing in the location.

Oracle JDBC Drivers

Oracle JDeveloper 10g Production is distributed with the Oracle JDBC drivers from Oracle 10g Application Server. These drivers support the following database versions:

The OCI driver requires the Oracle Client version to match the JDBC driver version. An Oracle Client version to match the JDBC drivers distributed with JDeveloper won't be available until Oracle 10g Application Server is available, so the OCI driver distributed with JDeveloper will not work in the Production release. Use of the Thin driver in Oracle JDeveloper 10g Production is recommended. However, if the use of the OCI driver is required, it is possible to install a different version of the JDBC drivers in JDeveloper (see the JDeveloper Help for details).

OC4J Issues

OC4J Version Shipped with Oracle JDeveloper 10g

JDeveloper also ships a copy of OC4J 9.0.4 which you can run in standalone mode. The files for the standalone server are located in:
  • < jdev_install>/j2ee/home/config
If you deploy your applications to standalone OC4J, make sure that you use the remote admin.jar file that was shipped with the remote OC4J. If you are using an admin.jar that doesn't match the version of OC4J to which you are deploying, deployment may fail. You can configure deployment to use the correct admin.jar for the OC4J standalone instance when you set up your connection using the JDeveloper Application Server Connection Wizard. To identify the standalone OC4J version that you are using, enter java -jar oc4j.jar -version from your OC4J installation directory:

OC4J Memory Requirements


If you get a java.lang.OutOfMemoryError, you have two options:

  • If your machine lacks sufficient free memory to run OC4J with a larger maximum heap size, shut down the Java process that runs OC4J and restart it with the -Doracle.j2ee.dont.use.memory.archive=true flag to turn off class preloading, for example:
  • Java -Doracle.j2ee.dont.use.memory.archive=true -jar oc4j.jar

  • If your machine has at least 512 MB of free memory, OC4J will run more quickly if you leave preloading enabled, but startup time will increase considerably. Shut down the Java process that runs OC4J, and restart it with a larger maximum heap size using the -mx flag, for example:
  • Java -mx512M -jar oc4j.jar

Deployment Issues

Problems in JSP Applications Deployed to Tomcat (2615358)

Only one of the two parameters ... or ... should be defined.

This is caused by an error in Tomcat's tag pooling mechanism. Because Tomcat does not release tags after pooling, subsequent uses of the same tag with incompatible attributes defined will cause this error.

To avoid the error, you must disable tag pooling in Tomcat:

  1. Open the file <tomcat_home>/conf/web.xml in a text editor.
  2. Find the following element:
  3. <init-param>
  4. Change the value of <param-value> to false.

XSQL Page Processor Cannot Read Pages from Unexpanded Servlet 2.2 WAR File (1552039)

Type Incompatibilities when Deploying to WebLogic


WebLogic6.1 Fails to Understand 'Windows-1252' Encoding in XML Files

  1. Open Tools | Preferences.
  2. In the Environment panel change the Encoding field to UTF-8.
  3. Click OK.

ejb-ref in web.xml not Updated if the Bean Type is Changed from Remote to Local (2589997)

Creating a JSP application for a BC4J session facade results is an ejb-ref entry in the web.xml of the that project. If you change the interface type of that facade, from local to remote or vice versa, then you must update the ejb-ref entry in web.xml. For example if you change the bean type from remote to local then you must replace the <ejb-ref> section in web.xml with the appropriate <ejb-local-ref> tags.

Proper Deployment Profiles not Shown for Projects with ADF UIX Technology Scope (3316426)

When working with a project that has only the ADF UIX technology scope assigned, in the "New Gallery" dialog the proper list of deployment profiles does not display with the filter set to "Project Technologies". Switching the filter to "All Technologies" will display the full list of deployment profiles.

Additional Details for Deploying UIX Applications to WebLogic (3390872)

In addition to the provided documentation for deploying UIX applications to WebLogic, the following additional details may be helpful:

  1. When extracting the EAR/WAR archive files, the target directory for the archive contents must have the same name as the archive. For example, if you are extracting webapp1.ear which contains webapp1.war, you must have the following structure on disk: /webapp1 (EAR contents) /webapp1/webapp1/ (WAR contents)
  2. After extracting the archives you need to edit the application.xml in the EAR file to point to the expanded directories instead of pointing at the WAR files.
  3. After expanding the EAR and WAR files, these should be deleted, as only the extracted files are part of the application.

Deploying CMP Entity Beans to OC4J 10g Preview Releases

You can deploy container-managed persistence (CMP) entity beans from JDeveloper 9.0.5 to OC4J 10g (10.0.3) Preview or OC4J 10g (10.0.3) Preview 2, by configuring your application to use the OC4J Native persistence provider:

  1. Right-click the orion-ejb-jar.xml deployment profile and choose Properties.
  2. In each CMP entity bean page, choose native_cmp from the Persistence Manager dropdown menu.
  3. In the Persistence Manager page, change the Name to native_cmp.

Start OC4J with the invocation:

java -jar oc4j.jar

Oracle Application Development Framework Issues

Please check Migration Issues for ADF specific migration information.

ADF DataAction for Struts Known Issues

Best Practice for ADF Binding to Method Results


ADF Business Components Issues

Batch Mode not Supported for Applications Created in JDeveloper 9.0X

An application that has been migrated to JDeveloper 10g from an earlier version of JDeveloper cannot use batch mode. Batch mode is only available for applications created using JDeveloper 10g using the ADF Binding Layer.

View Object Custom Methods In Batch Mode

When running in "batch mode", client-side code making use of a custom ADF View Object interface must do so by first returning the view object (cast to this custom interface) from a application module custom method. Otherwise, a ClassCastException can be thrown.

Don't Use "Scan Source Path" Project with ADF Business Components (3508285)

The JDeveloper project option "Scan Source Paths to Determine Project Contents" does not work reliably for ADF Business Components. For this release, we recommend not using this project option if your project contains any ADF business components.

Apache Struts Restrictions

Multiple Struts Application Modules within a Single Project not Supported

This release of the Struts diagramming can only support a single Struts Diagram per workspace project. Multiple Struts configuration files should be split off into individual projects. A detailed document describing how to handle multiple configuration Struts applications can be found on the OTN JDeveloper How-To page: (

Only Partial Support for Tiles Based Applications

Tiles based applications can be used with Struts in JDeveloper 10g, however, it is not possible to use the page flow diagrammer view with such applications. Direct editing of the Struts Configuration file, the Struts Console editor, and the use of the Structure pane and property inspector are still all available to developers of Tiles based applications.

Struts Servlet Should be Called Action (3393123)

When Struts is used in an application JDeveloper expects that the Struts servlet-name is set to "action" in the web.xml file. e.g.



Applications can use custom servlet classes that extend ActionServlet, but should retain "action" as the name of the servlet.

<welcome-file> Entries in Web.xml (3423938)

When an Action is defined as the default start action of a Struts Page flow (using the context menu in the page flow diagram), the project properties are updated to make the designated action the default run target. Additionally, if the starting action is a Forward Action the web.xml <welcome-files> collection is updated with a new <welcome-file> entry for the designated page. In some cases you may want to amend this entry in web.xml to use a page which redirects to a Struts action rather than the underlying ActionForward's page. Additionally, if the default start action is set several times in a project, multiple entries may be added to the welcome file list.

Action Attribute Must be Edited When Using HTML Form in JSP Pages (3452660)

When the component you insert into a Struts-based web page requires a Form element, such as an input field, JDeveloper will prompt you to insert the component inside a Form that it creates for you. The Form element is used at runtime to submit the values with the Request object and contains placeholder text to specify the target Struts action:

<html:form action="/">

You must edit the action attribute to specify the name of the action that your page flow uses to handle the form input. For example, change / to / when the name of the action is MyActionName.

Drag and Drop of Method on to Data Page/Action Fails with Overlapping Forward Label (3443358)

When working in the struts page flow modeler if the text label of a forward is positioned so that it overlaps a data page/action, it can be difficult to drag methods from the data control palette on to the data page/action. Moving the forward label off of the data page/action will allow successful drag and drop of methods on to the data page/action.

Data Binding Issues

Avoiding Performance Problems Fetching Data or Retrofitting Client Side Cache (3278854)

To avoid performance problems in fetching data or retrofitting client side cache with a modified rangeSize, it's advised to set the same rangeSize for all usages of a RowSetIterator associated to iterator bindings in multiple binding containers of the same application/application flow.

Scalar Attributes Returned by Bean Accessors (3389123)

Scalar attributes returned by Bean accessors are marked as 'readonly' in ADF databinding. Support for updating these values is not implemented in this release.

NoDefExeception When Rendering a Bean with No Scalar Attributes (3475505)

Using the <adf:render> or <adf:inputrender> tags will throw an oracle.jbo.NoDefException when you attempt to render a bean that contains no scalar attributes.

oracle.jbo.domain.Array data type (3412750)

The oracle.jbo.domain.Array data type can be rendered using custom Input/Value renderer in JSPs and JUArrayComboBox in JClient. In future releases these Array objects may be dereferenced and treated as a collection type so that its node can be expanded and the Array content (if nonscalar) is accessible on the DataBinding Palette for drop.

Not Possible to Set Type of Rowset Return Type in Custom AM Method (3323420)

There is no way to set the type (or bean class) of a collection return type of a custom application module method. In other models you can edit the xml file and set the bean class of a collection. However, there is no way to do this for the BC4J model. You can work around this by providing a dynamic widget that doesn't require the metadata at design time.

If Secondary RSI is Used for Master, no Detail Rows are Returned (3507403)

If a viewlinked master/detail is dropped on a page and then Master ViewObject's RSIName is modified to be non-null, then the detail is not actively coordinated with the master as the dropped detail is bound to a default RowSetIterator on the master ViewObject (and not the named RSI). The workaround is to not edit/modify the RSIName for the master ViewObject's iteratorBinding. Leave it as null.

File Upload in JSP Model 1 Applications

If you are not using a page flow controller and have a databound JSP page which needs to expose upload to database functionality through a file upload control, you will need to carry out some manual steps to configure the project. Note, if you are using the Struts page flow controller in you project, these steps will not be required.

  1. Ensure that your <form> tag has the correct multipart encoding set e.g.
    <form method="POST" action="upload.jsp" enctype="multipart/form-data">
  2. Inside of the form, the upload field and browse button should be represented using an<adf:inputrenderer/> tag on the relevant attribute e.g. for an attribute called Image
    <adf:inputrender model="bindings.Image" />
  3. Edit your web.xml file and add the following filter definition:
    You can add this directly after the existing ADFBindingFilter entry
  4. Also in the web.xml add the following filter mapping:

DataControl Ids in .cpx File Must be Unique (3539053)

When you work with more than one business service in your client project, the Id for each DataControl in the .cpx file must be unique. When you use the Data Control Palette to design your document, the data control references are added to the .cpx file with unique Ids for you. To avoid creating a runtime error, do not edit the Id property of the DataControl (in the Property Inspector) in the .cpx file to use the same name.

JClient Issues

Intermedia Controls no Longer Available for ADF JClient

In Oracle JDeveloper 9.0.5 no Intermedia controls are available in the Data Control Palette for ADF JClient. This means that developers will not be able to create new applications using JClient Intermedia controls. However, the required Intermedia libraries are still shipped with JDeveloper 9.0.5 for backward compatibility reasons. JClient applications of previous Oracle JDeveloper releases that use Intermedia continue working when upgraded to ADF JClient.

Tooltip Text is not Picked up by JClient clients (3442568)

JClient clients ignore any tooltip text that has been entered for an underlying entity object attribute or view object attribute. To workaround this issue you can set the tooltip text in your client code. This example shows how to set the tooltip text for the Deptno attribute:


JTable Displayed in Java Visual Editor Doesn't Sync with Attribute Selections (bug 3333683)

When you use the Data Control Palette to drop a JTable control into a JClient panel or form, the table will initially display all attributes (columns) of the selected collection. To modify the table's list of display attributes, you can use the Table Binding Editor, however, the changes will not be reflected immediately in the Visual Editor. In order to synchronize the Visual Editor with the table's binding information (saved in the form or panel's UIModel.xml file), you can either recompile the class file, or you can merely resize the table in the Visual Editor.

Unable to Edit Data Model by Right-Clicking JClient .cpx File (bug 3415590)

In previous releases, it was possible to reenter the Business Components Data Model Definition Wizard in order modify an existing client data model (to select a Business Components application module). That right-click option is no longer present on the JClient .cpx file. To modify the .cpx file settings, select the file in the Application Navigator and display the Property Inspector. All changes to the .cpx file can be made through the Property Inspector.

JClient Controls Ignore Business Components Control Hints at Design Time (bug 3405193)

The display width and display height set for the Business Components attributes in the Entity Object Editor or View Object Editor will not be used to render the control in the Java Visual Editor.

JClient Controls Bound to a Collection are Not Visible in the Java Visual Editor (bug 3379812)

After you insert a control from the Data Control Palette that you bind to a collection (such as a table, tree, list, or graph) into the JClient panel or form, the control will have a size of 0 width and 0 height. The 0,0 size initially makes it impossible to resize the control in the Visual Editor. To display the control so it can be resize, select the control in the Structure window and edit the size properties in the Property Inspector.

Need to Force an Execute Query When Displaying Object Attributes in JClient Text Fields (3533181)

When using JClient text fields to display the attribute values of an object, such as those defined by an Address object, the fields will not display the attribute values (they will display instead some static text). If you bind a text field to an object attribute, you can ensure the value is correctly displayed in the JClient panel by forcing the query to reexecute on the iterator binding of the bound object. To force executeQuery() on the object's iterator binding, add this method call after jbInit() is done in the panel, where "Street" is replaced by the name of your object attribute binding:


It is only necessary to call executeQuery() on one of the object domain attributes (like Street) to force the iterator binding to refetch all attribute values of the same object.

Adding Multiple Instances of JClient Panels

Existing ADF JClient panels can be reused in other JClient panels:

1. Click onto the Custom... icon in the Component Palette for Swing.
2. In the Class Browser select the JPanel to add.
3. Add the existing JClient Panel to another JClient panel.

The following code lines help avoid the oracle.jbo.JboException:35001 being raised when adding multiple instance of an existing JClient panel to another JClient panel or when launching multiple instances of a panel from the same binding context.

This example assumes that the JClient panel that gets added or launched multiple times is named The target JClientPanel - hosting multiple instances of - is assumed to be named

You first need to create a new BindingContainer instance by adding a new BindingContainerReference in the bindingContext name and then bind the second panel instance of EmpPanel to the second bindingContainer.


private JUPanelBinding panelBinding = new JUPanelBinding("MainPanelUIModel");
private EmpPanel empPanel1 = new EmpPanel();
private EmpPanel empPanel2 = new EmpPanel();


// EmpView1 is the View Object referenced by
String VoDefStr = panelBinding.getApplicationModule().findViewObject("EmpView1").getDefFullName();

DCIteratorBinding iter = empPanel2.getPanelBinding().findControlBinding("EmpView1").getIteratorBinding();
iter.bindRowSetIterator(iter.getDataControl().getApplicationModule().findViewObject("EmpView2"), true); 


In the file create the following method:

public void createNewInstance(JUPanelBinding pb,String sViewName, EmpPanel _ep)
     String secondPanelName = sViewName;
     pb.getBindingContext().put(secondPanelName,new DCBindingContainerReference

This creates a new binding container reference with the name provided as the sViewName argument. A new instance is also created for the view object that is referenced by EmpPanel.


Please check Migration Issues for JClient specific migration information.

Toplink Issues

Using JDeveloper with Future Releases of OracleAS TopLink

To use JDeveloper with future releases of OracleAS TopLink, you must add all the dependencies for the specific TopLink release to your project classpath.

Importing Projects from TopLink Mapping Workbench

Use this procedure to import your OracleAS TopLink Mapping Workbench project ( .mwp) into Oracle JDeveloper 10g. Before completing this procedure, you should create a backup copy of your original Mapping Workbench project.

To Import a Mapping Workbench Project:

  1. Create a new JDeveloper TopLink-enabled project.
  2. Create an offline database object for the project. Use one of the following methods to create the necessary database tables (as identified in the \mw\table directory of the Mapping Workbench project).
  3. Close the JDeveloper project.
  4. Copy the following files and directories from the original Mapping Workbench project:

    Copy this element from the Mapping Workbench Project... To this location in JDeveloper...
    <file name> .mwp Rename the file to toplink_mappings.mwp and place in the JDeveloper <project name> directory.
    descriptor directory <project name> /descriptor
    Java source files and directory�structure <project name> /src
    For EJB 2.0 CMP projects: <project name> /META-INF

  5. In a text editor, open the toplink_mappings.mwp file and make the following changes:
    Change the project's <name> element
    Change the project's <name> element to toplink_mappings.
    Convert each database table's <name> element
    The <database-table> element lists each database table in a <name> element. This <name> may include a catalog, schema, and table name. You must change each table to include only a schema and table name.
    The following table demonstrates several sample conversions.

    If your Database Table
    <name> Element Contains...
    Convert the <name> Element to...
    <name>Schema.Table</name> No conversion required
    <name>Table</name> <name>Schema.Table</name>

  6. In a text editor, open each descriptor's <project�name> /descriptor/ <descriptor name> .xml file and make the following changes:
    Convert the descriptor's table elements
    For each database table <name> that you changed in the toplink_mappings.mwp file, you must make the identical name change in the following elements in each descriptor's <project�name> /descriptor/ <descriptor name> .xml file:
  7. Reopen the JDeveloper project and use one of the following methods to add the source files to your project:
  8. For EJB projects, choose File > Import > EJB Deployment Descriptor File. Use the wizard to import the <project�name> /META-INF/ejb-jar.xml and /src files.

Cannot Modify the Primary Key Attribute of an Object in a Unit of Work (3376332)

You cannot modify the primary key attribute of an object in a Unit of Work. This is an unsupported operation and doing so will result in unexpected behavior (exceptions and/or database corruption). To replace one instance of an object with unique constraints with another, use the Unit of Work setShouldPerformDeletesFirst method. Refer to the OracleAS TopLink Application Developer's Guide for more information.

orion-ejb-jar.xml Required to Deploy Using TopLink CMP (3492309)

<persistence-manager name="toplink"/>
<entity-deployment name="Address" data-source="jdbc/TopLinkDS" table="TLTUTORIAL.EJB_ADDRESS"

Clicking on a CMP EJB will add PM-name="toplink" attribute entries for the <entity-deployment> tag for that CMP EJB. This is due to the fact that clicking on the TopLink mapping tab for a CMP EJB sets the persistence manager as TopLink. Make sure you have PM-name="toplink" attribute entries set for each EJB CMP in the orion-ejb-jar.xml.

You may also follow the process listed below to create PM-name="toplink" attribute entries.

  1. Create a minimal orion-ejb-jar.xml by going to the "New Gallery" and selecting "Deployment Descriptors->orion-ejb-jar.xml".
  2. Click on "TopLink Mappings" node in the application navigator.
  3. Click on each CMP EJB in the TopLink Mappings Structure pane. This will open the TopLink mapping editor and PM-name="toplink" attribute entries for the <entity-deployment> tag for that CMP EJB.

Exception When Mapping Classes with TopLink Technology Scope (3530302)

Users will get an oracle.toplink.workbench.external.meta.ExternalClassNotFoundException error if they try to import new classes (.java) into a project with the TopLink technology selected, and subsequently attempt to map these classes by selecting the "add descriptor" button under the TopLink node in the Structure pane. In order to eliminate this error, users should compile the classes once before mapping them the first time.


Please check Migration Issues for Toplink specific migration information.

Web Services Issues

Insight Not Available for WSDL Documents (2954818)

JDeveloper cannot rely upon there being a live network connection available on start-up, and as the relevant schemas are all on the W3C site, which JDeveloper can't copy into its local install for legal reasons, JDeveloper does not pre-register any xml schemas for the WSDL file type. Therefore code insight is not available for WSDL documents in JDeveloper's XML Editor.

Compilation Errors After Regeneration of PL/SQL Web Service (3431499)

It is possible that after you regenerate a PL/SQL web service you will get compilation errors caused by some files being removed from the project during regeneration. To correct this, you need to add the files back to the project by hand.

In the navigator, select the web service node and click on the Add to Applications button (with a + sign). In the dialog, navigate to the \src\ <package> directory. Select all the .sqlj files and click Open. Now you should be able to compile the project without any errors.

In the Find Web Services Wizard, JAWS Will Only Return a Valid Value Once the Row is Loaded (3194304)

If you use an accessibility reader such as JAWS, you need take care using the Find Web Services wizard. On the tModel page of the wizard you need to wait until a row has properly loaded before you can be sure that the 'Is WSDL' column is returning a valid value. You can do this by moving to the Description column first. While the row is being loaded, the Description column returns "Loading". Once the row is loaded, the Description column returns a description of the web service. Now you can go to the 'Is WSDL' column and read the value.

Changing the Project in the PL/SQL Web Services Wizard May Fail to Update the Context Root for the Endpoint (3477647)

In step 1 of the PL/SQL Web Services wizard, there is a combo box which allows you to choose the project into which the service will be generated. Once you move onto step 3 of the wizard you will see that the web service endpoint has been automatically generated using the context root of the chosen project.

However, if you decide to go back to step 1 and choose a different project, then moves forward to step 3 again, you will notice that the automatic regeneration of the web service endpoint has failed and the endpoint still reflects the context of the originally chosen project.

You will need to manually update the endpoint in the wizard to reflect the correct context root for the project before generating the web service, otherwise the endpoint in the generated WSDL document will be incorrect and any stub generated to access the web service will point at the wrong endpoint. Alternatively, you may re-edit the web service after generation to reflect the correct endpoint on regeneration.

Must Use Schema Qualified Name for PL/SQL Web Service (2966028)

In a PL/SQL web service that uses XMLTYPE as a parameter or an attribute of an object type, you must use the schema qualified name of SYS.XMLTYPE.

Web Service Stub Fails if Generated from JDeveloper Install Path with Space (3068701)

If you install JDeveloper in a path where any of the folders have a space in the name and then generate a web service which you run on the embedded OC4J server or on an external instance of the OC4J server, you will find that a stub to the service will fail when the web service is called.

The workaround is to install JDeveloper in a path without a space in any folder name.

Cannot Generate Stubs for Web Services which Reference Base64 (2920137)

The WSDL validation on the Select Web Service Description page of the Create Web Service Stub/Skeleton wizard does not recognize the XML Schema type base64 from the schema. As a result, you will not be able to generate services from any WSDL files which reference this type.

SOAP Web Service Does Not Start New Session (2218102)

When you have a SOAP web service created using JDeveloper that uses a scope of "session", it does not start a new session when accessed by a different client.

JPublisher Generates Incorrect Code if the PL/SQL Package Name Contains Hyphens (3522618)

If you are generating a PL/SQL web service for a database package that contains hyphens in its name, the SQLJ files generated by JPublisher will be incorrect as hyphen (-) is not a valid character in a Java identifier.

The workaround is to edit the SQLJ file generated by JDeveloper, and surround the occurrence of the package name with quotes (""), then rebuild.

Location of WS-I Log File has to be on Same System Drive as JDeveloper (3535903)

The location of the WS-I log file, which you set in Tools | Preferences | WS-I Testing Tools, must be on the same system drive as in JDeveloper, otherwise the log file is not written. For example, if JDeveloper is installed on drive D:, the location of the WS-I log file must also be on drive D:.

Please check Migration Issues for Web Services specific migration information.

UIX Issues

UIT Templates not Available for Context Menu Insertion (3038299)

Under certain conditions all of the .uit templates in a project may not appear on the context menu for insertion into a UIX page. Performing a Save All operation will force all the templates in the project to be available.

Setting Source Attribute for UIX Image Component Fails if Image on Different Drive (3458363)

When setting the source attribute for an UIX image component, if you choose an image that is outside of your html_root directory and located on a different drive than JDeveloper is installed, the optional copying of the file into the html_root fails. Workaround is to manually move/copy the image file in the file system.

Live Data in UIX Preview

UIX Preview does not support showing live data for pages bound using ADF Data Controls in this release.


Please check Migration Issues for UIX specific migration information.

XML Schema Editor Limitations

The XML Schema Editor has the following limitations in this release:


You can easily view the annotation of any item in the XML Schema Diagram by holding the mouse pointer over the item and viewing its tooltip. In addition, you can edit the annotation by right clicking on an item and selecting "Edit Annotation..." The annotation that is viewed and edited in these cases is the first "documentation" element. Currently, if you want to add additional documentation elements, or appInfo elements, the XML Code Editor must be used to enter these items.


The type of most items, such as complex types and elements, can be easily viewed and set in the XML Schema Diagram. However, attribute types may only be viewed and set in the Property Inspector at this time.


The XML Schema Editor allows you to create simple types and add facets to them. However, the facets are not validated against the base type. For example, it is possible to add a "maxDigits" facet to a simple type based on the XML Schema "string" type, even though this does not have any meaning.

Identity Constraints

At this time, there is no support in the XML Schema Diagram for key, keyref, and unique elements. You can still work with these items in the Structure Pane, Property Inspector, Component Palette, and XML Code Editor.


A this time, there is no support in the XML Schema Diagram for the redefine element. You can still work with this item in the Structure Pane, Property Inspector, Component Palette, and XML Code Editor.

Substitution Groups

Substitution groups are not currently displayed in the diagram, but the substitutionGroup attribute can be set using the Property Inspector.

Printing and Saving

At this time, the XML Schema Diagram cannot be saved to an image file or printed.

Modeling Issues

Erasing UML Diagram Elements From Disk (3421852)

If you have class or interface that is modeled on a diagram, and you use Erase from Disk to remove the class or interface from the navigator, you may find that it still appears on the diagram. This occurs when you have created the class or interface and saved it, then closed JDeveloper. Then after restarting JDeveloper, you have erased the class or interface from the navigator.

The workaround is to manually delete the modeled class or interface from the diagram.

Erasing Modeled EJBs From Disk (3100651)

When you have an EJB that is modeled on a diagram and you select Erase from Disk from the modeled EJB's context menu, the EJB is still shown in the navigator. To remove it, select the EJB and choose File | Remove from package. When you have an EJB that is modeled on a diagram, and you Erase from Disk the EJB in the navigator, the modeled EJB is still displayed. To remove it, select it and choose Erase from Disk from the context menu.

The workaround is to close the diagram before erasing the EJB, and erase the EJB from the navigator.

Pages Not Automatically Added to Diagrams (3269851)

Some diagram operations can result in shapes being positioned outside of the existing diagram pages, with no new diagram pages added on which to display them. To display the diagram correctly, save and close the diagram, then reopen it to display the diagram correctly.

Deleting Element from Diagram without Deleting Constraint Affects Node in Add to Diagram Dialog (3431254)

When you have an element with a constraint attached to it modeled on a diagram, and you delete the element but not the constraint, you will not be able to expand the Constraint node on the Add to Diagram dialog.

Renaming a Modeled Java Class to an Invalid Name Causes Errors (3495725)

Using Tools | Refactor to rename a Java class on a diagram to the package name, e.g. changing mypackage1.JavaClass1 to mypackage1, causes an error to be displayed when you try to model another class on the diagram. To avoid this, do not change the name of a modeled class to be the same as the package name.

Team Based Development Issues

CVS Support: Using Backslash Notation to Create NT PSERVER Connection (3075917)

When there is a drive letter in the repository field of a CVs connection's root value, you must not use the drive letter followed by two forward slashes, e.g. d//cvshome. Instead the repository should be qualified by either an initial forward slash, e.g. /d//cvshome, or you should use a colon after the drive letter, e.g. d:\cvshome.

WebDAV: Unable to Unlock Files on WebDAV Connection to Oracle9iAS Server (2624464)

If you lock a file on a WebDAV connection to an Oracle9iAS server, that file cannot be unlocked using JDeveloper.

CVS Support: Using CVs with Oracle Application Development Framework (3514183)

When you create a Struts Page Flow diagram and data pages, the file standard.jar is created and added to the project. Before you import the project into CVs using Import Module, you must edit the cvswrappers file in the CVSROOT module to ensure that the CVs repository handles all .jar files as binary rather than text. To do this:

  1. Check out the CVSROOT module.
  2. Edit the cvswrappers file, which specifies filtering behavior based on the file name, to add the following lines:
    *Jar -k 'b'
    *Jar -m COPY
  3. Commit the file.

UNIX-Specific Issues

JAAS Authorization for ADF Entity Objects

On Linux, Solaris, and HP-UX, before you make use of JAAS authorization for ADF entity objects, you should ensure that the user running JDeveloper has write permissions on the file jazn-data.xml.

JBO Chart DataWebBean Does Not Find Class on Solaris 8 with OC4J (2471361)

The Chart DataWebBean class is not found when running JDeveloper on a Sun machine running Solaris 8. This may happen if XServer is not started on the Solaris server machine and if the DISPLAY environment variable is not set properly for remote workstations.


1. Verify that the Xterm process is running on the Sun server machine. Run the following command:

        ps -ef | grep Xsun

If this command returns a result, then the Xterm process is functioning. If there are no results, start Xterm on the server.

2. At a remote GUI workstation, open a session as the root owner and enter the following command:

        xhost +

3. Open another session on the same workstation and telnet to the UNIX server that will run the OC4J application. Start the OC4J container.

If you reboot either the Sun server or GUI workstation, you must repeat this process.

Running CodeCoach from the Command Line on Linux

;-Xcc:incl: <packagelist> -Xcc:excl: <packagelist>

Use double-quotes around such options. For example:

/java/jdk1.4.2_03/bin/java -ojvm -Xcodecoach -Xcc:new -Xcc:level:4
     -Xcc:disable:ALL -Xcc:enable:ALL
     "-Xcc:excl:com;java;javax;sun;sunw;org;oracle" -classpath
     /home/fred/JDev9.0.5/jdev/lib/jdev-rt.jar mypackage2.Application1

OJVM Installation on Linux

OJVM is a Hotspot-compatible JVM that is required by JDeveloper's Profiler and CodeCoach features. It also enables advanced debugging features.

Install OJVM in your application's J2SE from the Linux shell while logged as root:

cd <jdev_install>/ojvm_linux_x86
sh installOJVM <j2se_ location>
<jdev_install><j2se_ location>

To confirm that OJVM has been properly installed, invoke the command:

<j2se_ location>/bin/java -ojvm -version

On Linux, Diagram Elements Created from the Palette are Created with Default Name (3456955)

If you are using Linux and you create elements on a diagram by dragging and dropping from the palette, they are created with the default name. The workaround is to create diagram elements by clicking the icon on the palette and then clicking on the diagram, rather than dragging and dropping them.

NPE While Creating a Java Class Diagram on United Linux 1.0 (3517195)

When creating a java class (e.g. JavaClass1) an error dialog displaying 'An error occurred, so processing could not continue.' is displayed and you can see that component displayed on the diagram. Once you click on the OK button in the error dialog the component disappears from the diagram (a blank diagram is displayed) but the Java src file ( created is still shown in the application navigator. When you open it this file it is empty. When you encounter this situation you must retry. The diagram will then have the class component (JavaClass1), and the Java src file ( will be updated accordingly.

Miscellaneous Issues

Fail to Make/Run JSPs if Unused tlds Exist in jars in WEB-INF/lib (3421004)

You may encounter the following error when making/running JSPs even if the reported taglib handler class is in the classpath:

Error(1): java.lang.ClassNotFoundException: 
Error(1): Unable to load taghandler class:  

This may be the side-effect against some jars in WEB-INF/lib that contain the unused tlds, whose implementation libraries are not in this project's classpath. In this case, you can use one of the following:

  1. Remove the jars containing unused tlds from WEB-INF/lib.
  2. Add all libraries related with jars in WEB-INF/lib into Project's classpath.
  3. Uncheck "Make Project" in Project Properties, Profiles-Runner-Options.

Using JDeveloper in a Multibyte Environment Obscures Some Characters in Text (2670389)

If you use JDeveloper in a multibyte environment, the embedded browser may display all multibyte characters as squares. If this happens, use the following option to prevent the problem:

AddVMOption -Dice.pilots.html4.ignoreNonGenericFonts=true

JSP/HTML Editor Cannot Decode File's Encoding Correctly if the File Has Large HEAD Tags (3313918)

Currently, JSP/HTML Editor detects file's encoding from META tag in HEAD tag like <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis"/>.

JSP/HTML Editor expects such META tag within the first 2000 bytes of its file. If your JSP/HTML file is garbled in JSP/HTML Editor, please check whether the correct META tag exists within the first 2000 bytes.

Viewing the Source of a JSP, UIX, or XML Document (3270976)

When you press Enter on a node in either the Application or System Navigator, you open the Visual Editor for that file. To switch to the different editors available for a document; for example, to display the file in the Code Editor instead of the Visual Editor, you can use the Alt+Page Up and Alt+Page Down accelerators. All editors also support the Windows | Go to | Right Editor and Windows | Go to | Left Editor menu commands.

Unable To Switch Between Tabs On Structure Pane (3443188)

To switch between tabs on the Structure window, press Tab to move the focus from the Structure tree to the tab header, and then press Alt + Right Arrow or Alt + Left Arrow. Note that JAWS does not say that the tab header has focus.

JAWS Should Support the Java AccessibleHyperText Interface (3008501)

Although AccessibleHyperText is not fully supported, you can still use JAWS to navigate the ICE Browser and read JDeveloper online help; JAWS will read the content as a text area. When the Help window has focus, use the Up Arrow and Down Arrow keys to read "line by line". Use Insert Up Arrow and Insert Down Arrow keys to read continually up and down.

The Oracle ICE Browser accessibility support also brings actionable items (like links) in focus as they are read by the screen reader; press the Enter key to activate the focused item. You may also use the Tab key to traverse the actionable items in an HTML document.

Buttons Always Enabled in Netscape 4.79

In Netscape 4.79 the Next, Previous, NextSet, PreviousSet, Commit and Rollback buttons are always enabled.

Avoid the Use of Plus Signs in File Paths (3226541)

You may have problems compiling if a plus sign (+)appears in any of your file paths.

Working with Offline Database Definitions

Importing from a database and generation to a database are not certified against non-Oracle databases.

Property Inspector Shows no Properties When Document Invalid (3272142)

The property inspector will show no properties if an xml document is invalid and the user changes selection in the structure pane. To work around this problem make sure the document is both well formed and grammatically valid before attempting to edit in the property inspector.

JavaServer Faces (JSF) Development

It is possible to do JavaServer Faces (JSF) development in JDeveloper 10g. However since JSF is not yet bundled in JDeveloper 10g, instructions for setting up JDeveloper to work with JSF 1.0 along with examples are provided on OTN at the location:


Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065, USA

Worldwide Inquiries:
Fax 650.506.7200

Copyright © 2004, Oracle Corporation. All Rights Reserved.

false ,,,,,,,,,,,,,,,