Release Notes

Sun Java™ Wireless Client Software 2.0

May 2007

 

Table of Contents

Introduction
Bundles
Platform Requirements
Implementation Notes
Known Bugs

Introduction

Sun Java™ Wireless Client Software is an optimized Java Platform, Micro Edition (Java ME) stack. This implementation supports multitasking and is built upon MIDP 2.1.

When Sun Java Wireless Client Software runs multiple MIDlets, it uses a single OS process. Therefore, a single instance of Java virtual machine can execute several applications simultaneously, providing each of them with a separate runtime environment. All running applications are isolated so that from the application's point of view, it looks as if each application is executed in its own virtual machine.

Sun Java Wireless Client Software is for developers who port MIDP and associated technologies to mobile devices. It is also useful to application developers who want to work with the very latest Java ME technologies, even before these technologies are ported to real devices.

The following features are part of Sun Java Wireless Client Software, version 2.0:

Bundles

Sun Java Wireless Client Software is distributed in the following bundle, where nn is the build number and date is the build date:

jwc-2_0-rr-src-bnn-sun-date.zip

Unzip this bundle to the location of your choice.

If you also have the non-Sun JSR bundle, it is distributed as this file:

jwc-2_0-rr-src-bnn-non_sun-date.zip

To install it, unzip the bundle to the same location where you unzipped the first bundle.

If you also have the cryptography bundle, it is distributed as this file:

jwc-2_0-rr-src-bnn-crypto-date.zip

To install it, unzip the bundle to the same location where you unzipped the first bundle.

Platform Requirements

Following are the supported target platforms for running an implementation of Sun Java Wireless Client Software:

The supported platforms for building an implementation of the Sun Java Wireless Client Software are Linux/x86 and Windows/x86.

Building on Linux

A Linux build system needs the following tools and software:

Description Definitely Works Might Work Does Not Work

Operating System Ubuntu 6.06 Other versions of Linux
Compiler GCC 3.4.6 Other versions of GCC
JDK™ version 1.4.2 Any 1.4.x version JDK 1.5 and 1.6
API Documentation Doxygen 1.4.4 Other versions of Doxygen

Doxygen is only required if you wish to generate the API documentation from the source code.

To cross-compile for the supported P2 OMAP730 board (see below), you need these additional tools:

Description Definitely Works Might Work Does Not Work

Cross Compiler GCC cross compiler 3.3.1 Other cross compiler versions
Device Operating System MontaVista Linux Consumer Electronics Edition 3.1 (2.4.20 kernel) Other device operating systems
Device GUI Qt/Embedded 2.3.10. Other Qt/Embedded 2.3.x versions

Qt/Embedded is required only for qt builds.

Building on Windows

A Windows/x86 build system needs the following tools and software:

Description Definitely Works Might Work Does Not Work

Operating System Windows XP Windows 2000, Windows 2003
Compiler Microsoft Visual C++ 6.0 Professional Microsoft Visual Studio 2005
Unix-like environment Cyg4Me Full CygWin (with appropriate file system mounts)
JDK™ version 1.4.2 Any 1.4.x version JDK 1.5 and 1.6
API Documentation Doxygen 1.4.4 Other versions of Doxygen

Doxygen is only required if you wish to generate the API documentation from the source code.

Implementation Notes

Skin Property Loading

In this release, Chameleon skin properties can be loaded dynamically, although this option is off by default. When this option is on, you can adjust skin properties during development without rebuilding the entire Sun Java Wireless Client Software.

Whitespace Handling for Descriptor Properties

When installing a trusted midlet suite, Sun Java Wireless Client Software expects an exact match between the values of the properties from the application descriptor file and the values of the same properties in the MIDlet suite Java Archive (JAR) file manifest. The strings representing the values are compared, including the leading and trailing spaces. For example, the following properties are considered to be different (the first line has an extra space after the first HelloMIDlet):

MIDlet-1: HelloMIDlet , , HelloMIDlet
MIDlet-1: HelloMIDlet, , HelloMIDlet

Keystrokes and the qvfb Window

When you view the executable output in a qvfb window, keystroke events might not be delivered to the Sun Java Wireless Client Software until you click inside the window.

