Issues for WebGain VisualCafé Enterprise Edition 4.0


Copyright © 2000 by WebGain Corporation. All Rights Reserved. VisualCafé is a trademark of WebGain, Inc. Other brands and their products are trademarks of their respective holders.

Table of Contents:
I. Known Problems and Caveats
II. Database Issues

I. Known Problems and Caveats


This section lists information about known problems in the following areas:

Adding a third party swingall.jar
Breakpoint set in code for a timer event
Big Decimal Issue
Changing An Empty Project to EJB Application Project
Classes with methods that use array arguments
Client Adapter Wizard
Closing server projects
Code generation issue with layout manager
Code generation issue with EJB
Connection to Cloudscape database
Converting Swing 1.1 applications to 1.0.3
CORBA Development Under Java2
Debugging differences in different VMs
Debugging EJB projects
Debugging in Netscape
Debugging in Internet Explorer
Debugging Java on remote machines
Debugging with an older classes.zip
Debugging with a servlet co-client
Deployment of Jar files
Errors when starting VisualCafé
Executing or debugging servlet client locally
Incremental Debugging
Inner classesand EJBs
Inprise's Object Activation Daemon
International issues
Issues with ddservices
Java Beans
Javadoc Editor
JDK Version incompatibilities
JDK 1.1 native application
JDK 1.3 support
JLookAndFeelComboBox
JMaskedTextField
JSlider contained in a JFrame
JTable or JList in a JScrollPane
JTabbedPane
JTextArea border
Known Online Help issues
Large JAR files and the component library
Lightweight component behavior between JDK 1.1 and 1.1.7
Macro
Memory Warnings
Migration issues with EJB projects
Missing or incorrect Line-number information
Missing Keyboard mapping for UML\EJB tabs
MultiList
New properties in Swing 1.1
Parse All Imports option
Pluggable VM profiles using directory names with spaces
Project migration issues with EJB projects
Quarterdeck CleanSweep
Remote Debugging & Execution of Projects in Java2
Remote execution of Distributed Debugging Services
ResourceBundle/Localization Feature
Sample project compilation errors
Selecting Sun's JDK 1.2 executable
Setting breakpoints in identical files
Stepping out of event handler code in Netscape
Stepping over a statement in a try block
TextArea
Unavailable source files when debugging in Web browsers
Unable to start VisualCafé
Using Restart with pluggable VMS
Using VisualCafé on 256 colors displays
Version Control Limitation
VisualCafé and spawned processes
WebLogic limitations
Z-order of heavyweight components


Adding a third party swingall.jar
If you add a third party swingall.jar, the third party components are ignored in the design time environment. For runtime execution, users can add a third party swingall.jar file using Tools | Environment Options | Virtual Machine.

Big Decimal Issue
Since many drivers do not support getting BigDecimal from a result set, code generation for the readData() method uses ResultSet.getBigDecimal(<columnindex>,<scale>) instead of ResultSet.getBigDecimal(<columnindex>). The compiler throws a warning saying that this method has been deprecated.

Breakpoint set in code for a timer_event
When debugging code running in the Netscape Browser, do not set a breakpoint in a timer_event. If you set the breakpoint in the timer_event, Netscape may crash when the breakpoint is hit.

Changing An Empty Project to EJB Application project type
When you create an empty project, then change the project type to EJB Application, the project may not behave properly. When you create an empty project for an enterprise bean, select Empty Enterprise Bean.

Classes with methods that use array arguments
VisualCafé may not interpret methods with array arguments correctly when the classes containing those methods are in the Component Library. This appears in various ways. For example:

Client Adapter Wizard
The Project Path drop down list in the Save Client Adapter page of the Client Adapter Wizard sometimes displays as a text field. This is a JFC bug. Click the right side of the text field to activate the dropdown list.

Closing server projects
Creating and closing a server project (RMI & CORBA) without saving prevents a temporary directory in <VisualCafe>\Bin from being removed.

Code generation issue with layout manager
Code is generated for the SetBound property even when a layout is in specified. This line of code should be deleted.

Code generation issues with EJBs

When using Configure Deployment Descriptor to generate code for a new finder method, you need to enter the full package name for the parameters used by this method. WebLogic Server 5.1 requires a fully qualified package name.

Code generated by VisualCafé for bean managed persistence does not work with WebLogic Server 4.5.2.

Changing the variable type in the Filed tab of Configure Enterprise Bean doesn't update the related comment line and causes errors to appear while using Verify EJB.

Enterprise Bean does not support special character like '&' in its description field.The workaround is to open the source code of the bean and split the comment statements into two or more comments. One that has just the description and other that has bean information like home interfaces etc.

If you change the JNDI name of a bean through the descriptor, you need to modify the client code so that it can use the modified JNDI.

When you create a bean managed persistence entity bean using the Enterprise Bean wizard, you should map it to a database. If you do not map the database to the bean you will receive a build error. If you choose not to map to the entity bean, you can use Configure Enterprise Bean to map it later and use Verify EJB to add the required methods.

