JavaFX 1.2 SDK Release Notes

   
May 2009  
The JavaFX 1.2 Software Development Kit (SDK) contains libraries and supporting documentation for JavaFX application development. This document provides release information and known issues regarding the SDK.
 
Contents
 
What's New in 1.2
System Requirements
Comparison Between JDK 5 and JDK 6 on Windows
Comparison Between JDK 5 and JDK 6 on Mac
JavaFX Differences on OpenSolaris and Linux
Comparison Between Desktop and Mobile
Known Bugs, Issues, and Limitations
More Information
 
What's New in 1.2

The JavaFX 1.2 SDK is a significant update to the JavaFX 1.1 SDK and includes the changes listed in the JavaFX 1.2: Features and Enhancements document.

Your deployed JavaFX 1.1 applications will continue to run if they use the 1.1 runtime supplied by supplied by dl.javafx.com. However, you can take advantage of JavaFX 1.2 features such as performance improvements by rebuilding your JavaFX 1.1 applications with the JavaFX 1.2 SDK. When you do, check the JavaFX 1.2: Features and Enhancements document to see if any code adjustments are required.

System Requirements

The system requirements for the JavaFX 1.2 SDK are available in the JavaFX System Requirements document.

Comparison Between JDK 5 and JDK 6 on Windows

The following table offers a comparison between JDK 5 and JDK 6 on Windows.

Feature
Differences
Animation and Graphics
On JDK 5, the javafx.stage.Alert class throws an exception and fails to return the correct value.

Some performance issues in JDK 5 have been resolved in JDK 6.
Compiler
The reference library for the JavaFX Script API is integrated in JDK 6.
Media
None.
Web Services
None.
Application and Deployment
The differences are as follows:
  • Window transparency works only with JDK 6 update 10 at minimum.
  • JavaScript to JavaFX Script communication works only with JDK 6 update 10 at minimum.
  • The dragging of an applet outside the browser works only with JDK 6 update 10 at minimum.
  • An applet using at minimum JDK 6 update 10 is launched using JNLP.
  • Runtime arguments (for example, -Xint) can be passed from an HTML or JNLP file if an applet is launched using JRE 6 update 10 at minimum.
Fonts
No support is provided for kerning, ligatures, or tracking (letter spacing) in JDK 5.
Local Storage
None.
SDK
None.
 
Comparison Between JDK 5 and JDK 6 on Mac

The following table offers a comparison between JDK 5 and JDK 6 on Mac OS.

Feature
Differences
Animation and Graphics
On JDK 5, the javafx.stage.Alert class throws an exception and fails to return the correct value.

JDK 5 uses Apple Quartz renderer, which provides better support for alpha blending and antialiased primitives. JDK 6 uses the Sun 2-D renderer. The Sun 2-D renderer provides better performance for simple primitives and alias primitives.
Compiler
None.
Media
Lower fps rates on 24 fps video samples have been experienced on JDK 5. JDK 6 tests resulted in 21 - 23 fps. JDK 5 tests resulted in 18 - 21 fps on the same hardware configuration.
Web Services
None.
Application and Deployment
Some of the application and deployment features are only available with the new JDK 6 Update 10, which is not available on Mac OS X. For a list of features available with JDK 6 Update 10, please refer to the Application and Deployment section of Comparison Between JDK 5 and JDK 6 on Windows for more details.
Fonts
No support is provided for kerning, ligatures, or tracking (letter spacing) in JDK 5.
Local Storage
None.
SDK
None.
 
JavaFX Differences on OpenSolaris and Linux

A beta release of the JavaFX 1.2 SDK is provided for the Ubuntu Linux and the OpenSolaris operating systems.

On the Ubuntu Linux and OpenSolaris operating systems, the JavaFX 1.2 SDK requires GStreamer—an open source media development framework—to be installed on the target system. For more information about this library, check its documentation. To determine the media that GStreamer supports on your system, use the gst-inspect command.

