JBuilder X Update 3 Now Available

By: Tim Del Chiaro

Abstract: Update for users of JBuilder X (Developer, Enterprise, WebLogic) and Enterprise Studio 7 for Java

Registered users of JBuilder X (Developer, Enterprise, WebLogic Edition) and Borland Enterprise Studio 7 for Java can now download:
  • JBuilder X Update 003
  • Borland JBuilder X Update for Borland Enterprise Server 6.0
Click here to download from the JBuilder X Registered Users Page
(you must log in with the same account that you used to register your JBuilder X Developer, Enterprise, WebLogic Edition or Borland Enterprise Studio 7 for Java product)
Borland JBuilder X Update 003: Release Notes

Borland JBuilder X Update 003
Release Notes

This software patch is being provided to licensed users of Borland JBuilder X.
Installation and use is governed by the license statement for Borland JBuilder X.

This patch is intended for all supported platforms and languages for JBuilder X. Some strings displayed by the patch may be displayed in English, even if you are using a localized version of JBuilder X.

For more information about JBuilder, including FAQs and workarounds, please visit the JBuilder Developer Support web site. If you have a problem, please report it via the Bug Submission Form. Please be sure to include steps to reproduce, source code to help reproduce the problem and the exact text of any error messages encountered.

Installation Instructions

Read all the instructions through once before applying the update. The following description assumes that JBuilder X has been installed in the directory JBuilderX. If you have installed JBuilder in a different directory, substitute the one that you used. Unix users should substitute a simple (forward) slash ("/") wherever a backslash ("") appears in a path name.

This patch is delivered as one ZIP file (jbx_patch_003.zip) and Release Notes.

To install the patch:

  1. If JBuilder is running, exit JBuilder.
  2. Remove any and all other JBuilder X updates (jbX*.jar) from your JBuilderXpatch directory.
  3. Copy the patch ZIP file (jbx_patch_003.zip) to a local directory.
  4. Make a backup of libjavac.jar and libunittest.jar. (Note: It is recommended that you move these to a separate directory so that they are not included in your class path.)
  5. Unpack the ZIP file into your JBuilderX installation. This should:
    • Copy javac.jar into your JBuilderXlib directory
    • Copy unittest.jar into your JBuilderXlib directory
    • Copy jbX_all.jar, jbX_me.jar, and jbX_ws.jar into your JBuilderXpatch directory.
  6. Restart JBuilder.

Note: If your operating system does not have a utility for unarchiving ZIP files, you can use the JAR utility in the JDK to unarchive ZIP files. At the command line, change to the directory where you installed JBuilder X, and enter the following command (where <jdk> is the directory in which the JRE or SDK is installed) for your platform to extract the files.

  • Windows:   <jdk>binjar -xvf jbx_patch_003.zip
  • Unix:   <jdk>/bin/jar -xvf jbx_patch_003.zip

File List

In addition to this document, the update consists of the following files:

File Name Size
javac.jar 427,036 bytes
jbX_all.jar 2,328,726 bytes
jbX_me.jar 59,631 bytes
jbX_ws.jar 32,082 bytes
unittest.jar 41,049 bytes


Specific Fixes

This patch contains fixes in the following areas:



General

  • [184820] It is easy to undock the Project pane such that its title bar is off the screen, making it impossible to move.
  • [186070] The splitter between the Diagram component and the Editor component cannot be selected by choosing View|Select Browser Splitter.
  • [188552] A ClassCastException is thrown when getting the for loop block with no curly braces.
  • [193064] It is easy to undock a Project pane such that its title bar is off the screen. When this happens, there is no way to move it without having to abandon that workspace.
  • [193111] Changing the type of a JomField (which is a multiple-dimension array definition), leaves a character behind in the generated source.
  • [197126] A project activation event is not being fired during JBuilder startup if the active project is in a project group. This disables (until another project is activated) some behaviors in the Content Manager which depend on this, plus prevents the active personality from being set.

EJB Development

For additional information on building J2EE modules, please see "Building J2EE Modules".