Back

Top

Connection to Cloudscape database
The evaluation version of Cloudscape shipped with WebLogic Server only supports one database connection at a time to a cloudscape.system.home directory. This limitation prevents you from setting the connection pool to a database, then use that database in the PersistenceBuilder at the same time.

Converting Swing 1.1 applications to 1.0.3
Converting Swing 1.1 applications that use setDefaultCapable(boolean) to 1.0.3 may fail to build since this property is not present in 1.0.3. This can be corrected by removing calls to setDefaultCapable() before converting files to Swing 1.0.3.

CORBA Development under Java2
Currently CORBA development is disabled when VisualCafé is using the Java2 VM. Therefore JDK 1.2 compliant Visibroker & OrbixWeb Orbs are not yet supported by VisualCafé. This is because of conflicts between the omg classes which are used by the Orb vendors and the omg classes which are shipped with the Java2 VM

Debugging differences in different VMS
Occasionally when debugging in a Sun VM on a UNIX platform, Step Over may need to be selected more than once per line of Java source code. When debugging, the Sun vm is put into single step mode. When in single step mode, each step will represent one VM instruction but not necessarily one line of Java source code, since there may be more than one VM instruction for a given line of Java source code.
Certain extended feature like expression evaluation,incremental debugging are not available on a non-WebGain VM.

Debugging EJB projects
When an enterprise bean project is selected, using Project | Run In Debugger causes VisualCafé to miss a Breakpoint set on the first statement of the main() method of the Client co-project. Use Project | Step Into instead of Project | Run In Debugger.

VisualCafé crashes when a local client calls a non existent method on the server.

In certain situations while debugging with WebLogic Server, breakpoints in classes loaded by their custom classloaders may be ignored. If you encounter this situation while debugging an Enterprise Bean in WebLogic Server, you need to pass an additional setting to the VM in which your server will be running. In your EJB project, select Manage Deployment Target in Project | Options | EJB tab. In the field for Optional VM Arguments add the setting -Dwebgain.tools.debug.DontUseClassLoadNotify=true. This enables breakpoints to be hit.

Note: Disabling classloader notifications in this way may have the side effect of VisualCafé showing multiple breakpoint markers for a particular breakpoint.

Debugging in Netscape
Stepping out of methods while debugging in Netscape is not supported in this release.

Debugging in Internet Explorer
Under Windows 2000 you may not be able to use Internet Explorer for debugging. The option in Project | Options | Debugger may be greyed out. When this happens, modify the registry entry for Internet Explorer in HKEY_LOCAL_MACHINE\Software\Microsoft\IE4\Setup. Make sure the path value does not contain %programfiles%. You can change the %programfiles% value by using the following steps:

  1. Open a DOS window.
  2. Type set programfiles and press Enter.
  3. Note the value returned .
  4. Replace %programfiles% with the noted value.

Debugging Java on remote machines
VisualCafé ships with sets of classes that need to be installed into JDKs to provide debugging support. Some of these are platform specific while others are more general purpose. If you install a general purpose set on a system that requires platform specific support, VisualCafé will hang when you try to debug VMS running on that system. For example, VisualCafé will hang when you use the generic 1.1.7 set on Compaq True 64 UNIX instead of the Compaq True 64 UNIX 1.1.7 set. Please see platforms\platforms.txt on Disk One for additional information.

If you do not wish to expose a VM on a particular system, choose Tools | Environment Options | UML\EJB | Manage Deployment Target | Exclude other attachments.

Back

Top

Debugging with an older classes.zip
If an older classes.zip file from a previous version of VisualCafé is added to your project CLASSPATH (Project | Options | Directories | Show directories for: Input class files), VisualCafé crashes when the project is run in the Debugger.

Debugging with a servlet co-client
When an enterprise bean project is executed with a servlet project set as the co-client project, an error may display stating "Unable to continue debugging!" Close the dialog box displaying this error and continue debugging.

Deployment of JAR files
When deploying via FTP, Project | Deploy interprets the remote deployment Directory setting as a relative path even if it has a leading slash. On a UNIX system, prefix the directory path with ".../" to get to the root directory.
Creating a standalone jar in JDK 1.1.7 will fail due to a problem with spaces in the manifest file.

Errors when starting VisualCafé
A corrupt project may result in VisualCafé refusing to launch or crashing upon launch if the On Startup option in the Tools | Environment Options | General is set to: "Open the last project." This can be avoided by double clicking a .java file to launch VisualCafé without opening the last project. If you determine that the project is corrupt, it can be rebuilt using the Empty Project template. Please see the Standard Features User's Guide for instructions on working with Empty Projects.

If you encounter any errors when starting VisualCafé or if your Component Palette appears empty, delete the following files from <VisualCafe>\Bin:

*.rps
*.reg
*.vws