The following versions of GStreamer are supported:

  • 0.10.18
  • 0.10.19
  • 0.10.20
  • 0.10.21

The following table offers a list of differences between these two platforms.

Ubuntu 8.04
OpenSolaris 2009.06
The default GStreamer version is 0.10.18.
The default GStreamer version is 0.10.21.
By default there is only GNU JRE 1.5.0 (gcj) and the Eclipse Java Compiler 3.3.1 (the latter in /etc/alternatives).
By default there is only JRE 6u13 and no JDK.
All media supported by GStreamer and On2 FLV (VP6 + MP3).
All media supported by GStreamer and On2 FLV (VP6 + MP3).
Stage transparency is disabled, due to an underlying bug in the JDK.
Stage transparency is disabled, due to an underlying bug in the JDK.
JavaFX browser applets require the new Java Plug-in found in JDK 6 Update 10 or later. The new Java Plug-in must be configured manually.
JavaFX browser applets require the new Java Plug-in found in JDK 6 Update 10 or later. The new Java Plug-in must be configured manually.
 
Comparison Between Desktop and Mobile

Some functions from the common profile are not applicable for mobile devices:

  • The cursor constants listed in the javafx.scene.Cursor class do exist in the common profile. Setting cursor has no effect on mobile devices.
  • Some mouse events are different on mobile devices. For example, MouseEntered is not relevant for mobile. Therefore, the corresponding functions of the Node objects do not work in mobile applications. onMouseExited and onMouseWheelMoved are generated when a drag occurs, but general mouse movements (such as a hover) are not recorded.

Following are the desktop-specific classes and packages that are not implemented in the common profile and consequently do not work in mobile applications:

  • javafx.ext.Swing - All standard desktop UI components, such as buttons, icons, and labels
  • javafx.reflect - A package that provides reflective access to JavaFX values and types
  • javafx.scene.effect and javafx.scene.effect.light - Two packages to create visual effects, such as shadows, blurs, reflection, and lighting
  • ShapeIntersect and ShapeSubtract - Two classes in the javafx.scene.shape package to create compositions of geometric shapes
  • AppletStageExtension - A class from the javafx.stage that provides browser-specific functionality and, therefore, is not supported for mobile applications
  • FXEvaluator and StringLocalizer - Two classes from the javafx.util package
Known Bugs, Issues, and Limitations

Application and Deployment | Graphics | Media | Mobile | Runtime | Samples | Storage | UI Controls