General

  • [185353] Adding a non-persistent field to a CMP 1.1 entity bean, and then forcing a commit, converts it to a CMP field.
  • [186856] Changing a variable name does not properly detect the context variable by type instead of name. This prevents the EMT from catching JBuilders code style, Togethers code style, and any other coding style.
  • [186073] Changing interfaces in the DD editor and switching back to the EJB Designer causes parse errors.
  • [187020] Connector module dependencies are not included in the RAR built for an EJB module.
  • [188613] cmp-version is written to ejb-jar.xml for a BMP 2.0.
  • [193100] When the CMP 2.0 Entity bean which is being referenced by a session bean is renamed, the local and home interface names of the <ejb-local-ref> tag in the ejb-jar.xml are not updated.
  • [193244] When an EJB contains a method that has local home interface, there is a compilation error after a session facade is created using the Launch DTO/SessionFacade wizard.
  • [191251] When importing a database, the table columns should not sorted at structure pane.
  • [193367] When you add a new method or change the signature of a method on a EJB in the EJB Designer, JBuilder sets the JNDI name back to the default JBuilder-generated name for the EJB.
  • [193815] An incorrect return statement is generated for an entity bean with a primary key type java.lang.String.
  • [194176] Add the following DB data type to Java type mapping:
    NCHAR - String
    NVARCHAR - String
    It gets mapped to Object by default.
  • [194177] The Table Reference editor dialog does not save changes when mapping a relationship using the default cross table.
  • [194244] Changes are not saved to jndi-defintions.xml when adding a data source manually and setting properties choosing Edit Data Source Properties.
  • [194561] When launching the DTO/Facade Wizard on a bean with many fields, the code generated in the file xxxDtoAssember.java is truncated.
  • [194731] The EJB reference is removed when the name of the referenced bean is changed.
  • [195460] Building an application module includes all java classes in the resultant EAR.

WebSphere

Note: You will need to configure the server in JBuilder again after applying this patch.

  • [187484] When adding a field to a CMP that was created by selecting a table, JBuilder stops working--you have to kill the process to exit JBuilder.
  • [187657] A ClassCastException is thrown when reading ejb-jar.xml that contains a message-driven bean.
  • [187693] Application client only: When creating a module using existing code, the JNDI names are not read.
  • [187696] When creating an EJB Module from existing descriptors, the CMP descriptors are not read.
  • [187783] When creating an EJB module using existing code, some of the existing settings in the server-specific deployment descriptor are lost.
  • [187804] When creating a module using existing code, the existing server-specific deployment descriptor is not fully preserved.
  • [191747] Should add a data type alias:
    Database Vendor Type --- *
    Data Type --- INT
    Data Type Alias --- INTEGER
  • [191855] The EJB Designer cannot be opened without corrupting the deployment descriptor when it includes beans that contain relationships.
  • [191872] Incorrect settings are stored in the deployment descriptor for transactions.
  • [193242] Creating a Struts client using the DTO/Session Facade wizard for a WebSphere 5.0 EJB module renders JBuilder unstable.
  • [195062] If a table column joins an EJB CMP relationship, but not as a CMP field, then the EJB module cannot be built, resulting in a mapping error.

JBoss

  • [190413] Trying to run a simple JSP on JBoss 3.2.2, this error occurs: java.lang.NoClassDefFoundError: org/apache/jasper/JspC.
  • [191613] The following error is displayed when starting JBoss3.2.2 from JBuilder:
    14:23:44,625 INFO  [MainDeployer] Starting deployment of package: file:/D:/jboss-3.2.2/server/default/deploy/jmx-console.war/
    14:23:44,625 INFO  [EmbeddedTomcatService] deploy, ctxPath=/jmx-console, warUrl=file:/D:/jboss-3.2.2/server/default/deploy/jmx-console.war/
    14:23:44,734 ERROR [Engine] ContextConfig[/jmx-console] Exception processing JAR at resource path /WEB-INF/lib/jboss-jmx.jar
    javax.servlet.ServletException: Exception processing JAR at resource path /WEB-INF/lib/jboss-jmx.jar
    ...
    14:23:44,812 ERROR [Engine] ----- Root Cause -----
    java.io.IOException: The system cannot find the path specified
  • [192509] The existing deployment descriptor should be preserved when creating an EJB module using an existing directory or archive.
  • [192520] If the <relationships> element is present in jbosscmp-jdbc.xml, then the <ejb-relation> element must contain either a <foreign-key-mapping /> marker or a <relation-table-mapping> element.
  • [192524] For Many-to-One or One-to-One relationship: If the <ejb-relation> is present in jbosscmp-jdbc.xml, then an empty element <key-fields /> marker must be inserted in the <ejb-relationship-role> element if this <ejb-relationship-role> element has no CMR field in the database table (thus no <key-field> element in the <ejb-relationship-role> element). Otherwise, the SELECT generated by JBoss will contain spurious fields.
  • [193330] Relationship mapping is not written out for a 1-to-many uni-directional relationship using cross table mapping.
  • [193362] When using JBoss 3.2.3 RC1 and JBoss, with optimistic locking using "Version Column" method, JBuilder generates an incorrect jbosscmp-jdbc.xml file.
  • [193364] The default integration with JBoss 3.2.3 fails.
  • [193740] JBoss 3.2.2/3.0: A many-many relationship fails.
  • [193803] When I run a project to start JBoss, it fails.