Please zip up your corrupted files, click here to send us email, and attach the zip file. This will help us track down corruption problems.

You can also use "vcafe - clean" at the command line to delete these files and then launch VisualCafé.

Note: Some of the errors are:

"No starter templates could be found"
"Cannot open local repository"
"Cannot open registry"

These files are platform-dependent and must be regenerated when switching between Windows 9x and Windows NT or to another machine.

In Windows 98, if VisualCafé has problems starting, rename the SymcJitCache folder in the Windows directory and restart VisualCafé. If VisualCafé starts successfully, please zip up your SymcJitCache folder, click here to send us email, and attach the zip file.

Executing or debugging servlet client locally
Executing a servlet client for an EJB project or executing a servlet locally fails due to an incomparability of the Servlet API in WebLogic Server 5.1 with the internal servlet runner. To work around this issue, you can remove the weblogicaux.jar entry from the project classpath or place Java\lib\servlet.jar in the project classpath before the weblogicaux.jar entry.

Incremental Debugging
Changes made to static variables require a restart of the application or applet before they take effect. Similarly, changes made to methods in the active call chain require a restart of the method before they can take effect. In both cases a dialog presents you with this choice.

When using incremental debugging, changes made do not take effect until the next time the modified method is called. This means if you modify a method that runs only once during the execution of your applet or application, for example, init for an applet, run for a thread, a constructor for an already loaded class, etc., and that method has been executed, then you need to restart the applet or application. The debugger does not always detect this case and you may not get a prompt to restart. Also, if you modify static initializations, then you need to restart the app as static initialization is done once, when the class is loaded. The environment does detect this case and presents the user with the appropriate prompt. See the Online Help or User's Guide for more features and expected behavior using incremental debugging.

Back

Top

Inner classes and EJBs
Avoid using inner classes in anEnterprise Bean project. If you choose to use inner classes, you need to use VisualCafeÆs regular deployment features to define other class files in the EJB project that need to be deployed and where they need to go. Use Project | Options | Deployment to set these options. Project | Deploy will use that information to place the classes, such as utility type classes, to the remote machine.

Inprise's Object Activation Daemon
Networks running more than one Inprise Object Activation Daemon (oadj) may experience connection problems. If your client throws a CORBA "No Response" error while attempting to connect, try connecting again. The client should connect on the second try.

International Issues
This version of VisualCafé has been tested on the following native operating systems: US English, French, German, and Japanese. Double byte (includes single byte Katakana) characters should not be included in variable or method names if you are using StructureBuilder standalone or integrated with VisualCafé.

Issues with ddservices

If ddservices on an HP UNIX system does not appear in the VisualCafé browse list, and running ddservices -report returns a socket in use error, then run ddservices -stop on the remote machine to stop the service.

When ddservices launches processes it directs the output to /dev/tty. Running ddservices without controlling TTY or from rsh may cause it to fail to launch child processes. Please see documentation on DefaultProcessFactory and the ddservices -ossuffix switch.

ddservices on a UNIX system will be silently suspended if run as a background job and the stty tostop option is set. The workaround for this is to put stty tostop in the .login or .profile to turn off the tostop feature.

Java Beans
When a Bean has multiple types of event listeners that implement event types having the same name, VisualCafé will generate code to handle that event type only for the first listener. If you select that event type for the second event listener, it generates the code for using that event type from the first listener.

VisualCafé uses the code generation model. If a Bean has a property editor, the method PropertyEditor.getJavaIntializationString()must be properly implemented.

Custom properties: All custom properties must be serializable; otherwise VisualCafé cannot initialize the state of the Bean.

If a custom bean has been placed in a Component Palette tab, and AutoJAR is used to update the bean, the bean is deleted from the tab. You can avoid this by adding a toolbar value to the beaninfo such as the following:

import java.src.com.WebGain.itools.vcafe.beans.BeanDescriptorAttributes;
BeanDescriptorVname.setValue(BeanDescriptorAttributes.TOOLBAR_ATTRIBUTE,ToolbarPaletteTabName);

where BeanDescriptorVname is the name of your bean descriptor variable and ToolbarPaletteTabName is the name of the Toolbar Palette tab where the bean is displayed.

Changing the package of a project Bean after it has been added to a form will not change the class property and will cause code generation problems when it is used.

Javadoc Editor
Placement of Javadoc comments on variables that are inside the DECLARE_CONTROLS block will be removed upon code regeneration and is not supported.

If the Javadoc Editor is open and you're working in MDI mode, switching to another view by right clicking a file name in the project window will only work if the project window is not docked.

If the source files are not compilable, the Javadoc Editor may behave unpredictably. Please compile the source files before using the Javadoc Editor to avoid this behavior.

If you have throws clauses containing external classes, you may not get these classes listed in the Exceptions window in the Javadoc Editor. To work around this problem, enter @exception <ClassName> in the Javadoc comment.

Avoid trying to use the Javadoc Editor to add Javadoc comments to the code in the form of:

private int var1, var2;

instead, please use:

private int var1;

private int var2;

Otherwise the Javadoc Editor produces unpredictable results. The Javadoc utilities will only see the Javadoc comment directly above the definition and generate the same html text for both the var1 and the var2 sections. There is no way to provide separate text for each variable unless the definitions are on separate lines.

You can run a new macro called Fix Field Declarations to search through existing code and change the code into separate lines.

Back

Top

JDK Version incompatibilities
WebGain VisualCafé 4.0 supports version 1.1.7a of the Java Development Kit from Sun Microsystems. Please see http://www.javasoft.com/ for information regarding specific OS incompatibilities with the JDK.

JDK 1.1 native application
Native (Win32) applications created with older versions of VisualCafé are not supported in the current version.

JDK 1.3 support
Security is disabled for executing applets under JDK 1.3 in appletviewer. To enable security, add the following variable VCAFE_ALLOWAPPLETSECURITY to the sc.ini file.

JLookAndFeelComboBox
In JDK 1.2, JLookAndFeelComboBox works correctly with all Look and Feel types. To use JLookAndFeelComboBox with Swing 1.1 in the JDK 1.1 environment, or manually set the look and feel to Windows or Motif at runtime, you must add the new Windows and Motif JAR files to your project CLASSPATH.

  1. Choose Project | Options | Directories | Input class files.
  2. Click New.
  3. Click Files and choose < VisualCafe> | Swing 1.1 | windows.jar or motif.jar.

Note: Do not add the files to the SC.INI CLASSPATH as this can cause problems with the VisualCafé program files.

JMaskedTextField and MaskedTextField
Numeric masks in the masked fields can be forced to accept non-numeric inputs using copy and paste.

The method isdatacomplete() in JMaskedTextField and MaskedTextField always returns a value of true although no changes were made to the component.

JSlider contained in a JFrame
When in Swing 1.1 mode, JSlider will not appear in a JFrame at runtime unless setVisible is set to true in the source code.

JTable or JList in a JScrollPane
A JTable or JList in a JScrollPane will not scroll automatically when an item out of the current viewable area is selected.

JTabbedPane
Visible tabs for a JTabbedPane will be automatically switched when you select a pane via the property list.

JTextArea border
No border is the default for JTextArea in Swing 1.1 whereas LineBorder was the default in Swing 1.0.3.

Known Online Help issues
Pressing F1 for help on some properties may not bring up the help for that property. If you want to view the help for the property, use the Contents Tab in the Online Help by selecting Help Topics from the Help menu. You may also search for the item in help by using the Index or Find tabs in the Online Help.

In the Component Reference, help topics for Swing components contain a button labeled "API" or "API(Swing 1.1)". These buttons link to related API documentation in the APIRef.hlp file. Depending on which APIRef.hlp file you have installed in your <VisualCafe>\Help folder, you may experience "Topic not found" messages. See API Reference in Tips.htm for more information on changing your APIRef.hlp file.

Back

Top

Large JAR files and the component library
Under Windows 95 it is best to drop larger JAR files one at a time into the Component Library window. This is a problem with the Java VM under Windows 95, and we expect it to be resolved in version 1.2 of the Java VM.

Lightweight component behavior between JDK 1.1 and 1.1.7
Between JDK 1.1 and JDK 1.1.7, behavior of lightweight components has changed in many ways (primarily to fix problems in the initial implementation). If you run your program in an environment with an implementation of lightweight components that is earlier than the implementation in JDK 1.1.7, behavior of the lightweight components may vary.

Macro
When editing a Macro in the source editor, if the argument for VisualCaféCommand.sendKeys('') is a double byte character, then the macro can only paste the second byte.

Only use JDK 1.1.7 when creating macros in VisualCafé. When macros are executed, the CLASSPATH in the SC.INI is used.

Memory Warnings
"Out of Virtual Memory" warnings
If you encounter an "Out of Virtual Memory" warning under Windows NT with 128 MB or more of RAM, you may have come across a reported NT bug. The symptoms are a sudden jump in the "Mem Usage" graph in the Performance tab in the Windows NT Task Manager. A sudden memory allocation of 100 MB or more can occur and is not returned unless the system is rebooted.
To prevent this error, change the paging file size settings in Start | Settings | Control Panel | System | Performance to the same or greater size as the amount of physical RAM in the machine. Choosing the Recommended Paging File size is also a safe choice.

Low-memory warning on startup
If the sum of your system's available physical memory (RAM) and swap space on disk is below a minimal level when VisualCafé starts up, a warning dialog will notify you of this condition. It advises you to increase swap space (see below). You have the option of ignoring this warning (answer "No" to the "Quit?" prompt), and proceeding to run VisualCafé with low memory resources. With light use, you may not experience any problems at all. But with typical use, at some time in the course of your VisualCafé session you may begin to see "low virtual memory" warnings from the operating system. Typical symptoms of running any complex application with too little available memory are sluggish performance and unstable system behavior.