Application and Deployment

  • Issue RT-1950: JavaFX applets fail to recognize keyboard input if more than one tab is opened in Firefox 3.0 on Windows Vista and Internet Explorer 7 on Windows XP Service Pack 3.

    Description: A JavaFX applet might become unresponsive to keyboard input events if the browser has multiple tabs opened and is loading different pages.

    Workaround: Refresh the applet page, drag the applet out of the browser, or use only a single tab when accessing the applet.
  • Issue RT-3099: Applet hangs upon reload.

    Description: After you install Java for the first time on a system through the JavaFX applet load in a browser, the page is reloaded. The loading graphic might appear indefinitely.

    Workaround: Manually reload the page to force the applet to load properly.
  • Issue: RT-3780 and RT-3842: Cannot launch JNLP application.

    Workaround: Include the following code inside the JNLP file to run your Java Web Start application:
      <application-desc main-class="com.sun.javafx.runtime.main.Main">
    
      <argument>MainJavaFXScript=<
                     your-script-name></argument>
                  

    This code replaces the following:

      <application-desc main-class="<
                     your-script-name>"/>
                  
    The javafxpackager command has been modified to include the correct code and to add com.sun.javafx.runtime.main.Main to the generated JAR file. com.sun.javafx.runtime.main.Main is generated by the javafxpackager command only and not by the javafxc compiler command.
  • Issue: RT-4045: On Mac OS X, an extra JavaFX Runtime security dialog box appears.

    Description: An extra security dialog box appears when running a Java Web Start application or applet for the first time using JavaFX 1.2.

    Workaround: None.
  • Issue RT-4115: Support for unsigned applets and applications is limited.

    Description: Support for full screen exclusive mode for unsigned applets and applications is limited to Java versions 6u10 at minimum. For earlier releases, unsigned applications use emulated full screen mode.

    Workaround: None.

    Issue: Unsigned applications with unsecure properties fail to launch using JDK 6 Update 14.

    Workaround: Never pass unsecure arguments or properties to an unsigned JNLP application.
  • Issue: RT-4567: In some cases, closing an applet that has been dragged from the browser does not bring the applet back to the browser.

    Description: An applet that has been dragged outside the browser is not able to come back to the browser once it is closed.

    Workaround: None.

    Issue: Problems arise when dragging an applet out of the browser.

    Description: Problems arise when dragging an applet that uses AppletStageExtension out of the browser.

    Workaround: Wait for the applet drag operation to finish before pressing the Reload button or switching to another page. Or, close the browser once the applet is dragged. Otherwise, the applet is terminated.
  • Issue: RT-4575: Stage.close does not behave properly when called inside an applet.

    Description: If an applet is displayed in a browser, and the applet is used to exit the script, then calling stage.close inside the applet might cause painting issues.

    Workaround: Call FX.exit instead.
  • Issue: RT-4638: Multiple applets inside the same page might fail to load.

    Description: Multiple signed applets inside the same page might throw a java.lang.NullPointerException. This issue mostly occurs with Firefox 3.0.

    Workaround: None.
  • Issue: Mozilla FireFox 3.5.x on Mac OS X 10.5.x frequently hangs when JavaFX applets are running with the Embedding JRE plugin.

    Description: To view the formal Mozilla issue, go to https://bugzilla.mozilla.org/show_bug.cgi?id=506794

    Workaround: The safest course of action is to use either Safari or versions of Firefox prior to 3.5 to run JavaFX browser applets while the new Apple plugin for Firefox 3.5.x on Mac OS X 10.5.x, JavaPlugin2.plugin, is assessed for possible issues.

Graphics

  • Issue: RT-3904: Stage.opacity does not work on Mac 10.4.

    Description: On Mac 10.4, changing the opacity value of the Stage does not make the stage transparent.

    Workaround: None.
  • Issue RT-4596: TRANSPARENT or UNDECORATED Stage launched as part of an unsigned applet appears as decorated.

    Description: On Mac OS X, a secondary Stage that is launched as part of an unsigned applet from the browser always appears as decorated, even when the StageStyle is set to TRANSPARENT or UNDECORATED. If the applet is signed, then it is rendered with the correct stage style.

    Workaround: Sign the application.
  • Issue RT-4095: JavaFX 1.2 technology enforces restrictions on the way nodes can be connected to the scene graph.

    Description: It is illegal to use a node in more than one place in any of the following situations: in the content sequence of a Group, as the clip of another node, or as the return value of the CustomNode.create() function. Attempts to add a node to a Group without first removing it from a previous Group will result in a warning message, though for this release the node will automatically be removed from the previous Group.

    Workaround: To avoid this warning message, remove the node from the old Group before adding it to the new one. If you are using nodes loaded from an FXZ file, you can use the javafx.fxd.Duplicator class to copy the nodes instead of moving them. Or, you can rearrange the structure of the artwork and regenerate the FXZ file. Avoid doing scene graph manipulations after loading the FXZ file.
  • Issue RT-4609: The javafx.stage.Alert class does not work on JDK 5.

    Description: The javafx.stage.Alert class throws an exception and fails to return the correct value.

    Workaround: None.
  • Issue RT-4724: Hiding a fullscreen Stage turns the screen black.

    Description: Setting the visible variable to false on a fullscreen Stage turns the whole screen black, making it difficult to restore the desktop.

    Workaround: Set the Stage fullScreen variable to false before setting the visible variable to false.
  • Issue RT-4763: A NullPointerException occurs when a filter effect needs an image that is too large.

    Description: A filter effect that requires too much memory can cause a NullPointerException. Most filter effects are image operations that create an image in which to perform the filtering operation. If not enough memory is available, then a NullPointerException is thrown, making the application unusable.

    Workaround: Set filter effect operations on individual shape nodes rather than on a Group containing many nodes.
  • Issue RT-4789: Morphing a Shape node into a Text node causes a ClassCastException.

    Description: Using DelegateShape to morph a Geometric Shape node, such as a Rectangle, into a Text node throws a ClassCastException.

    Workaround: Do not use DelegateShape with Text nodes.
  • Issue RT-4793: ArcType is not updated at runtime.

    Description: The JavaFX runtime fails to automatically repaint the scene when the ArcType changes dynamically.

    Workaround: Explicitly calling repaint, or changing some other attribute of the scene, might be necessary to cause a repaint.
  • Issue RT-4797: StageStyle.TRANSPARENT is not supported on the OpenSolaris and Linux platforms.

    Description: On the OpenSolaris and Linux platforms, a stage style of TRANSPARENT is treated as UNDECORATED.

    Workaround: None.