Known Issues

  • [196293] JBoss 3.2.3: Trying to compile JSPs in sub-directories results in compilation errors.
    Workaround: Switch to the jasper 4.0 compiler:
    • For Tomcat: From the JBuilderX/thirdparty/jakarta-tomcat-4.0.6-LE-jdk14/lib directory, copy jasper-compiler.jar and jasper-runtime.jar to the JBuilderX/thirdparty/jakarta-tomcat-4.1.24-LE-jdk14/common/lib directory.
    • For Jetty: Find the jasper-compiler.jar and the jasper-runtime.jar in your JBoss installation and replace them with jasper-compiler.jar and jasper-runtime.jar found in the JBuilderX/thirdparty/jakarta-tomcat-4.0.6-LE-jdk14/lib directory.

WebLogic

  • [188668] Making a module after adding or removing fields from a CMP entity bean fails.
  • [190026] A java.lang.NullPointerException occurs when building a web module with JSP files if the "Check JSPs for error at build-time" project property is not selected.
  • [190297] When setting filters for classes in an EJB module, selecting a specific class in the filters includes all classes in the project.
  • [191656] WebLogic 8.1 (SP1 and SP2): Verify-rows, verify-columns, and optimistic-column for a single table-map is not written out to the deployment descriptor. Also, the modification is not saved if users manually add them in the XML file.
  • [192881] JBuilder allows creating relationship-caching information for an entity bean, but the EJB Designer does not allow you to associate that relationship cache with any ejbFinder or ejbSelect method.
  • [193462] The DOCTYPE entry entry generated in weblogic.xml uses -//BEASystems, Inc.//DTD Web Application 7.0//EN instead of (note the space between BEA and Systems) -//BEA Systems, Inc.//DTD Web Application 7.0//EN.
  • [195455] Trying to start up the server with a read-only web descriptor throws a VetoException.
  • [195984] Opening JBuilder 6 projects that use WebLogic 6.1 in JBuilder X results in corruption of the deployment descriptor.

Web Development

  • [188887] JBuilder is much slower when synchronizing web application's WEB-INF/classes directory with a project's classes directory.
  • [190018] If there is recursion of a type declaration in a .xsd file, JBuilder hangs when opening the XML file that uses this schema file.
  • [190106] Unable to selectively exclude and include class files in a web module.
  • [192608] Elements are not displayed when using TagInsight in some cases.
  • [192982] JSP files in a directory containing "_" characters in the directory name will generate a compile error when built.
  • [193062] For regular JSPs with no Struts tags, the complete path (i.e extension-mapped or path-mapped) is not used.
  • [193063] Tiles Definition renames across multiple sub-modules that share same tile names with unique tile configuration files do not work correctly.
  • [193068] Context in Designer is lost when editing an action in the Action Designer pane.
  • [193370] Classes from generated source (such as from the CORBA IDL compiler) are not included in web module when synchronizing the web module's WEB-INF/classes directory and when 'Project Properties/Build/Generate source to output path' option is selected.
  • [193371] JBuilder soometimes deletes package string in this parameter.
  • [194772] JSP code generation: Duplicate page directives are generated for the content type in an international locale.
  • [195239] Elements are not displayed when using TagInsight when the file path includes a space character in the XML SYSTEM ID catalog mapping.
  • [195454] Tomcat: Trying to start up the server with a read-only web descriptor throws a VetoException.
  • [196403] JBuilder WebLogic Edition only: When clicking Finish at the end of the "Project for existing code" wizard, JBuilder throws an exception and then hangs instead of displaying the Select Server dialog box.