Limited Path Lengths When Using the JavaCall™ API

The implementation chooses record store file names based on the location of the binary executables. The maximum path length for these files is 128. If the path to the binary executable files is too long, you will encounter errors with record stores. This can also happen if you are using MIDP_HOME to point to the binary executable files. If you encounter this problem, move your binaries to a location with a shorter path.

For any file name used in the JavaCall API Windows/x86 implementation (for example, a file name used in the JSR 75 FileConnection API), the maximum length is 256.

Use of MIDP_HOME Environment Variable

The implementation chooses the MIDP home directory (where the appdb and lib directories live) based on several rules. If MIDP_HOME is set, its value is used unmodified. Otherwise, the software searches for the appdb directory in the following places:

MSA TCK FileConnection Tests

To enable the implementation to pass the MSA TCK FileConnection tests on Win32, you must create the following directories:

C:\fc\photos\
C:\fc\videos\
C:\fc\graphics\
C:\fc\tones\
C:\fc\music\
C:\fc\recordings\
C:\fc\private\

These directories are standard locations for various types of media files, and the last one serves as a root directory for MIDlets' private data. See sections 6.3.3.11 and 6.3.3.14 of the MSA specification for details on the purpose of these directories.

JSR 135 and MIDP Audio Supported Only on Win32/i386

Due to the unavailability of needed drivers on the P2SAMPLE64-V6 reference platform, JSR 135, the MIDP Audio Building Block (ABB) APIs, and the sound functionality they provide, are supported only on the Win32/i386 platform. On the P2 board, the Sun Java Wireless Client software is compliant with the MIDP 2.1 Specification. On Linux/ARM MIDP ABB functionality is supported through passing waveform data to a remote machine via network. This data may be passed to a sound driver on that remote machine, thus making ABB functionality work as specified.

Corrections to Multitasking Quality Test Suite Guide

In Chapter 3, in the section "Tests That Require Fixed or Open Policy Settings," in the bullet "Starting and Stopping MIDlets," com.sun.mt.push should be com.sun.mt.start_stop in the six listed names.

Likewise, in the following bullet "Foreground and Background," com.sun.mt.push should be com.sun.mt.fg_bg_switch in the three listed names.

Known Bugs

The following high-severity bugs are known at the time of this release.

BUG ID DESCRIPTION

6370822 The Windows build fails when pathnames are too long, because of parameter length restrictions in Cygwin.
6400182 CustomItem is drawn incorrectly in some cases.
6424101 On Linux platforms, some tests that use complex CustomItem and media might fail due to restricted media support for these platforms.
6443747 In case of MVM, a complex sequence of foreground and input modes switches may cause installation functionality to become inaccessible from the AMS GUI.
6521289 Media events posted around virtual machine suspend and resume might be lost. Media subsytem might require proper plugging into suspend and resume framework.
6523465 Some tests for multiple messages recipients fail, exceeding receive timeout.
6532810 For WMA Push records, the allowed sender filter might work incorrectly for some sophisticated sender numbers.
6535880 An object drawn by means of SVG might sometimes have incorrect extent of transparency.
6538189 On Windows, some status icons might be missing from the indicator bar.
6539790 Rarely, if a MIDlet is installed as a content handler (CHAPI), its manual launch might fail with a NullPointerException.
6539823 If there are many command objects in a Canvas, menus might be overlapped by the Canvas.
6543514 On Windows, one MMAPI test for StopTimeControl fails.
6544936 On the Linux x86 platform, some tests for datagram data transfer might fail when launched in a batch mode. They pass when launched separately.
6545755 Two tests for server socket connection fail.
6545758 Two tests for socket connection methods do not pass.
6545855 A StringItem content with hyperlink might be shown improperly.
6548519 In some unusual cases on Linux x86, the scrollbar is not controlled properly from the keyboard.
6548739 Compiling the system with gcc 4.1.2 results in many compiler warnings. You might be able to build the system successfully by removing -Werror from CFLAGS.
6549015 A scrollbar on an alert may be damaged if a MIDlet with long alert shown is moved to the background and than back to the foreground.
6557049 In Qt builds, TextField does not work correctly with the PHONENUMBER constraint.