Media

  • Issue: Native streaming is supported on Windows and Mac OS X only.

    Description: Native streaming is supported on Windows and Mac OS X platforms only, using WMS and QTSS supported formats.
  • Issue RT-4692: A crash occurs in the GStreamer library when running MediaBox on Linux.

    Description: The Java Virtual Machine may crash in certain circumstances when playing FXM format video content on Linux. This failure has been observed specifically on Ubuntu 8.04 but might occur on other versions of Ubuntu or other Linux variants. The failure is thought to be caused by a problem in the native implementation of the FXM demultiplexer, which splits the physical audiovisual bitstream into logical audio and video bitstreams, respectively.

    Workaround: None.
  • Issue RT-4518: Media Player hangs after running for many hours.

    Description: Media playback using MediaComponent might hang after playing video for many hours. This failure has been observed on Windows after the same video had been playing for more than ten hours. The problem is thought to be due to a memory leak in the video playback pipeline, which causes the Java Virtual Machine to exhaust its heap space.

    Workaround: Instantiate a new player after a certain amount of time has elapsed, or increase the maximum amount of heap space available to the JVM.

Mobile

  • Issue MOBL-357: Special handling required for FXZ files packaged for mobile deployment.

    Description: The mobile runtime cannot open FXZ graphics files inside the application JAR file or using the HTTP protocol.

    Workaround: For mobile deployment, bundle FXZ files with the application by using the JavaFX Packager application or by using Netbeans IDE to generate the deployment files.
  • Issue MOBL-731: The emulator crashes when trying to play music.

    Description: Additional software setup is necessary to play media using the emulator.

    Workaround: Install the K-Lite Codec Pack on the workstation on which you are running the emulator.
  • Issue MOBL-755: Bounds are not updated.

    Description: If the bounds of a shape are used in a binding, the bounds are not updated when the shape changes.

    Workaround: None.

Runtime

  • Issue RT-4576: Setting the variable Identity.source to null deadlocks a JavaFX application without an error.

    Description: When the Identity.source variable is set to null instead of pointing to an appropriate graphics file, the application is deadlocked with no error message.

    Workaround: Always point to an appropriate graphics file when using Identity.source, such as the following code:
    source: Image { url: "{__DIR__}Image.png" }
    

Samples

  • Issue APP-1408: All samples in the JavaFX SDK point to a Sun internal server.

    Description: All samples in the JavaFX SDK point to a Sun internal server and so will fail to run. This issue affects only the case in which samples are run by clicking the Web Start link in the sample descriptions included with the stand-alone JavaFX SDK.

    Workaround: Use the samples on javafx.com.