Build System: EJBs and JSPs

  • [180269] Building modules in JBuilder X is much slower than JBuilder 9. The difference is especially noticeable for application modules and also in large projects..
  • [190965] The WebApp module class filters seem to include all classes in the project even when only specific classes are selected with include filters.
  • [193372] All project classes are copied to to WAR modules rather than just selected classes.
  • [193463] All classes in the project's output path are included in an EJB JAR with an include filter to add a single class (other than the EJB classes).
  • [193481] Unchecking the option to include class dependencies overrides the classes to be included using include filters.
  • [194482] Adding a recursive package-level include filter does not include all of the classes in certain cases.
  • [194483] Adding an include filter for all classes and resources in a project with the Java class file type turned off does not include any classes in the EJB JAR.
  • [194478] Classes do not get included in an EJB JAR with automatic source discovery turned off, and packages are added manually to a project.
  • [196322] The user definition file type is not included in the WAR.
  • [196686] Cannot use the command line to build projects that use WebLogic 6.1, WebLogic 7.0, WebSphere 4.0 AE, and WebSphere 4.0 Single Server.
  • [197203] When building an EJB module, the classes to be included in the JAR file does not follow the filter specified in the EJB module's Properties|Content|Classes.
  • [197452] Adding dependencies to an EJB module should expand the libraries in the resulting EJB JAR file.
    Note: Users with existing projects who need to add dependencies to EJB JARs should:
    1. Open the project (.jpx) file.
    2. Locate the EJB module node element.
    3. Replace the archiverClass property element with the following:
      <property category="archiving" name="archiverClass" value="com.borland.jbuilder.enterprise.module.ejb.EjbModuleArchiver"/>
    This change should only be made for the EJB module node property.

Web Services

  • [186433] The Axis Flow Designer does not refresh correctly.
  • [196584] Oracle support: The Xerces library should be added to all Oracle web services projects and moved to the top of the required libraries. Web services compilation fails without this library due to XML parser conflict.

Mobile Development

  • [192553] The Motorola SDK requires that icons (.png files) be located in the root directory of the JAR file. Currently, we put them in an icons directory.
  • [192559] In MIDP 2.0, two new permission APIs are added to the MIDlet Suite. The Sun WTK 2.1 provides support for these new APIs.
  • [193534] The new OpenTools-based JDataStore user interface cannot be launched in JBuilder due to a class cast exception in com.borland.jbuilder.micro.MicroJDKToolAction.
  • [193760] Cannot execute a task that will compile a non-JBuilder project.
  • [194205] Checkboxes in the permission window become unchecked when options are combined.
  • [195471] Cannot open the Properties page for Obfuscation settings.

Refactoring

  • [188135] The Introduce variable refactoring is not available on "chained" method calls.
  • [188237] Undoing a refactoring does not work in JBuilder Foundation.
  • [188543] The Refactor/Rename field does not work if the "Always rebuild before refactoring." option is selected.
  • [188604] Incorrect code is generated after refactoring in a default package.
  • [189510] When trying to remove the sole argument out of a method, the refactoring reports the error: "Method Already Exists."
  • [193890] After performing a Move class refactoring, a incorrect import is generated.
  • [195697] A Rename Class refactoring can fail with "Node already exists" error.

Debugger

  • [192548] Array elements with an invalid index are displayed when navigating array elements in the debugger view..

Editor

  • [188216] The Javadoc formatting logic does not work correctly.
  • [188861] Changing the colors for the brace match highlight disables the functionality of matching within the session.
  • [194020] Override a base class or interface method, then the Javadoc Conflicts list complains about that method as if it had no Javadoc at all.
  • [194636] Formatting packages corrupts the code by truncating the last closing brace.
  • [194980] The template with the $Selection macro does not work and causes a crash.
  • [195174] Opening some files might freeze the browser.

Team Development

  • [192849] When using ClearCase, new UCM Project activities are created or recreated upon an initial check out of files. This includes Activities of the same name.
  • [195787] JBuilder calls the cleartool.exe tool when launching (even if there is no project open). This causes a delay in startup.
  • [196370] When using a version control system with pessimistic concurrency (files are read-only unless exclusively checked out), saving the project displays an error in the status bar.
  • [196382] The Commit Browser and Status Browser do not show the correct state of files when checked out and changed by multiple users.

Runtime System

  • [187985] The incorrect tools.jar is used (the version present in the JDK set in the project properties - even if a different JDK is set in the run configuration).

Unit test

  • [195064] A java.lang.NoClassDefFoundError exception is generated in code that has apparently been recently added to a wizard-generated Comparison Fixture.

Visual Cafe Importer

  • [196000] In The Visual Cafe importer truncates the last few lines of code from each of the imported Java files.

Together Studio

  • [186315] Cannot edit a deployment descriptor in the DD editor on the first attempt.
  • [186388] When Together modeling components are installed, changing the package name from the default of <Project Source> generates incorrect code.
  • [197066] The Together integration throws a RuntimeException when creating an Applet: java.lang.RuntimeException: Can't move file because of event doesn't provide old file name!.

Server Response from: ETNASC03