If the warning dialog recommends that you increase swap space by some small amount, such as 2 or 3 MB, increase the minimum swap space on Windows NT or free disk space on Windows 95/98 by at least 5 MB.

For Windows 95/98, if the option is selected to let the OS manage swap space (default setting) in Start | Settings | Control Panel | System | Performance | Virtual Memory, then available swap space is simply the amount of free disk space; but note that there is no guaranteed minimum: if the disk is full, there is no swap space available.

For Windows NT 4.0, choose Start | Settings | Control Panel | System | Performance and click the Change button. The page file setting that matters most to an application under NT is the initial page size setting. On a system with 96 MB RAM, the initial swap space should be not less than 80 MB, and 96 MB is better. A reasonable setting for the maximum is at least twice the initial size.

For further details about virtual memory, see the OS Help in the System dialog box.

Migration issues with older EJB projects
VisualCafé cannot migrate enterprise bean projects created in version 3.1a when the bean class does not directly implement the SessionBean interface but extends one of your own classes.

Back

Top

Missing or incorrect line-number information
Line-number information is the debug information that is used to tell the debugger how the lines in a Java source file to a class correspond to the actual byte code instructions in the class file of that class.
This information is used two ways. First, it is used when you set a breakpoint on a line in a source file. When you do this, the debugger uses the information to tell the VM at what point in the byte code it should halt execution. Second, when you are stepping through code, the debugger uses the line number information to determine which line should be shown as the currently executing line. The compiler puts line-number information into the class files it generates, that's unless the optimization flag is passed to the compiler.

If a class is built without line number information:

If a class is built from a different version of a source file than what is available to VisualCafé:

One situation in which you will see the above problems is when you step into the methods of the runtime classes, such as java.lang.String.indexOf(int i), when debugging an applet in Netscape 4.5. In this example, String in Netscape wasn't built with the same source as VisualCafé ships with.

Missing keyboard mapping for UML\EJB tabs
Currently there is no keyboard mapping for the UML\EJB tab in Environment Options | Tools | Keyboard. A key can be set to invoke this tab using a macro.

MultiList
The MultiList component is deprecated. Use JTable instead of MultiList since JTable provides all functionality of MultiList and more.

New properties in Swing 1.1
Several new properties have been added to existing components in Swing 1.1. These properties may not be documented in the Online Help. If a property can not be found in the Online Help, check the Sun Swing 1.1 API reference located in the <VisualCafe>\Swing-1.1\Doc\API directory.

Parse All Imports option
When using the Parse All Imports option, allow the parser to finish parsing before editing or changing a file. To view the status of the parser, select Messages from the View menu.

Pluggable VM profiles using directory names with spaces
Executing and debugging will fail for Pluggable VM profiles that use a JDK with spaces in its directory name.

Project migration issues with EJB projects
Opening EJB projects that have been developed using previous versions of VisualCafé results in the deployment target being set to WebLogic Server 4.5.2. If you have not configured your WebLogic Server 4.5.2 deployment target or if WebLogic Server 4.5.2 is not installed in the location specified, no classpath is set for the client project.
After conversion, the EJB object may not be shown correctly. This is due to the JNDI name differences between what was used in the EJB 1.0 specification and the EJB 1.1 specification.

Quarterdeck CleanSweep
VisualCafé is not compatible with versions of QuarterDeck CleanSweep prior to 4.0. Compatibility issues have been resolved in version 4.0 and later, including Norton CleanSweep version 4.51 from Symantec. The current workaround is to update or uninstall old versions of CleanSweep.

Back

Top

Remote Debugging & Remote Execution of Projects in Java2
You cannot define an application project to execute remotely in Java2. Starting a remote Java2 VM and publishing files to that VM is not supported in this release.

To debug a remote process in Java2:

  1. Transport the files you wish to debug to the Java2 VM and manually execute them in the VM.
  2. Attach to the remote VM and debug the application.

To debug a remote process when executing in JDK 1.1.x from Java2:

  1. Add the following entry to your sc.ini file
    VCAFE_DISTRIBUTED12=1
  2. Set the "Execute" setting to "remotely". Use Project | Options | Project | Execute.
  3. Use remote execution and remote debugging as you normally would under JDK 1.1.x

Note: Your application can not use Java2 specific code in order to be backward compatible with the JDK 1.1.x VM.

Remote execution of Distributed Debugging Services
When remotely executing Distributed Debugging Services, remember that the JDK or ORB vendor specific files are not transferred to the remote machine. These files must be installed on the remote machine and present in the Distributed Debugging Services CLASSPATH for successful remote execution.

Distributed Debugging Services interprets 127.0.0.1 as a actual IP address instead of mapping it to your local IP. If you specify 127.0.0.1 as the IP of the target machine you wish to remote execute to you will get an error message "Unable to Connect to Server" because ddservices will look for a machine with the IP address of 127.0.0.1

