Skip Headers

Oracle® Developer Suite Release Notes 10g Release 2 (10.1.2) for Solaris Operating System (SPARC), Microsoft Windows, and Linux x86 B16010-05 |
| Library | Product | Contents

Previous | Next |

# 6 Oracle JDeveloper 10g

This chapter describes issues associated with Oracle JDeveloper 10g (10.1.2.1.0). It includes the following topics:

- Section 6.1, "Introduction"

- Section 6.2, "What's New in JDeveloper 10.1.2.1.0"

- Section 6.3, "Migration Issues"

- Section 6.4, "Deployment Issues"

- Section 6.5, "ADF DataAction for Struts Known Issues"

- Section 6.6, "ADF Business Components Issues"

- Section 6.7, "ADF UIX Issues"

- Section 6.8, "Apache Struts Restrictions"

- Section 6.9, "Data Binding Issues"

- Section 6.10, "JClient Issues"

- Section 6.11, "Toplink Issues"

- Section 6.12, "Web Services Issues"

- Section 6.13, "Modeling Issues"

- Section 6.14, "Team Based Development Issues"

- Section 6.15, "Unix-Specific Issues"

- Section 6.16, "Macintosh OS X Issues"

- Section 6.17, "Screen Reader Issues"

- Section 6.18, "Miscellaneous Issues"

## 6.1 Introduction

JDeveloper 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 `http://www.oracle.com/technology/products/jdev/`.

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.

## 6.2 What's New in JDeveloper 10.1.2.1.0

While primarily a maintenance release, JDeveloper 10.1.2.1.0 adds a small number of new features:

- Section 6.2.1, "Offline Database Objects"

- Section 6.2.2, "Struts Page Flow Diagram"

- Section 6.2.3, "Improvements in the Business Components Wizards"

- Section 6.2.4, "ADF Business Components Performance Improvements"

- Section 6.2.5, "Data Binding"

- Section 6.2.6, "Embedded OC4J"

- Section 6.2.7, "JDBC Drivers"

- Section 6.2.8, "ADF Runtime in Oracle Application Server 10.1.2"

### 6.2.1 Offline Database Objects

In the Import Offline Database Objects Wizard, the schema selection is now the last step. This was done to allow the schema to be defaulted to the online schema name for TopLink projects.

### 6.2.2 Struts Page Flow Diagram

- Rendering and general responsiveness of large diagrams has improved for dynamic projects.

- Performance of Struts editing is further improved by only validating the XML against the DTD when the project is compiled or when the developer chooses to explicitly validate it from the context menu, rather than every time that the Struts editor gains focus.

- It is now possible to create actions that are not prefixed with a "/" (forward slash). This means that you can create private actions that are not directly accessible from a browser by specifying a page name without an initial "/" character. Conversely, if you need your action to be accessible from a browser directly, include the "/" at the start of the name.

### 6.2.3 Improvements in the Business Components Wizards

The Business Components Wizard and View Object Wizard have been updated to make it easier for you to implement the Fast Lane Reader design pattern. When you create a new view object, you now have the option to create a view object with data that is populated by a read only SQL query. In this model, all data is stored in the view cache, which results in very fast performance on repeated queries.

### 6.2.4 ADF Business Components Performance Improvements

ADF Business Components performance has increased substantially in this release. You do not have to make any modifications to your code or architecture. Just recompile your application in this release, deploy, and run it. Depending on the type of application you are using you could see up to a 30% improvement in performance.

### 6.2.5 Data Binding

The fix for bug 3077519 BLANK NEW ROW PROBLEM IS BACK FOR WEB APPS has resulted in a small change to data binding design time. This bug in JDeveloper 9.0.5 causes a blank row to be inserted into a browse form when the user clicks a button to add a new row in a blank form, then clicks the browser's back button to go back to the browse form.

For web pages bound to ADF Business Components, this behavior has now been changed: by default, when the user hits the back button, they will no longer see a blank row. If you want your pages to use the old behavior instead, the steps are as follows:

- With your web page or struts page flow diagram open in the editor, go to the UI model tab in the structure pane.

- Edit the action binding for the Create operation.

- In the dropdown list, select the CreateInsert action, replacing the Create action which is shown by default.

### 6.2.6 Embedded OC4J

JDeveloper 10.1.2 includes embedded OC4J version 10.1.2. For enhancements and bug fixes to OC4J 10.1.2, please see the OC4J release notes.

### 6.2.7 JDBC Drivers

JDeveloper 10.1.2 is distributed with the Oracle JDBC drivers from Oracle Application Server 10.1.2.

### 6.2.8 ADF Runtime in Oracle Application Server 10.1.2

Oracle ADF runtime libraries are included in Oracle Application Server 10.1.2. This means that if you are deploying ADF applications to Oracle Application Server 10.1.2, you do not need to run the ADF Runtime Installer to install the ADF libraries in the application server.

## 6.3 Migration Issues

This section contains information about migrating your JDeveloper applications:

- Section 6.3.1, "JDeveloper 9.0.3 PL/SQL Web Service Has Compile Errors When Regenerated"

- Section 6.3.2, "Regeneration of Migrated Web Service May Result in an Incomplete Deployment Profile"

- Section 6.3.3, "WS-I Test Tools Location Must be Entered Again"

- Section 6.3.4, "Migrating Struts Applications to Oracle JDeveloper 10g Struts Applications Created in Oracle9i JDeveloper"

- Section 6.3.5, "Default Iterators for View Object Rowsets Advance to First Row When Bound to ADF Iterator Bindings"

- Section 6.3.6, "Migrating Projects that Use bc4jhtml.jar"

- Section 6.3.7, "Migrating JClient Projects with Java Web Start and JNLP"

- Section 6.3.8, "Custom JClient Error Handler Dialog Migration"

- Section 6.3.9, "EJB: Migration of OC4J 9.0.x Native CMP Mappings"

- Section 6.3.10, "Trouble Migrating Web Applications from Oracle9i JDeveloper 9.0.4"

- Section 6.3.11, "Migration Dialog May Display when Migrating from 9.0.5.1 to 10.1.2"

- Section 6.3.12, "Oracle-Style Bind Parameters Work Differently"

- Section 6.3.13, "Migrating EJB CMR Relationships to Oracle10g JDeveloper Release 10.1.2"

- Section 6.3.14, "Migrated 9.0.X UIX/BC4J/JSP Applications Do Not Have UIX Resources and Styles Available"

### 6.3.1 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.

Workaround:Before you regenerate the service, remove from the project all of the Java files directly related to the service package and any object types used by that service.

### 6.3.2 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.

Workaround:

Use the deployment profile dialog to manually include the missing file, then redeploy the service.

### 6.3.3 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.

### 6.3.4 Migrating Struts Applications to Oracle JDeveloper 10g Struts Applications Created in Oracle9i JDeveloper

JDeveloper or other tools may not compile correctly after migrating to Oracle JDeveloper 10g production release. This may happen even if the applications were previously successfully migrated to Oracle 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.

To correct Struts compilation errors after migration:

- Copy the correct struts.jar file from the JDeveloper_installation_directory/jakarta-struts/lib directory into your project's WEB-INF/lib directory.