Storage

  • Issue MOBL-588: Storage used by an application is not deleted on uninstall.

    Description: Normally, the storage used by an application is deleted when an application is removed from the platform. However, this functionality does not exist in the JavaFX 1.2 technology release.

    Workaround: None. This issue is a platform issue and should not cause a problem for application developers.
  • Issue MOBL-721: Data created during a previous run of an application is not loaded during subsequent runs.

    Description: Each run of the mobile emulator will most likely generate a new storage area for use by the application. This problem exists because the emulator uses a random port number when accessing the application, and this number is encoded into the application's storage area identifier.

    Workaround: Compile your application using Netbeans IDE, and then select the "Install permanently" checkbox. You can then launch the application several times by using the emulator.exe -Xjam command, retaining the data for each subsequent run.
  • Issue RT-4726: Files from different applications, but the same domain, are not counted correctly.

    Description: The file size of different applications from the same domain are not counted when storage usage is evaluated against the domain limit. For example, the file size of an application is not added when used storage is evaluated in the following cases:

    • An application needs to write into storage, and then the used storage is evaluated against domain limit.
    • Another application owns one or more files that are not accessible (not shared) by the first application, but have the same domain.
    As a result, the domain limit might be exceeded.

    Workaround: None.
  • Issue RT-4778: availableBytes in Storage.fx is not updated correctly.

    Description: The availableBytes variable in Storage.fx is not updated correctly when openOutputStream(overwrite=true). The old file length is not subtracted.

    Workaround: None.

UI Controls

  • RT-3815: Some controls do not show Focus Border in an applet.

    Description: Some controls, such as the Slider and the Scrollbar, do not display the focus border when they gain focus in a standalone applet.

    Workaround: None.
  • RT-3955: Focus Traversal does not work on some controls.

    Description: Focus Traversal does not work as expected for some controls, including CheckBox, List, Button, and so on.

    Workaround: Capture the keystroke explicitly and transfer the focus to the next or previous control.
  • RT-4282: Clipboard operations do not work for TextBox.

    Description: Clipboard operations, such as cut, copy, and paste, do not work in the TextBox control.

    Workaround: None.
  • RT-4443: Slider does not show Tick Marks and Labels.

    Workaround: None.
  • Issue RT-4590: Buttons are not disabled when the disable attribute is bound.

    Description: Binding an expression to the disable attribute does not disable the button.

    Workaround: Instead of binding an expression to the disable attribute, explicitly set disable to true or false.
  • Issues RT-4587, RT-4494, RT-4496, RT-4498, RT-4501, RT-4586, and RT-4589: ListView has problems with scrolling, key binding, and bounds.

    Description: Problems with scrolling and selection of items might occur while operating the ListView control using the keyboard. Several ListView APIs for selecting items also do not work properly. Occasional painting artifacts might occur when the ListView control loses the focus.

    Workaround: None.
  • RT-4802: Applet might not respond to user input.

    Description: Under some conditions, an applet window loses keyboard focus and is unable to regain focus. When this occurs, the applet is unable to respond to user input. This bug is often triggered in a tabbed browser, after the user has selected another tab in the same browser window and then returns to the original tab. This issue occurs on Firefox 3.0 and Internet Explorer 7 on Windows, on Firefox 3.0 on Linux, and on Firefox 3.0 on OpenSolaris.

    Workaround: Refresh the applet page, drag the applet out of the browser, or use only a single tab when accessing the applet.
  • Issue MOBL-647: Problems arise when laying out controls on the mobile emulator.

    Description: On the mobile emulator, laying out controls vertically using translateX/Y and bounds does not work for some controls.

    Workaround: Use VBox for laying out the components vertically.
  • Issue MOBL-770: Bar chart animation hangs on mobile devices.

    Description: An animated BarChart created with the Charts API throws an OutOfMemoryException and hangs.

    Workaround: Use the Chart API for static pictures only.
More Information
 
Rate This Article
 
 
Comments
 
false ,,,,,,,,,,,,,,,