When using distributed debugging services on AIX 4.2 machines, you need to start "ddservices" from the directory where it is installed. If "ddservices" is started from any other directory and an application is remotely executed, the error message "debug VM: not found" displays on AIX machine and remote execution fails.

ResourceBundle/Localization Features
For best results use the following procedures.

Turning on Resource Bundling/Localization:
1. Have the project in a compilable state.
2. Make a backup.
3. Resource Bundle your project near the end of the development cycle.
4. Use the Tools | Localization | Resource Bundle Strings dialog box to turn on these features.

Turning off Resource Bundling/Localization:
1. Remove any extra locales through the Tools | Localization | Delete Locale... dialog box.
2. Open the Project Options, and uncheck Localize Generated Code.
3. Revert any still localized strings by hand, and remove the resource bundle initialization strings from the files.
4. Delete any remaining Resource Bundle files from the project.

Hints and Tips:

Back

Top

Sample project compilation errors
The Sample projects should be run in JDK 1.1 environment and with JFC 1.0.3 package names. If you encounter compilation errors when first opening the sample projects, try compiling again. Please see the Messages window for more information if the errors continue.

Selecting Sun's JDK 1.2 executable
When you install Sun's JDK 1.2, the installer installs both the JDK and the JRE. This installs five copies of java.exe on your system. The copies of java.exe are located in:

<JDK install dir>\bin\java.exe
<JDK install dir>\jre\bin\java.exe
<JRE install dir>\bin\java.exe
c:\program files\JavaSoft\JRE\1.2\bin\java.exe
c:\winnt\system32\java.exe

where <JDK install dir> and <JRE install dir> are the physical locations of the JDK and JRE on your system.

VisualCafé attempts to find tools.jar based on the value of java.home, as reported by classes run in java.exe. This fails when the java.exe in the JRE install is used.

If you want to set up VisualCafé for debugging into a Sun JDK 1.2 VM, the executable you specify in Environment Options | Virtual Machines | Use VM executable must be one of the copies of java.exe in <JDK install dir>, and not the java.exe in <JRE install dir>.

Setting breakpoints in identical files
When two projects are open with the same name (such as JApplet1 and JApplet1), setting a breakpoint in one file will set a breakpoint in the other.

Stepping out of event handler code in Netscape
Stepping out of an event handler while debugging in Netscape eventually leads to a crash in the browser. Continuing to step out of the event handler causes you to end up in the EventDispatchThread.java file of the Netscape runtime. If you end up in the Netscape runtime while stepping out of an event handler (this will be obvious when the source no longer matches), select Debug | Continue from the VisualCafé menu or click the Run in Debugger button in the Debug toolbar to resume execution.

Stepping over a statement in a try block while debugging
In some cases, stepping over a statement in a try block that triggers an exception will cause the program to terminate. To get around this, set a breakpoint in your catch block. This breakpoint will get hit and you can continue to debug.

Back

Top

TextArea AWT component
Adding more than 20KB of text to the TextArea component can cause unexpected behavior or a crash.


Unavailable source files when debugging in Web browsers
Occasionally, when debugging in Web browsers, actions may lead to an attempt to open source files which are not available. In such cases, simply dismiss the Open File dialog box and continue debugging by choosing Debug | Continue or the Run in Debugger button in the Debug toolbar to resume execution.

Unable to start VisualCafé
If VisualCafé was terminated abnormally then there may be child process that would prevent it from starting again. These process like ddservices.exe, debugvm.exe, java.exe and javaw.exe need to be terminated from the Task Manager before restarting VisualCafé.

While starting VisualCafé you may see a message stating "Failed to create internal VM". If you see this message, there are zip and jar files that were not correctly copied to your system during the installation process. Reinstall VisualCafé to resolve this issue.

Using Restart with pluggable VMS
When using pluggable VMS, Restart <ctrl-shift-F5> will not stop at first line of the application like it does with the default VM.

Using VisualCafé on 256 colors displays
If you are using a color scheme other than the default Windows scheme on a 256 color display, the Form Designer and some dialogs may display colors differently than if viewed on a 15-bit color (32768 colors) or higher display.

Version Control Limitations
If you are testing PVCS version 6.6 with VisualCafé you may get a warning that "This Version Control is not supported". This is a bug with version 6.6 of PVCS and Merant is working on fixing it. PVCS 6.5 will not work with VisualCafé due to lack of support for SCC interface.

VisualCafé and spawned processes
When shutting down VisualCafé, you should make sure that you have also closed down any local processes which were started by the VisualCafé environment. For example, if you start the Weblogic Server locally from VisualCafé (by debugging an EJB project or by selecting the "Start EJB Server" menu item), then you should also stop the Weblogic Server before exiting VisualCafé. Failure to follow these steps causes various undesired results while running VisualCafé in the future, until the spawned process is stopped.
This anomaly occurs because processes executed with the Java VM retain handles to network ports and other resources. This renders the resources unusable by other processes.
One example of this problem can be verified by the existence of multiple ddservices.exe processes running on your local machine. Kill all ddservices.exe and all debugvm.exe processes before restarting VisualCafé.