### 6.3.5 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 row set. 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");
      eview.setWhereClauseParam(0,empno);
      eview.executeQuery();
      /*
       * 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;
      }
    }
      * MIGRATION CAVEAT
       * ~~~~~~~~~~~~~~~~
       * 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.
       *

The issue can also surface in middle-tier business logic which is written to loop over row set 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();
      cart.reset();
      double total = 0;
      /*
       * MIGRATION CAVEAT
       * ~~~~~~~~~~~~~~~~
       * 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)cart.next();
        total += curCartItem.getExtendedTotal().doubleValue();
      }
      return total;
    }

Here are two basic solutions:

1. Where only testing whether the first row exists, use the first() API and test whether it is null or not.

2. Where performing iteration over the row set, 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");
      eview.setWhereClauseParam(0,empno);
      eview.executeQuery();
      /*
       * 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;
      }
    }

and

    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)cartIter.next();
        total += curCartItem.getExtendedTotal().doubleValue();
      }
      cartIter.closeRowSetIterator();
      return total;
    }

### 6.3.6 Migrating Projects that Use bc4jhtml.jar

The ADF BC runtime archive bc4jhtml.jar has split in this JDeveloper release. If your migrated project uses bc4jhtml.jar, you should update the classpath so that it contains both `<JDEV_HOME>/BC4J/jlib/bc4jhtml.jar` and `<JDEV_HOME>/BC4J/lib/adfmweb.jar`.

### 6.3.7 Migrating JClient Projects with Java Web Start and JNLP

If your JClient application relied on Java Web Start, the bc4jlibs.ear file in JDeveloper 9.0.5.2 and earlier contained the jndi.jar. Starting in JDeveloper 10.1.2, this JAR file is no longer needed (since it is now available as a standard JDK 1.4 extension). It is necessary to remove the jndi.jar file from your bc4jlibs.ear file when you want to migrate a 9.0.5.x JClient application to 10.1.2.

### 6.3.8 Custom JClient Error Handler Dialog Migration

When upgrading a JClient-based application from 9.0.3/9.0.4 to JDeveloper 10g (9.0.5 or 10.1.2), if the application has a custom error dialog which does not extend oracle.jbo.uicli.controls.JUErrorHandlerDlg, then their custom error handler dialog will need to implement the new oracle.adf.model.binding.DCErrorHandler interface. This can be done by delegating to their existing implementation of the `reportException()` method in their implementation of the oracle.jbo.uicli.binding.JUErrorHandler interface.

### 6.3.9 EJB: Migration of OC4J 9.0.x Native CMP Mappings

When migrating an EJB application containing CMP Entity beans that use the OC4J native (i.e. not TopLink) CMP mappings, users must perform a simple operation before the application can be redeployed to a 10.1.x OC4J server.

Choose a CMP Entity bean, right-click on its EJB node in the JDev navigator and select 'Edit CMP Mappings...'.

Note: This menu item will only appear if the CMP Entity bean is mapped using OC4J native CMP mappings. If the context menu item does not appear, the Entity bean is not mapped using OC4J native mappings, so no migration step is needed

Once the CMP Mapping Editor opens and the 'CMP Field Mappings' tree node is selected, click on the 'Relationship Mappings' tab and visit each relationship in which the CMP Entity bean participates. Simply visiting the panel will cause the new data to be saved when the panel is exited.

While still in the CMP Mappings editor, repeat this process for each CMP Entity bean in the EJB module. When done, exit the mapping editor by selecting 'OK' to apply the changes.

Once these steps have been performed, the EJB module is ready to be deployed to an OC4J 10.x server.

### 6.3.10 Trouble Migrating Web Applications from Oracle9i JDeveloper 9.0.4

(3672145) When you attempt to compile a web application from JDeveloper release 9.0.4, you may receive the following error:

`/WEB-INF/ojsp-global-include.xml:oracle.xml.parser.v2.XMLParseException: Unexpected text in content of Element 'ojsp-global-include'`

To fix the problem, edit the `/WEB-INF/ojsp-global-include.xml` file and change the element

`<?xml version="1.0" standalone='yes' ?>`

so that it reads

`<?xml version="1.0" standalone='no' ?>`

### 6.3.11 Migration Dialog May Display when Migrating from 9.0.5.1 to 10.1.2

(3797912) When you migrate an application from Oracle JDeveloper 10g Release 9.0.5.1 to Release 10.1.2, the Migration dialog may open, even though the technology stack has not changed between these releases. You can safely ignore this dialog.

### 6.3.12 Oracle-Style Bind Parameters Work Differently

(3848733) Oracle JDeveloper releases 9.0.5.2 and earlier contained a version of JDBC that did not provide strict error checking for Oracle-style bind parameters. This allowed expressions that contained more than one bind parameter with the same name, such as:

`WHERE SALARY > :1 AND DEPARTMENT = :2 AND MANAGER_ID = :1`

Both the first and third parameters in the above expression are named ":1", an error that was not caught by earlier versions of JDBC.

The earlier version of JDBC also did not catch errors involving spaces between colons and numerical portions of parameter names. ": 1" (with a space) is not a legal Oracle-style bind parameter, but the earlier version of JDBC did not catch this error.

The version of JDBC included with Oracle JDeveloper 10g (10.1.2) provides stricter error checking, and will throw an exception on expressions like the above where clauses or parameters contain spaces. If you are migrating an application from an earlier version of JDeveloper, and the application contains expressions with non-unique Oracle-style JDBC bind parameters, you must change the parameter names to ensure they are unique within the expression. For example, the previous expression could be changed to read:

`WHERE SALARY > :1 AND DEPARTMENT = :2 AND MANAGER_ID = :3`

You should also ensure that none of your bind parameter names contain spaces, and should change your calls to ViewObject.setWhereClauseParam() and ViewObject.setWhereClauseParams() to ensure that all parameter values are still supplied. For example, for a view object definition with the above WHERE clause, the instruction

    setWhereClauseParams(new Object[]
    {
      value1,
      value2
    }

should be replaced by

    setWhereClauseParams(new Object[]
    {
      value1,
      value1,
    }

### 6.3.13 Migrating EJB CMR Relationships to Oracle10g JDeveloper Release 10.1.2

(3557211) If you are migrating to release 10.1.2 from a previous release and have CMP EJB entity beans with CMR relationships, you need to update those relationships. Simply select each relationship in the CMR Mapping Editor, and JDeveloper will automatically update it appropriately.

### 6.3.14 Migrated 9.0.X UIX/BC4J/JSP Applications Do Not Have UIX Resources and Styles Available

(3665125) 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. Since the migration process only removes objects and files that are related to prior versions of the product, it does not add the new installables.

Workaround:

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.

## 6.4 Deployment Issues

This section contains information about issues related to deploying your application with JDeveloper:

- Section 6.4.1, "XSQL Page Processor Cannot Read Pages from Unexpanded Servlet 2.2 WAR File"

- Section 6.4.2, "Type Incompatibilities when Deploying to WebLogic"

- Section 6.4.3, "WebLogic6.1 Fails to Understand 'Windows-1252' Encoding in XML Files"

- Section 6.4.4, "ejb-ref in web.xml not Updated if the Bean Type is Changed from Remote to Local"

- Section 6.4.5, "Proper Deployment Profiles not Shown for Projects with ADF UIX Technology Scope"

- Section 6.4.6, "Additional Details for Deploying UIX Applications to WebLogic"

- Section 6.4.7, "Configuring Persistence-Manager in orion-ejb-jar.xml not Supported for OracleAS 10.1.2"

- Section 6.4.8, "Starting ADF Application Exception in Websphere 5.1"

- Section 6.4.9, "Additional Details for Deploying UIX Applications to WebLogic"

### 6.4.1 XSQL Page Processor Cannot Read Pages from Unexpanded Servlet 2.2 WAR File

(1552039) Cannot run XSQL pages in WebLogic 6.1/7.0, JBoss 3.0.4, or Tomcat 4.1.12.

### 6.4.2 Type Incompatibilities when Deploying to WebLogic

Some applications deployed to WebLogic may have type incompatibilities if you use the BEA supplied Oracle classes. To ensure that you don't have these problems, replace the supplied classes12.zip and classes12.jar file in your server's lib directory with classes12.jar in the `jdev_install/jdbc/lib` directory.

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

WebLogic6.1 fails to understand Windows-1252 encoding in XML files. This is a bug in the XML parser in WebLogic6.1. To deploy applications in JDeveloper to WebLogic6.1 change encoding to an IANA encoding that WebLogic6.1 recognizes. It is recommended to use UTF-8 encoding. Japanese users need to use Shift_JIS.

1. Open Tools | Preferences.

2. In the Environment panel change the Encoding field to UTF-8.

3. Click OK.

   Now create a new project and your application.

### 6.4.4 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.

### 6.4.5 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.

### 6.4.6 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:

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)

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.

After expanding the EAR and WAR files, these should be deleted, as only the extracted files are part of the application.

### 6.4.7 Configuring Persistence-Manager in orion-ejb-jar.xml not Supported for OracleAS 10.1.2

When you deploy container-managed persistence (CMP) entity beans from JDeveloper 10.1.2 to OracleAS 10.1.2 and previous versions, you can't configure persistence-manager settings in orion-ejb-jar.xml. These settings will cause a deployment error.

### 6.4.8 Starting ADF Application Exception in Websphere 5.1

(3590864) If you start an ADF BC4J JSP application after EAR deployment to WebSphere 5.1 the application may fail, writing exceptions similar to the following in the application server log:

    Exception:
    AppDeploymentException: [ADMA0092E: Unexpected exception occurred while preparing
    task MapRunAsRolesToUsers. Please check server machines FFDC for more information.]
    AppDeploymentException: []
    com.ibm.etools.archive.exception.DeploymentDescriptorLoadException:
    WEB-INF/web.xml
    AppDeploymentException: []
    com.ibm.etools.archive.exception.DeploymentDescriptorLoadException:
    WEB-INF/web.xml
    com.ibm.etools.archive.exception.DeploymentDescriptorLoadException:
    WEB-INF/web.xml

To correct this exception, remove the <filter-mapping> attribute from application's web.xml file.

### 6.4.9 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:

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)

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.

After expanding the EAR and WAR files, these should be deleted, as only the extracted files are part of the application.

### 6.4.10 Using Standalone OC4J with External jazn.xml

If you are using Standalone OC4J to run an application that uses JAAS authentication and Oracle ADF Business Components, and you are not using the copy of jazn.xml provided in `<oc4j_home>/home/config`, you must pass the location of your copy of jazn.xml to the JVM using the property oracle.security.jazn.config. For example, if your jazn.xml file is in the directory `/jazn/`, use the command:

`java -Doracle.security.jazn.config=/jazn/jazn.xml -jar oc4j.jar`

to start the server.

### 6.4.11 Unable To Deploy JClient JNLP Application Based On BC4J EJB to Oracle Application Server

(4025025) When deploying a JClient WebStart application based on a BC4J Session Bean to Oracle Application Server, you may encounter the following deployment error:

    Closing connection to Oc4jDcmServlet
    #### DCM command did not complete successfully (-8)
    #### HTTP return code was -8
    Exit status of DCM servlet client: -8

To fix this problem, follow the workaround described below:

1. In the web.xml file generated by JClient WebStart Wizard, remove the <ejb-ref> element and its contents completely. A sample entry in web.xml looks like:

       <ejb-ref>
       <ejb-ref-name>ejb/AppModuleBean</ejb-ref-name>
       <ejb-ref-type>Session</ejb-ref-type>
       <home>mypackage1.common.ejb.beanmanaged.AppModuleHome</home>
       <remote>mypackage1.common.ejb.beanmanaged.RemoteAppModule</remote>
       <ejb-link>AppModuleBean</ejb-link>
       </ejb-ref>

2. Remove the profile dependencies set in the war deployment profile. To do this:

   1. Double click on the war profile (client_war.deploy)

   2. Select Profile Dependencies in the tree displayed on the left side of the panel.

   3. Uncheck the profile dependencies in the tree displayed on the right side of the panel.

3. Deploy the war to Oracle Application Server and run WebStart.

## 6.5 ADF DataAction for Struts Known Issues

This section contains information about issues related to ADF:

- Section 6.5.1, "Best Practice for ADF Binding to Method Results"

- Section 6.5.2, "Data Actions Extending DataForwardAction Change to Data Pages Incorrectly"

### 6.5.1 Best Practice for ADF Binding to Method Results

In an ADF-based Struts web application, when trying to display data on a page that is the result of a declarative method invocation on your data control, we recommend performing the method invocation in a separate DataAction (with its own binding container) that, in turn, forwards to the DataAction or DataPage that will perform the rendering of the method's results. An attempt to execute the method declaratively via a method action binding in the same binding container as the iterator bound to its results, can run into problems.

### 6.5.2 Data Actions Extending DataForwardAction Change to Data Pages Incorrectly

(4113412) When you customize the basic ADF Data Action, their custom action class should directly or indirectly extend the DataAction class in the `oracle.adf.controller.struts.actions` package. On the other hand, when you customize an action for an ADF Data Page it should directly or indirectly extend the DataForwardAction class in that same package. Additionally for data pages, JDeveloper associates the action to its related page by recording the name of the page in the value of the parameter attribute of the Struts action in your struts-config.xml file. In contrast, plain data actions which are not data pages do not have a parameter attribute recorded.

In 9.0.5.2 and 10.1.2 it is possible for users to accidentally create a custom data action class which incorrectly extends the DataForwardAction class instead of the correct DataAction class. This was harmless in 9.0.5.2, but in 10.1.2 a data action whose custom action class extends DataForwardAction instead of just DataAction has an undesirable side-effect when the Struts page flow diagram is opened the first time in each JDeveloper session. JDeveloper 10.1.2 notices that the action extends DataForwardAction and assumes that you meant it to be a data page. It then notices this presumed data page is missing its required parameter attribute, so JDeveloper 10.1.2 adds a `parameter="unknown"` attribute for it. This can have the unwanted side effect of making your data action nodes in the diagram turn into data page nodes.

The way to avoid the problem is to insure that your custom data action classes that are not intended to be data pages:

- Extend `DataAction` instead of `DataForwardAction`

- Do not have a parameter attribute in their corresponding `struts-config.xml` `<action>` element entry.

## 6.6 ADF Business Components Issues

This section contains information about issues with ADF Business Components:

- Section 6.6.1, "Don't Use "Scan Source Path" Project with ADF Business Components"

- Section 6.6.2, "No Such Method Error For ADF BC4J JSP Application in WebLogic 8.1.2"

- Section 6.6.3, "View Object Custom Methods In Batch Mode"

- Section 6.6.4, "Authentication Using LDAP Does not Work with Standalone OC4J"

- Section 6.6.5, "ClassCastException Accessing One-To-Many Entity View Link Accessor"

- Section 6.6.6, "Do Not Use Over 19 Top-Level Application Module Instances in One Application"

### 6.6.1 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.

### 6.6.2 No Such Method Error For ADF BC4J JSP Application in WebLogic 8.1.2

(3739767) If you run an ADF BC4J JSP application in WebLogic 8.1.2 you may see the following error:

    java.lang.NoSuchMethodError:
    javax.xml.namespace.QName.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

To correct this error, add these items to the WebLogic server classpath before running the application:

    xmlparserv2.jar
    adfmweb.jar

### 6.6.3 View Object Custom Methods In Batch Mode

(3274140) 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.

### 6.6.4 Authentication Using LDAP Does not Work with Standalone OC4J

(3903758) If you are using standalone OC4J (rather than a complete installation of Oracle Application Server) to run your ADF Business Components, you will not be able to use LDAP to provide identity management for authentication or authorization. This has two consequences for applications that use LDAP to provide identity management:

- You must deploy them to a complete installation of Oracle Application Server, rather than standalone OC4J

- You cannot define entity-by-entity authorization in JDeveloper if you use LDAP to provide identity management, because the JDeveloper design time relies on standalone OC4J. This issue will be fixed in the next release of JDeveloper.

### 6.6.5 ClassCastException Accessing One-To-Many Entity View Link Accessor

(4113607) Prior to JDeveloper 10.1.2, ADF BC runtime was incorrectly hard-coding an expectation that the return type of a view link accessor exposed at entity level was a RowIterator. This assumption caused problems when the exposed viewlink was a 1-to-1 link. This bug (3839762) was fixed in 10.1.2, but the fix uncovered a new issue after 10.1.2 Build 1811 shipped. The issue is a design time bug that incorrectly reverses the source and the destination types of the view link. The design time bug writes the view link accessor type in the entity's XML descriptor. Prior to 10.1.2, when the expectation of a RowIterator was hard-coded, the wrong type that was in the XML was unimportant since it had no dependency with the type at runtime. Since JDeveloper 10.1.2.1.0 uses the XML-based <ViewLinkAccessor> row type info, the type mismatch raises this new ClassCastException.

For example, if you expose a WorksInDeptLink view link between DeptView and EmpView on the Dept EO level with an accessor name of Employees, the incorrect XML snippet is placed in the Dept.xml file:

    <!-- In Dept.xml entity XML file -->
       :
      <ViewLinkAccessor
          Name="Employees"
          ViewLink="test.mypackage.WorksInDeptLink"
          ViewLinkEnd="test.mypackage.WorksInDeptLink.EmpView"
          ViewLinkOtherEnd="test.mypackage.WorksInDeptLink.DeptView1"
          Type="oracle.jbo.Row"
          IsUpdateable="false" >
       </ViewLinkAccessor>

If your DeptView VO is exposing a custom Row class, it will reflect that instead and look like:

    <!-- In Dept.xml entity XML file -->
       :
       <ViewLinkAccessor
          Name="Employees"
          ViewLink="test.mypackage.WorksInDeptLink"
          ViewLinkEnd="test.mypackage.WorksInDeptLink.EmpView"
          ViewLinkOtherEnd="test.mypackage.WorksInDeptLink.DeptView1"
          Type="test.mypackage.DeptViewRowImpl"
          IsUpdateable="false" >
       </ViewLinkAccessor>

The is that neither the `generic oracle.jbo.Row` nor the more specific `test.mypackage.DeptViewRowImpl` is correct for the return type of this accessor. The workaround until we fix this issue in a maintenance release is to update the Dept.xml file outside of JDeveloper to reflect the correct type of the view link accessor. In the example above, you would change the type to be `oracle.jbo.RowIterator` like this:

    <ViewLinkAccessor
          Name="Employees"
          ViewLink="test.mypackage.WorksInDeptLink"
          ViewLinkEnd="test.mypackage.WorksInDeptLink.EmpView"
          ViewLinkOtherEnd="test.mypackage.WorksInDeptLink.DeptView1"
          Type="oracle.jbo.RowIterator"
          IsUpdateable="false" >
      </ViewLinkAccessor>

Note: If you "touch" the view link in the view link editor again, you may have to reapply this workaround after the wizard re-writes the incorrect type value again.

### 6.6.6 Do Not Use Over 19 Top-Level Application Module Instances in One Application

In the case of Web applications, each top-level application module uses a session cookie to increase application stability (using failover) and to help manage state. ADF also adds a cookie of its own. A limitation in Microsoft Internet Explorer prevents it from accepting more than 20 cookies per unique host. Therefore, if your application may be accessed through Microsoft Internet Explorer, and you have not disabled failover, you should not use more than 19 top-level application module instances per client instance. Any additional application module instances you need should be nested in the definition for one of the 19. Using more than 19 top-level application module instances in a single client instance may cause unpredictable behavior with Microsoft Internet Explorer.

## 6.7 ADF UIX Issues

This section contains information about issues with ADF UIX:

- Section 6.7.1, "Third-party Popup Blockers and Toolbars May Interfere With ADF UIX"

- Section 6.7.2, "Javascript Compression May Cause Errors in ADF UIX"

- Section 6.7.3, "UIT Templates not Available for Context Menu Insertion"

- Section 6.7.4, "Setting Source Attribute for UIX Image Component Fails if Image on Different Drive"

- Section 6.7.5, "Live Data in UIX Preview"

### 6.7.1 Third-party Popup Blockers and Toolbars May Interfere With ADF UIX

(2900583) Certain ADF UIX components (date pickers, list of values, etc.) use external popup windows to allow the user to select values without moving to another page. Some third party toolbars interfere with these windows by not allowing them to communicate back to the base page, as is allowed in HTML. The only current workaround is to disable popup blocking for sites with UIX content.

### 6.7.2 Javascript Compression May Cause Errors in ADF UIX

Due to a bug in Microsoft Internet Explorer, routines used by ADF UIX to load Javascript libraries may not function properly if the server hosting UIX has enabled compression of Javascript files, an optional performance optimization. ADF UIX does not perform this optimization by default, but it can be configured in some servlet containers or via Oracle's Web Cache technology. To work around this, do not compress Javascript libraries to be loaded by UIX applications.

This issue does not affect other browsers.

### 6.7.3 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.

### 6.7.4 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. The workaround is to manually move/copy the image file in the file system.

### 6.7.5 Live Data in UIX Preview

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

## 6.8 Apache Struts Restrictions

This section contains information about restrictions with JDeveloper and Apache Struts:

- Section 6.8.1, "Multiple Struts Application Modules within a Single Project not Supported"

- Section 6.8.2, "Only Partial Support for Tiles Based Applications"

- Section 6.8.3, "<welcome-file> Entries in Web.xml"

- Section 6.8.4, "Action Attribute Must be Edited When Using HTML Form in JSP Pages"

- Section 6.8.5, "Drag and Drop of Method on to Data Page/Action Fails with Overlapping Forward Label"

- Section 6.8.6, "Directory WEB-INF Does Not Exist Message Is Shown in Console"

### 6.8.1 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:

`http://www.oracle.com/technology/products/jdev/howtos/index.html`

### 6.8.2 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.

### 6.8.3 <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.

### 6.8.4 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="/Handle_This_Form.do">`

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 /Handle_This_form.do to /MyActionName.do when the name of the action is MyActionName.

### 6.8.5 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.

### 6.8.6 Directory WEB-INF Does Not Exist Message Is Shown in Console

(3976907) When designing or running a simple struts Application you may get an erroneous message on the console:

`Directory C:\WEB-INF does not exist.`

This message can be safely ignored.

## 6.9 Data Binding Issues

This section contains information about data binding issues:

- Section 6.9.1, "Avoiding Performance Problems Fetching Data or Retrofitting Client Side Cache"

- Section 6.9.2, "Scalar Attributes Returned by Bean Accessors"

- Section 6.9.3, "NoDefExeception When Rendering a Bean with No Scalar Attributes"

- Section 6.9.4, "oracle.jbo.domain.Array Data Type"

- Section 6.9.5, "Not Possible to Set Type of Rowset Return Type in Custom AM Method"

- Section 6.9.6, "If Secondary RSI is Used for Master, No Detail Rows Are Returned"

- Section 6.9.7, "DataControl IDs in .cpx File Must be Unique"

### 6.9.1 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, Oracle advises 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.

### 6.9.2 Scalar Attributes Returned by Bean Accessors

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

### 6.9.3 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.

### 6.9.4 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.

### 6.9.5 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.

### 6.9.6 If Secondary RSI is Used for Master, No Detail Rows Are Returned

(3507403) If a view link master/detail is dropped on a page and then the master view object'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 view object (and not the named RSI). The workaround is to not edit/modify the RSIName for the master ViewObject's iteratorBinding. Leave it as null.

### 6.9.7 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 data control 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 data control (in the Property Inspector) in the .cpx file to use the same name.

### 6.9.8 First Calculated Attribute of Read-Only View Object Reverts To Transient

(4081647) When creating a read-only view object by selecting the Read-only Access radio group on the first panel of the JDeveloper 10.1.2 view object wizard, after entering your SQL query on the following panel, if you continue to (Next>) through the wizard and end up visiting the "Attributes" panel, the first attribute will inadvertently have its "Selected in Query" property set to false. This changes the SQL-derived attribute populated by your query's first SELECT list column into a transient attribute unintentionally. The two easy workarounds are:

1. Click Finish in the view object wizard before advancing to the Attributes page of the wizard, or

2. Mark the `Selected in Query` property for the first attribute back to `true`.

## 6.10 JClient Issues

This section contains information about JClient issues:

- Section 6.10.1, "Tooltip Text Is Not Picked up by JClient Clients"

- Section 6.10.2, "JClient Controls Ignore Business Components Control Hints at Design Time"

- Section 6.10.3, "JClient Controls Bound to a Collection are Not Visible in the Java Visual Editor"

- Section 6.10.4, "JClient No Longer Creates Rows Ready to Commit"

- Section 6.10.5, "Java Web Start Not Launched in IE 5.5"

### 6.10.1 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 work around 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:

`mDeptno.setToolTipText(panelBinding.findCtrlValueBinding("Deptno").getTooltip());`

### 6.10.2 JClient Controls Ignore Business Components Control Hints at Design Time

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

### 6.10.3 JClient Controls Bound to a Collection are Not Visible in the Java Visual Editor

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

### 6.10.4 JClient No Longer Creates Rows Ready to Commit

Starting in JDeveloper 9.0.5.x, new rows that a user creates in the JClient application will be initialized as TEMPORARY and will not be validated and posted until the row is edited by the user -- or the row's state is forced to NEW through a call to

setNewRowState() (see note below). This change was made to reflect the behavior typical of Java UI applications, like spreadsheets, which allow the user to precreate and insert a range of rows while the application need only validate, post, and commit the rows filled in by the user.

Note that this behavior may cause JClient applications that need to create rows as complete, and ready to post, to be ignored during the transaction commit. To set a new row's state into NEW, and thereby simulate the JClient behavior prior to 9.0.5, one has to write code to transition the row state. There are a number of ways to do this:

1. Override and ignore the setNewRowState() call in ViewRowImpl subclass.

2. Override the default navbar action for create and after the super, get the current row on the iterator and set it's new row state back to NEW using getIteratorBinding().getCurrentRow().setNewRowState(Row.STATUS_NEW)

3. Implement a custom action-performed event for the Create/New button and call createRow()/ insertRow() on the appropriate RowSetIterator in code.

### 6.10.5 Java Web Start Not Launched in IE 5.5

If your default browser is Internet Explorer, the browser may prompt you to download the JSP rather than run it with Java Web Start. This is a known issue with Internet Explorer version 6 and earlier. To address this problem, you can create a static JNLP file or you may set JDeveloper tool's preferences to launch another browser. The JClient Java Web Start Wizard lets you generate a static JNLP file that you can modify to include the JNLP definitions. Alternatively, if you prefer to use dynamic JNLP, and English is the character set you use, you may edit the Local.jsp file to remove the charset encoding attribute in the file's page directive, as shown here:

`<%@ page contentType="application/x-java-jnlp-file" %>`

## 6.11 Toplink Issues

This section contains information about JDeveloper and Toplink Issues:

- Section 6.11.1, "Using the Custom Query Tab in the Mapping Editor"

- Section 6.11.2, "Importing Projects from TopLink Mapping Workbench"

- Section 6.11.3, "Cannot Modify the Primary Key Attribute of an Object in a Unit of Work"

- Section 6.11.4, "orion-ejb-jar.xml Required to Deploy Using TopLink CMP"

- Section 6.11.5, "Exception When Mapping Classes with TopLink Technology Scope"

- Section 6.11.6, "TopLink Mappings Tab Not Available in Code Editor"

- Section 6.11.7, "TopLink Descriptors May Be Lost After Modifying .JAVA Files"

- Section 6.11.8, "Accessors (getters and setters) May Not Appear as Methods in the TopLink Mappings Editor"

- Section 6.11.9, "TopLink Mappings Structure Window May Not Update Properly"

- Section 6.11.10, "Toplink Accessibility Issues"

- Section 6.11.11, "Class Names Containing Dollar Signs"

- Section 6.11.12, "Using TopLink Mapping Editor with Oracle10g Database"

- Section 6.11.13, "Migrating TopLink Data Control Parameters"

- Section 6.11.14, "Some Attributes May Not Appear in TopLink Structure Window"

- Section 6.11.15, "TopLink Default Queries are Non-Configurable"

- Section 6.11.16, "Using TopLink ADF Data Bindings"

- Section 6.11.17, "Using Database Session with Connection Pool Causes SessionLoader Exception"

- Section 6.11.18, "Refactoring Classes Does Not Update TopLink Descriptors"

- Section 6.11.19, "Adding a Preceding Space to a Session Name Causes Exception at Runtime"

- Section 6.11.20, "Synchronizing Datacontrols.dcx and Databindings.cpx"

- Section 6.11.21, "Error When Deleting and Committing a Record"

- Section 6.11.22, "Multibyte Strings in "Source" View for session.xml Appear Garbled"

- Section 6.11.23, "Resetting TopLink Units of Work will Improve Performance"

### 6.11.1 Using the Custom Query Tab in the Mapping Editor

Use the Custom Query tab in the TopLink Mapping editor to define custom SQL to be used with a TopLink descriptor insert, update, delete, read, or read all actions. For example, to replace the default TopLink readObject function with a custom stored procedure, add the custom SQL string to implement the replacement code on the Read tab of the Custom Query tab.

### 6.11.2 Importing Projects from TopLink Mapping Workbench

Use this procedure to import your OracleAS TopLink Mapping Workbench 9.0.4.x 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. If the tables in the Mapping Workbench project were imported from a live database, import the tables into the JDeveloper project.

   If the tables were created in the Mapping Workbench project and do not reside on a live database, manually create each database table.

   Note: Ensure that each JDeveloper table name, column name, and foreign key constraint is identical to the corresponding table name, field name, and reference name in the Mapping Workbench.If the names are not identical, JDeveloper may not correctly import the mapping information.

4. Close the JDeveloper project.

5. Copy the following files and directories from the original Mapping Workbench project:

   Table 6-1 Mapping Workbench Files and Directories to Copy

   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: ejb-jar.xml | <project name>/META-INF

6. Schema.Table in a text editor, open the toplink_mappings.mwp file and make the following changes:

   1. Change the project's <name> element

   2. Change the project's <name> element to toplink_mappings.

   3. 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:

      Table 6-2 Sample Conversions for Elements in Database Tables

      If your database table <name> element contains... | Convert the <name> element to...
      --- | ---
      <name>Catalog.Schema.Table</name> | <name>Schema.Table</name>
      <name>Schema.Table</name> | No conversion required
      <name>Table</name> | <name>Schema.Table</name>

   4. In a text editor, open each descriptor's <projectname>/descriptor/<descriptor name>.xml file and make the following changes:

   5. Convert the descriptor's table elements for each database table.

   6. Reopen the JDeveloper project and use one of the following methods to add the source files to your project:

      <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:

          <field-table>
          <primary-table>
          <associated-table>
          <reference-table>
          <reference-name>
          <relation-table>
          <sequencing-policy-table>
          <source-table>
          <target-table>

7. Choose the Scan Source Paths to Determine Project Contents option on the Project Settings dialog. This adds the source files to your dynamic source path.

8. Choose Project > Add to Project to add the contents of the <project name>/src folder. This adds the source files directly to your project.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.

### 6.11.3 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 (such as exceptions or database corruption).

To replace one instance of an object that contains unique constraints with another object, use the Unit of Work setShouldPerformDeletesFirst method. Refer to the OracleAS TopLink Application Developer's Guide for more information.

### 6.11.4 orion-ejb-jar.xml Required to Deploy Using TopLink CMP

(3492309) An orion-ejb-jar.xml file is required to deploy EJB 2.0 CMP projects with TopLink. If your project does not have an orion-ejb-jar.xml, clicking a TopLink mapping for any CMP EJB in the project will create a basic orion-ejb-jar.xml file, as shown in the following example. Clicking the TopLink mapping tab for a CMP EJB sets the persistence manager as TopLink.

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.

Make sure you have `<PM-name="toplink">` attribute entries set for each EJB CMP in the orion-ejb-jar.xml.

You may also use this procedure to create `<PM-name="toplink">` attribute entries:

1. Create a minimal orion-ejb-jar.xml by selecting Deployment Descriptors | orion-ejb-jar.xml from the New Gallery dialog.

2. Click the TopLink Mappings node in the application navigator.

3. Click each CMP EJB in the TopLink Mappings Structure pane. This will open the TopLink mapping editor and adds `<PM-name="toplink">` attribute entries for the <entity-deployment> tag for each CMP EJB.

### 6.11.5 Exception When Mapping Classes with TopLink Technology Scope

(3530302) You will get an `oracle.toplink.workbench.external.meta.ExternalClassNotFoundException` error if you try to import new classes (.java files) into a project with the TopLink technology selected, then attempt to map these classes by clicking the Add Descriptor button in the TopLink Structure pane. To eliminate this error, you should compile the classes once, before mapping them the first time.

### 6.11.6 TopLink Mappings Tab Not Available in Code Editor

(2986395) After adding a TopLink deployment descriptor in the Code Editor, the TopLink Mappings tab may not appear in the Code Editor. You must close, then reopen the Code Editor to display the TopLink Mappings tab.

### 6.11.7 TopLink Descriptors May Be Lost After Modifying .JAVA Files

(3733058) After creating Java objects (and TopLink descriptors) from tables, if you modify the .java files with an incorrect syntax (for example: private Stri) and close JDeveloper, when you reopen JDeveloper, the TopLink Descriptor for the modified .java file will be lost.

### 6.11.8 Accessors (getters and setters) May Not Appear as Methods in the TopLink Mappings Editor

(3633296) To ensure that the accessors appear as methods in the TopLink Mappings editor, you must close the Mappings Editor, save the JDeveloper project, then reopen the Mappings Editor. The accessors will now appear as methods.

### 6.11.9 TopLink Mappings Structure Window May Not Update Properly

(3747403 and 3773050) When making changes to a mapped attribute, the TopLink Mappings Structure window may not properly update to show the changes. You must save the project after making the changes to update the TopLink Mappings Structure window.

### 6.11.10 Toplink Accessibility Issues

( 3845935, 3845909, 3845804) When using JAWS screen reader with the TopLink Mapping editor, the following user interface elements may not be read correctly:

- Preallocation field on the Sequencing tab

- Specific mapping type in the TopLink Mappings structure window.

### 6.11.11 Class Names Containing Dollar Signs

(3768125) Class names that contain a dollar sign ($) are assumed to be inner classes. You cannot use the TopLink Mapping editor to create a TopLink descriptor for these classes.

### 6.11.12 Using TopLink Mapping Editor with Oracle10g Database

(3856465) JDeveloper does not include a 10g-specific database file. To use an Oracle10g database with the TopLink Mapping editor, select the Oracle9i database option.

### 6.11.13 Migrating TopLink Data Control Parameters

(3859963) When migrating a JDeveloper project with TopLink mappings to 10.1.2, the `TopLinkSequenceOnCreate` and `TopLinkShouldPerformDeleteFirst` parameters are optional, and therefore not included in the migrated project. Use the Structure window or Property window to add these parameters, if necessary. Refer to the Javadocs for more information.

### 6.11.14 Some Attributes May Not Appear in TopLink Structure Window

(3813680) When adding attributes to the .java file in code, you must save the file to ensure that the attributes correctly appear in the TopLink Structure window.

### 6.11.15 TopLink Default Queries are Non-Configurable

(3603407) In the TopLink Mapping editor, you cannot configure the caching options for the default TopLink queries (such as readAll, and readOne). For example, you cannot change items such as cache usage, binding, timeout, and row return.

### 6.11.16 Using TopLink ADF Data Bindings

(3736337) To use the TopLink ADF data bindings in JDeveloper when deploying to OracleAS 10g (10.1.2.1.0), select the Tools | ADF Runtime Installer option in JDeveloper. It is not necessary to use the ADF Runtime Installer when using standalone OC4J.

### 6.11.17 Using Database Session with Connection Pool Causes SessionLoader Exception

(3887079) In the TopLink sessions.xml, if you are using a Database session, do not create or use a Connection Pool. Connection Pools should only be used with Server sessions.

### 6.11.18 Refactoring Classes Does Not Update TopLink Descriptors

(3903528 and 3926599) If you refactor (rename or remove) a class, its associated TopLink descriptor is not renamed or moved. To rename a TopLink descriptor, you must first remove the descriptor from the project, then re-import the renamed Java class. A new TopLink descriptor will be created with the new class name.

### 6.11.19 Adding a Preceding Space to a Session Name Causes Exception at Runtime

(3900559) Although JDeveloper allows you to prepend a space to the name of a session the TopLink sessions.xml, doing so will cause an exception at runtime. Ensure that your session names do not begin with a space.

### 6.11.20 Synchronizing Datacontrols.dcx and Databindings.cpx

(3917609) When working with data controls in JDeveloper, changes in the DCX may not be reflected in the CPX. To avoid this problem, be sure to modify the data bindings (CPX) before modifying the data controls (DCX).

### 6.11.21 Error When Deleting and Committing a Record

(3815959, 3903366) If a TopLink mapped object has 1:M relationship that employs bi-directional relationship maintenance, a database integrity constraint violation can occur upon UnitOfWork.commit() if the source column in the foreign key constraint for this relationship has a non-null constraint. This issue materializes in TopLink ADF through 'commit' data action.

Workarounds:

- Set the 1:M relationship as "privately owned". This will indicate to TopLink that when the related object is removed from the 1:M Collection that it should be deleted from the database rather than updated to have a null FK value. This option should be used carefully as a disassociation of an object in a 1:M Collection will result in the associated database row being deleted.

- Turn the non-null constraint on the source column in the foreign key constraint off. This will allow the null update to occur without an integrity constraint violation.

### 6.11.22 Multibyte Strings in "Source" View for session.xml Appear Garbled

(3983407) When multibyte strings are in session.xml, they appear as garbled in "Source" view for session.xml. This is just a view problem. "Source" view or session.xml is read-only and the actual session.xml is encoded properly.

### 6.11.23 Resetting TopLink Units of Work will Improve Performance

When a TopLink Unit of Work is committed, its state is not automatically reset. Over multiple transactions, this will cause the Unit of Work's change set to grow, which may eventually degrade performance. You can reset the Unit of Work's state explicitly by calling TopLinkDataControl.resetState() from within your View or Controller layer. For example, from within a Struts DataAction's

handleLifecycle() method, you could use code like the following:

    TopLinkDataControl dc =
      (TopLinkDataControl) actionContext.getBindingContext().findDataControl("DataControlName");
    if (! this.hasErrors(actionContext) )
    {
      dc.resetState();
    }

You may also want to call `resetState()` after a commit operation to explicitly reset unmapped aspects of the state. 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.

## 6.12 Web Services Issues

This section contains information about Web Services issues:

- Section 6.12.1, "Insight Not Available for WSDL Documents"

- Section 6.12.2, "Compilation Errors After Regeneration of PL/SQL Web Service"

- Section 6.12.3, "In the Find Web Services Wizard, JAWS Will Only Return a Valid Value Once the Row is Loaded"

- Section 6.12.4, "Changing the Project in the PL/SQL Web Services Wizard May Fail to Update the Context Root for the Endpoint"

- Section 6.12.5, "Must Use Schema Qualified Name for PL/SQL Web Service"

- Section 6.12.6, "Web Service Stub Fails if Generated from JDeveloper Install Path with Space"

- Section 6.12.7, "Cannot Generate Stubs for Web Services which Reference Base64"

- Section 6.12.8, "JPublisher Generates Incorrect Code if the PL/SQL Package Name Contains Hyphens"

- Section 6.12.9, "Location of WS-I Log File has to be on Same System Drive as JDeveloper"

- Section 6.12.10, "Cannot Generate a Stub or Skeleton for a WSDL that Uses Certain Types"

- Section 6.12.11, "Using Underscores in Namespace Paths Can Cause Runtime Errors for Web Services"

- Section 6.12.12, "Report for Web Service on UDDI Registry Is Garbled"

### 6.12.1 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.

### 6.12.2 Compilation Errors After Regeneration of PL/SQL Web Service

(3431499) 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.

### 6.12.3 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 caution when using the Find Web Services wizard. On the Model 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.

### 6.12.4 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.

### 6.12.5 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.

### 6.12.6 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.

### 6.12.7 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 `http://schema.xmlsoap.org/soap/encoding/` schema. As a result, you will not be able to generate services from any WSDL files which reference this type.

### 6.12.8 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.

### 6.12.9 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.

### 6.12.10 Cannot Generate a Stub or Skeleton for a WSDL that Uses Certain Types

(3912349) JDeveloper 10.1.2 only understands a subset of all of the complexTypes that can be defined in a WSDL document. For example, if the following appear in the "types" section of the WSDL, any use of those types will cause JDeveloper to generate a reference to UnknownType in a stub or skeleton:

- Restrictions of simpleTypes

- complexTypes which define attributes

### 6.12.11 Using Underscores in Namespace Paths Can Cause Runtime Errors for Web Services

(3992526) When you have a web service running in OC4J, and run a generated stub against it, the stub will fail with a 'No deserializer found' message when the target namespace for the service has an underscore in the first part of the URL. This is because when the stub is run, the underscore in the target namespace is changed to a hyphen, for example, http://hr_conn/My_WebService1.wsdl becomes http://hr-conn/My_WebService1.wsdl.

The workaround is to either:

- Hand edit the generated stub to replace the underscore with a hyphen. Find the line that starts "m_smr.mapTypes(..." which contains the target namespace, and change the underscore in the namespace with a hyphen.

- After generating the web service, but before deploying it, hand edit the WSDL document to replace the underscore in the target namespace with a hyphen. Next, deploy the service. Finally, generate the stub directly from the WSDL document (under the WEB-INF.wsdl node in the navigator) rather than from the web service itself.

### 6.12.12 Report for Web Service on UDDI Registry Is Garbled

(4070841) When selecting "View Report" on the context menu for any Web Service on UDDI registry the information page about the selected Web Service is shown with all multibyte characters garbled on JA locale. This is just a view issue and can be avoided by the following workaround:

1. Extract the file used for formatting report with the following command:`cd <DevSuiteHome>/jdev/lib/<J2SE_Install>/bin/jar xvf jdev.jar oracle/jdevimpl/webservices/uddi/report/uddiservicerpt.xsl`

2. Open the extracted file in the text editor and change the following code:

   `<xsl:output method="html" />`

   to

   `<xsl:output method="html" encoding="shift_jis"/> : For Windows, or SJIS environment on Unix`

   `<xsl:output method="html" encoding="euc-jp"/> : For EUC environment on UNIX`

3. Open `<JDev_Install>jdev/bin/jdev.conf` and add the following code:

   `AddVMOption -Duddi.serviceReport.Stylesheet=<JDev_Install>/jdev/lib/oracle/jdevimpl/webservices/uddi/report/uddiservicerpt.xsl`

## 6.13 Modeling Issues

This section contains information about issues related to modeling:

- Section 6.13.1, "Erasing UML Diagram Elements From Disk"

- Section 6.13.2, "Erasing Modeled EJBs From Disk"

- Section 6.13.3, "Deleting Element from Diagram without Deleting Constraint Affects Node in Add to Diagram Dialog"

- Section 6.13.4, "Renaming a Modeled Java Class to an Invalid Name Causes Errors"

### 6.13.1 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.

### 6.13.2 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.

### 6.13.3 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.

### 6.13.4 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.

## 6.14 Team Based Development Issues

This section contains information about issues related to Team Based Development:

- Section 6.14.1, "CVS Support: Using Backslash Notation to Create NT PSERVER Connection"

- Section 6.14.2, "WebDAV: Unable to Unlock Files on WebDAV Connection to Oracle9iAS Server"

- Section 6.14.3, "Version History Against Oracle SCM"

### 6.14.1 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, for example:

`d//cvshome`

Instead the repository should be qualified by either an initial forward slash:

`/d//cvshome`

or you should use a colon after the drive letter:

`d:\cvshome`

### 6.14.2 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.

### 6.14.3 Version History Against Oracle SCM

(3998099) You may receive a CDR-17043 and SQL error occurred when opening version history against Oracle SCM. Currently there is no workaround available.

## 6.15 Unix-Specific Issues

This section contains information about JDeveloper and Unix-specific issues:

- Section 6.15.1, "Running CodeCoach from the Command Line on Linux"

- Section 6.15.2, "OJVM Installation on Linux"

### 6.15.1 Running CodeCoach from the Command Line on Linux

CodeCoach invocations in the Linux shell may fail due to the incorrect parsing of the semicolon character (';'). The Linux shell interprets the semicolon as a command separator, but some CodeCoach options (such as -Xcc:incl:<packagelist> and -Xcc:excl:<packagelist>) use the semicolon as a list separator. 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/mywork/Workspace1/Project2/classes:/home/Fred
    /JDev9.0.5/jdev/lib/jdev-rt.jar mypackage2.Application1

### 6.15.2 OJVM Installation on Linux

The JDeveloper Linux installation includes OJVM, and OJVM can be installed for use with JDeveloper, but this configuration is not supported by Oracle. 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>

where <jdev_install> is JDeveloper's installation directory, and <j2se_location> is the full path to the J2SE folder.

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

    <j2se_location>/bin/Java -ojvm -version

## 6.16 Macintosh OS X Issues

This section contains information about JDeveloper and Macintosh OS X issues:

- Section 6.16.1, "Can't Scroll Down Using the Scroll Button in Help"

- Section 6.16.2, "Clicking Near the Edge of the Smart Data or Data Window Gives a Console Exception"

- Section 6.16.3, "Running a JClient Application Displays Diagnostic Information From Apple's VM"

- Section 6.16.4, "Active View Does Not Get Highlighted"

- Section 6.16.5, "Column/Row Re-Arrange not Working"

- Section 6.16.6, "UI Outline Does Not Show Graphics"

- Section 6.16.7, "The Context Menu Does Not Pop Up on the JSP Visual Editor"

- Section 6.16.8, "The Focus is Never Set to the Proper Text Field in Dialogs"

- Section 6.16.9, "Dynamic JNLP Files Do Not Work in Safari"

- Section 6.16.10, "Floating a Dockable Window Will Disable the Menu Bar"

- Section 6.16.11, "Java Developer Tools Required for Quick Javadoc to Work"

- Section 6.16.12, "Dragging From the Palette not Supported"

### 6.16.1 Can't Scroll Down Using the Scroll Button in Help

(3762896) When in the Help, you must use the actual scrollbar to scroll instead of using the scroll buttons directly. Apple Bug #3748025.

### 6.16.2 Clicking Near the Edge of the Smart Data or Data Window Gives a Console Exception

(3761047) If you look at the Console Window, you may see this exception occur. It is harmless and does not impact the use of JDeveloper in any way.

### 6.16.3 Running a JClient Application Displays Diagnostic Information From Apple's VM

(3722494) You may notice diagnostic information appearing in the console from the Java VM distributed with OS X. This information is harmless.

### 6.16.4 Active View Does Not Get Highlighted

(3728924) On other platforms the embedded window that is active is highlighted in a darker color. This is not the case on Mac OS X.

### 6.16.5 Column/Row Re-Arrange not Working

(3757344) In the JSP/HTML Visual Editor, you cannot use drag-and-drop to rearrange columns or rows.

### 6.16.6 UI Outline Does Not Show Graphics

(3760903) Under OS X, The UI Debugger does not display the UI outline.

### 6.16.7 The Context Menu Does Not Pop Up on the JSP Visual Editor

(3895704) When using a single button mouse on OS X, the context menu does not popup. The workaround is to use Command-Shift-Minus or a two-button mouse.

### 6.16.8 The Focus is Never Set to the Proper Text Field in Dialogs

(3896729) When some dialogs are invoked, the focus is set on the button and not in the text field. You should click in the text field to set focus or tab to it before typing.

### 6.16.9 Dynamic JNLP Files Do Not Work in Safari

(3907098) When creating a Web Start application, choose static JNLP files instead of a JSP dynamically generating a JNLP file. Safari ignores the MIME type and uses the file extension to determine if Web Start should be launched.

### 6.16.10 Floating a Dockable Window Will Disable the Menu Bar

(3765717) Floating a dockable window will cause the menu bar to be empty. Re-docking the window into the IDE will correct this situation. Apple Bug #3752818 has been filed for this issue.

### 6.16.11 Java Developer Tools Required for Quick Javadoc to Work

The Quick Javadoc functionality in JDeveloper relies on having source code access to the classes. On Mac OS X, src.jar is not part of the normal Java installation; it is part of the Developer Tools package. This is required to have the source for the JDK classes available for Quick Javadoc to use.

### 6.16.12 Dragging From the Palette not Supported

(3845763) Drag and Drop the palette is not enabled on Mac OS X. You must select the palette item then click in the visual designer at the location for the component to appear.

## 6.17 Screen Reader Issues

This section contains information about JDeveloper and screen reader issues:

- Section 6.17.1, "JDeveloper Can be Installed with Java Access Bridge 1.2"

- Section 6.17.2, "Issues With JDeveloper 10.1.2 When Using JAWS 3.70"

- Section 6.17.3, "Issues With JDeveloper 10.1.2 When Using Either JAWS 3.70 or JAWS 5.0"

- Section 6.17.4, "Issues With JDeveloper 10.1.2 When Using JAWS 5.0"

- Section 6.17.5, "Issues With JAWS 3.70"

- Section 6.17.6, "Issues With JAWS 5.0"

### 6.17.1 JDeveloper Can be Installed with Java Access Bridge 1.2

Please follow the steps in the Install Guide for setting up JDeveloper to work with JAWS, and download accessbridge-1_2.zip from:

`http://java.sun.com/products/accessbridge/`

The screen reader setup steps in the online help recommend that you download accessbridge-1_1.zip, which is no longer the most recent version of Access Bridge; these instructions were created before Java Access Bridge 1.2 became available.

### 6.17.2 Issues With JDeveloper 10.1.2 When Using JAWS 3.70

The following issues have been noted when using JDeveloper 10.1.2 with JAWS 3.70:

- Extend dialog invoked from the Open EJB Finder View Object Wizard has an edit box labeled Object that is not read by JAWS (2565846).

- The Object Gallery dialog has text descriptions for each available option which are not read by JAWS and are not in the Tab sequence of the dialog (2498024).

- JAWS does not read the drop down list box values if there is only one value. With Jaws v5.0 and Access Bridge 1.1GA, the problem is fixed although it may recur intermittently. (3345137)

  Workaround: If the problem occurs, the user has to press the Down Arrow key when the focus is set to the list box or combo box to open the list and read the item.

### 6.17.3 Issues With JDeveloper 10.1.2 When Using Either JAWS 3.70 or JAWS 5.0

- The following issues have been noted when using JDeveloper 10.1.2 with either JAWS 3.70 or JAWS 5.0:

- No keyboard solution (spacebar) to drag and drop complex objects from the Component Palette to Java Visual Editor in the diagram tools (3682651)

- Unable to navigate to available list in step 4 of the Create Offline Table Wizard using keyboard (Tab key). Workaround: Using Move All button, shuttle a list item to the Selected list box, then back to the Available list box, thereafter the Available list is included in the dialog tab order (3655901).

### 6.17.4 Issues With JDeveloper 10.1.2 When Using JAWS 5.0

The following issues have been noted when using JDeveloper 10.1.2 with JAWS 5.0:

- No context for duplicate UI objects in same frame; multiple edit boxes with duplicate labels in Tools | Preferences | Business Components | Base Classes panel (3803044).

- Buttons without labels exist in the Preferences dialog, when you choose the Tools | Preferences | Environment | Dockable Windows panel (3557870).

- For the five bugs listed below, the title or state of the window in the IDE is not read when a user navigates or moves focus to the window. Although the content if some of the dialogs may be read, there is a lack of context when the user is not informed of the type of window or that the viewer is open and active, so it is confusing as to how to proceed with navigation.

  - The Image Viewer title and state are not read by JAWS (2217088). - SQL Worksheet title and state are not read by JAWS (2217097). - Table Viewer title and state are not read by JAWS (2217099). - Sequence Viewer title and state are not read by JAWS (2217101).

- JAWS does not read the selected item in a combo (or edit combo) box controls when the control is in focus by default in the launch of a dialog or wizard. (2057497)

  Workaround: After a dialog or wizard is invoked and JAWS has finished reading, use the Tab key to navigate around the dialog's tab sequence letting the screen reader identify each UI component until focus has returned to the combo box. Then, the screen reader will read the combo box name, state and selected item.

- The text area containing a description associated with each item in the Object Gallery dialog is not read by JAWS. (2498024)

### 6.17.5 Issues With JAWS 3.70

The following issues have been noted specifically with JAWS 3.70:

- Context menu fails to be read by screen reader (2718451, 2843320, 202170).

- Help panel titles are not read, only UI components including Table of Contents tab, Full Text Search tab, and Index Search tab are read (3200557).

- IDE windows reading as group boxes, titles not reading; including Property Inspector, Thumbnail window, Data Controls window, Component Palette (fails to read title if not populated with list of components; general issue among miscellaneous IDE windows). Workaround: set windows in focus by selecting the menu options from the View menu, screen reader then reads the window name by reading the menu item when selected (3432531, 2498082, 3506930).

- Business components message box contents not read (various locations throughout the IDE); alert message boxes, validation message boxes, error dialogs (red stop sign) etc. have content that is not read by JAWS (2465154, 2944784, 2565846, 2573384, 2505465, 2032707, 2032726, 2566192, 2566202).

- Some combo boxes fail to read selected item until the user selects the next item, in various locations throughout the IDE (2936822, 2057497, 2939382, 2939245).

- Some edit boxes default contents are not read by JAWS, in various locations throughout the IDE, until focus is reset on UI component using tab order sequence (2565938, 2939366).

- In various wizards throughout the IDE, the Welcome step descriptive text fails to read in JAWS (2569119, 2942044, 2200314, 2944263, 2944750, 2939670).

- In various wizards throughout the IDE, descriptive text in the wizard steps fails to be read by JAWS (2565846, 29337544, 2937552, 2939670, 2944792, 2942060, 2459125, 2939186, 2939670, 2944750, 3195732).

- JAWS crashes when running java threads from JDeveloper; for example, the memory profiler (3078996).

- Code insight is inaccessible; there is no method to set focus to the JoptionPane pop-up dialogs showing Java methods for code completion (2936838).

- The View Object Edit dialog Query panel displays test results in an edit box which JAWS fails to read (2565599).

- Starting and stopping the JDeveloper debugger causes JAWS to crash (2936822).

- In various locations throughout the IDE, JAWS sometimes reads items that are out of focus in the background (2497997).

- In various locations throughout the IDE, JAWS sometimes repeats descriptive text with each focus change; speaks too much, or repeats values multiple times (3659804).

- New/Advanced from context menu are not read by JAWS (3928664).

- Session Rename dialog is not read by JAWS (3928653).

### 6.17.6 Issues With JAWS 5.0

The following issues have been noted specifically with JAWS 5.0:

- Jdialog static text speaks not only when a dialog first gains focus, but also every time the user tabs from control to control the descriptive text is spoken by JAWS in addition to the control name or option label. This occurs in several dialogs throughout JDeveloper, for example, the Find Web Services Wizard has a group box containing several controls such as checkboxes or radio buttons, etc. (3663546)

- The Windows system menu is receiving focus at inappropriate times, such as when a user selects a control with a shortcut key or keyboard combination. Workaround is to press the Escape key twice and then continue navigating the dialog with keyboard. (JDeveloper bug 3686207, JAWS bug 3670196)

- In the context menus, sub menu items are not read by JAWS when using JDeveloper 10.1.2 and JAWS 5.0. (JDeveloper bug 3672967, JAWS bug 3686135)

- EWT tooltips are not read even when JAWS is configured to read tooltips. (JAWS bug 3163530)

- When editing in an EWT grid, JAWS sometimes reads the previous column, row, column value and edited cell value. If you press Tab after editing, JAWS then reads the committed value. (JAWS bug 3163516)

- In an EWT grid, a user is unable to select the checkbox by pressing the space bar. There is no workaround. (JAWS bug 3163469)

- In the checklist Java component, the checkbox is not found or read by JAWS 5.0. The checklist Java component in the Create Web Service Wizard is a list control with checkboxes on each list item for the user to select a row. The checklist rows are read only as list items, as the checkbox is not recognized by JAWS. Also, when using the latest version of the access bridge (AccessBridge_1.2_GA) the varying implementations of the checklist are read by JAWS incompletely; in some cases, only the checkbox information is read from the checklist item (i.e. checkbox name, checkbox state - checked or not checked). In other checklist implementations, JAWS reads only the list item information (list box name, list item), without reading any checkbox information. There is no workaround. (JDeveloper bug 3663621, JAWS bug 3692427)

## 6.18 Miscellaneous Issues

This section contains information about miscellaneous JDeveloper issues:

- Chapter 6, "Error Message When Deploying Applications Using the IDE (4502734)"

- Chapter 6, "Unable to Debug with Client VM when JDeveloper Started with JDK 1.5\JRE\BIN in Path (4502080)"

- Section 6.18.3, "Issue When Upgrading Library Definition from JDeveloper 10.1.2.0.0 to 10.1.2.1.0"

- Section 6.18.4, "Null Pointer Exception in the UML Class Editor"

- Section 6.18.5, "Running JDeveloper on Windows XP Service Pack 2"

- Section 6.18.6, "Fail to Make/Run JSPs if Unused tlds Exist in Jars in WEB-INF/lib"

- Section 6.18.7, "Using JDeveloper in a Multibyte Environment Obscures Some Characters in Text"

- Section 6.18.8, "JSP/HTML Editor Cannot Decode File's Encoding Correctly if the File Has Large HEAD Tags"

- Section 6.18.9, "Working with Offline Database Definitions"

### 6.18.1 Error Message When Deploying Applications Using the IDE (4502734)

Users will see the error message `checkIsLocalHost() error:` during the deployment of applications using JDeveloper. This message can be ignored and does not have any effect on the overall deployment process.

### 6.18.2 Unable to Debug with Client VM when JDeveloper Started with JDK 1.5\JRE\BIN in Path (4502080)

If you have jdk1.5\jre\bin on your path when you start JDeveloper on Windows, you will not be able to use the debugger with JDK1. (The default JDK with JDeveloper 10.1.2) with the HotSpot JVMs (hotspot, client, or server). Attempting to debug with JDK1.4 with a HotSpot JVM will cause the following error to appear in the log window:

`FATAL ERROR in native method: No transports initialized Transport dt_socket failed to initialize, rc = 509.`

The error is caused by the debuggee process looking for the dt_socket.dll and finding the JDK1.5 version of the dll from the jdk1.5\jre\bin directory on the path instead of the JDK1.4 version of the DLL The error will not occur when using the debugger with OJVM because OJVM does not use the dt_socket.dll.

Try either of these workarounds to avoid this problem:

- Remove jdk1.5\jre\bin from the path before starting JDeveloper.

- Use OJVM when debugging. This is specified in the Project Properties dialog box, on the Runner panel.

### 6.18.3 Issue When Upgrading Library Definition from JDeveloper 10.1.2.0.0 to 10.1.2.1.0

(4148838) If you created your own library definition in JDeveloper 10.1.2.0.0 and manually added the EL Jar files (commons-el.jar, jsp-el-api.jar, and oracle-el.jar) to your library, you may see `NoClassDefFound` errors when you compile or run in JDeveloper 10.1.2.1.0. You can fix the library definition by pointing the jar files that are present in the new location from `$DevSuiteHome/jakarta-commos-el/` to `$DevSuiteHome/jlib/`.

### 6.18.4 Null Pointer Exception in the UML Class Editor

(3891954) Users may receive a null pointer exception `javax.swing.SwingUtilities.getWindowAncestor(SwingUtilities.java:63` when clicking "Alt-Tab" while in the UML Class editor or while clicking in the Structure window with the mapping editor open. This situation occurs infrequently and is the result of a JDK bug which has been corrected in JDK 1.4.2_05 and later.

### 6.18.5 Running JDeveloper on Windows XP Service Pack 2

When running JDeveloper or OC4J on Windows XP Service Pack 2 for the first time you will be shown a Windows security alert. Once you click Unblock you should not receive this alert again.

SP2 blocks all ports. Even if OC4J is "unblocked" the default port 8888 is still blocked. Therefore, to run an application using the external OC4J, (say, port 8888) it needs to be physically added to the firewall exception list. To do this:

1. Open network properties and select the ethernet connection.

2. Click Advanced.

3. Click on settings for firewall.

4. Click Exceptions tab and click Add port and give port as 8888 or whichever OC4J uses and an optional name.

5. Click OK to close the network connections window.

### 6.18.6 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:

- Remove the jars containing unused tlds from WEB-INF/lib.

- Add all libraries related with jars in WEB-INF/lib into Project's classpath.

- Uncheck "Make Project" in Project Properties, Profiles-Runner-Options.

### 6.18.7 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`

### 6.18.8 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.

### 6.18.9 Working with Offline Database Definitions

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