WebLogic limitations
WebLogic Server 4.5.2 and 5.1 cannot run in a Sun 1.1.x debug VM. This has been fixed in 117B_003 and 117B_005 for SunÆs NT JDK.

WebLogic Server 4.5.2 does not support JDBC 2.0. Code generated by VisualCafé for bean managed persistence will not work with WebLogic Server 4.5.2.

WebLogic Server 4.5.2 does not support these transaction types: SUPPORT, NEVER. If you choose the transaction type SUPPORT it will be mapped internally to the REQUIRED transaction type.

In order to create a enterprise bean with a space in the path name you need WebLogic Server 5.1 service pack 2.

Z-order of heavyweight components
Z-order of heavyweight java.awt components is undefined in JDK 1.1.7. As of this writing, the current JDK 1.1 versions of Internet Explorer and Netscape both use the same z-order. However, this may not be true in future versions of either Web browser or of other Java execution environments.

Back

Top


II. Database Issues


This section describes known database related issues and their suggested solutions for the VisualCafé Enterprise Edition.

General issues
JDBC-ODBC Bridge
Browser execution

Data Source components

Swing DataBound components

AWT DataBound components
AWT Grid
AWT Imageviewer
Javax Imports
Master Detail
MS Access Database
Numeric Precision
QBE
Online Help


General issues

  1. If you are encountering any stability issues with Intersolv's ODBC 3.0 driver pack, please download driver pack 3.11.
  2. The Size property for a column of the longvarbinary data type is shown as a negative number.
  3. If you try to paste something at the end of a JMaskedTextField or JDateMaskedField you will get a StringIndexOutOfBoundsException and the text field won't be usable anymore.


JDBC-ODBC Bridge

You can switch between two Virtual Machines (VMS) provided by VisualCafé by setting the option in Tools | Environment Options |Virtual Machines | Use VM. The available options are currently "Java - JDK 1.1.7a" and "Java2 - JDK 1.2.2". When creating databound projects using the JDBC-ODBC bridge, you are using the bridge that is shipped with one of two VMS

The following information describes the limitations of each of the VMS with the JDBC-ODBC bridge.

1. The JDBC-ODBC bridge provided in JDK 1.1.x does not support double byte character sets (DBCS), including Chinese, Korean, and Japanese (Japanese single byte Katakana character set). Therefore, the project that uses the JDK 1.1 version of the JDBC-ODBC bridge can not handle SQL commands which include DBCS. For example, the DBCS cannot be included in table names, column names, or the actual data itself.

2. The Sun JDBC-ODBC bridge in JDK 1.2.2 does not support SQL commands whose data source contains a DBCS table or a column name, or data whose second byte can be "00h" when it is converted to Unicode (UTF-8). In this version of VisualCafé we have chosen to alter the JDK 1.2.2 JDBC-ODBC bridge to fix this problem, thereby enabling DBCS handling. This fix impacts one class file in rt.jar: sun/jdbc/odbc/JdbcOdbcObject.class.

Please note that this fix will ONLY work when executing or debugging a project with the VisualCafé environment. It is expected that Sun will provide a fix for this issue in later releases of JDK 1.2.

Note: Internally VisualCafé uses JDK 1.1.7a. The dbNAVIGATOR and Databound wizards have the same JDK 1.1 DBCS limitations described above, when using the JDBC-ODBC bridge.


Browser Execution

In addition to the steps mentioned in the Browser Related Issues of the Deployment and Jar Tools section, you need to do the following steps if you are working on a database project.

Local

  1. When you launch Internet Explorer within the VisualCafé environment, make sure that you have the class path of your machine set to:

    ..../databind.jar
    ..../dbaw_awt.jar
    ..../symbeans.jar
    ..../dbaw.zip
    ..../Java/lib/classes.zip

    Otherwise you may get errors like: java.io.FileException: Can't find WebGain.itools.db.beans.jdbc.QueryNavigator .....

Back

Top


Data Source components

The following section describes known issues and solutions for some Data Source components.

QueryNavigator

Informix supports float data types with a maximum scale value of 6. Attempting to use a scale value that is greater than 6 results in rounded data values. Rounded data values cause update statements to fail their integrity constraints. Use scale values of 6 or less to enable updates.

Calculation Adapter

The following issues apply to the Calculation Adapter.

  1. Before invoking the custom property editor for a Calculation Adapter, the QueryNavigator must have all its property values set. You set these values in the Property List. If the custom property editors for the Calculation Adapter are opened before all properties in the QueryNavigator component are set, a Null Pointer Exception displays.
  2. You can only import class files for custom calculations. You can't import .jar files.
  3. If you cancel the dialog box where you need to specify a custom calculation file, a message appears saying "A Class file has to be selected." Click OK to dismiss this and return to the Choose Calculation Wizard page and select a class.
  4. The output of a calculation rule doesn't display the first row of data when the project runs with a ComboBox that is displaying the output, and you've applied the calculation to each row. You can force the display by using the Output and Scope page of the Calculation Customizer. However, if you navigate through the data records or press retrieve, the first row of data displays. As a workaround, press retrieve after the project is running.

Stored Procedure Adapter

Due to a bug in the JDBC-ODBC Bridge, you can't use IN/OUT parameters for a stored procedure with that driver. Instead, you need to create two parameters: IN and OUT.

Back

Top


Swing DataBound components

JDateMaskedField
When the Format Numbers property in an associated BindingModel component is set to False, JDateMaskedField may not work correctly. Always set the Format Numbers property to True. Format Numbers is one of the Localization properties in the Binding Model component.

JDBToolBar

  1. In the Button Palette Model, if you set the Border Property to set button borders, then borders for all the buttons display. However, if you remove the border or set it to different border, it is not reflected at design time, but will appear at runtime. As a workaround, close the form designer and reopen it. Closing and reopening causes the changes to be updated and the form to display them.
  2. If you have an application/applet with two JFrames and both JFrames have a join on one of the fields and the data on the first JFrame is changed, the focus shifts to the second JFrame.This error may be caused by JDBToolBar. We hope to remove this problem in future releases.

StatusBar

  1. When placed near a combo box component, the DBStatusBar draws itself such that the combo box may be hidden behind the status bar.
  2. When the goto function of a JRecordNumberLabel component in a DBStatusBar component is set to true and an AWT Databound TextField component is used, the lower part of the integer value which is entered into the running project is not visible. The suggested solution is to increase the of height of JDBStatusBar from 22 to 25 in the Property List.

Back

Top


AWT DataBound components
  1. Do not use the Searchable property of a ComboBox. Doing so results in the failure of SQL INSERT statements.
  2. When you save using a Grid, the focus doesn't return to the first row of the Grid although the log might indicate that it has moved to row 1.

Back

Top


AWT ImageViewer

This release of VisualCafé does not support db.awt.Imageviewer in applets because of security exceptions.

Back

Top


Javax Imports
If you notice javax imports remaining after converting database projects from Swing 1.1 to 1.0.3, remove the imports before compiling.

 

Back

Top


Master Detail
  1. The Select statement executed in the detail table is incorrect when the master and detail columns are joined using LIKE specifications.
  2. When master and detail views are from two separate applets, using the Tab key after making any changes to a detail field sets the focus to the master applet.
  3. In a master-detail view, if you cancel an operation that resulted in errors, then Save and Undo aren't enabled.
  4. VisualCafé generates the wrong join operator when using the != operator with Microsoft Access files. Change the join condition to <> instead of !=.
  5. When using a JFrame component that has master and detail views from two separate applets, using the Tab key after making changes to a detail field sets the focus to the master applet. To avoid this use JDialog instead of JFrame (as per the Swing specification).
  6. If you modify both a master and a detail, and the transaction is rolled back because of an error in the detail, the master record state indicates "existing" instead of "modified", but the detail record state indicates "modified". Neither the master or the detail were saved to the database. To make the changes and correctly save the data to the database, choose Retrieve, make the modifications, and save the data.
  7. VisualCafé 3.0 projects containing AWT databound components migrated to 4.0 will not contain the setTriggerEvent method. This method must be added to the source code manually.

Back

Top


MS Access Database
Database columns in MS Access which contain spaces in their names are not generated correctly by the binding wizards. In order to support data connectivity to these columns you must edit the column names in your RecordDefinition file. For each column with a space you must prepend the '[' character and append the ']' character. For example, if your column is named "My Column", then your RecordDefinition entry should be changed from addColumn("My Column"); to addColumn("[My Column]");
Currently we do not support MSAccess while generating container managed persistence bean. For Bean Managed Persistence you need to modify the codegenerated by VisualCafé. Add the database name within [ ] . Also enclose the tablename with [ ].

Back

Top


Numeric Precision
1. Due to Java's parsing limitations for decimal formats VisualCafé currently limits data input to 8 digits to the right of the decimal point.
2. A restriction in Java's string to Float and string to Double conversions prevents these data types from supporting more than 8 digits to the left of the decimal without the use of exponential notation. 

Back

Top


QBE
  1. The QBE engine does not work with the Timestamp data type.
  2. The following components support only the '=' operator while in QBE mode:

Back

Top


Online Help
The dbNAVIGATOR dialog box and the Stored Procedure Test dialog box don't respond with their corresponding Help pages when you press F1 from the Customizer or property editor. Pressing F1 in either invokes the Help pages for the parent customizer or property editor. Click the Help button instead of pressing F1 in these dialog boxes to view the correct Help information.

Back

Top