Accessibility
Adobe
Sign in Privacy My Adobe

Flex Release Notes

Flex Data Services 2 Release Notes (2.0.1 Update)

Welcome to Adobe® Flex™ Data Services 2, the next generation of the presentation server in Flex. Flex Data Services 2 contains the current functionality of Flex 1.5 and adds many new features, such as the new Data Management Services and enterprise messaging support.

This page includes the following sections:

Related topics:

What's new

The following list describes some of the major new features and changes for Flex Data Services 2. For more information on new features, samples, and examples, see the Flex Developer Center:

  • Data synchronization - Remove the complexity and error potential from the rich-client data synchronization process by using a robust, high-performance data synchronization engine between client and server.
  • Publish/subscribe messaging - Publish and subscribe to message topics in real time with the same reliability, scalability, and overall quality of service as traditional thick client applications, enabling the creation of critical, more complex applications such as logistics handling, inventory control, stock trading, and more.
  • Data paging - Easily manage and use large record sets using a built-in, efficient paging engine.
  • Data push - Push data to thousands of concurrent users without polling, providing up-to-the-second views of critical data such as stock trader applications, live resource monitoring, shop floor automation, and more.
  • In-context collaboration - Create applications that concurrently share in-context information with other users, enabling new application concepts such as "co-browsing," which allows users to share experiences and collaborate in real time with other users.

2.0.1 update

The Flex Data Services 2.0.1 update include support for using Adobe Flex Automation with Mercury QuickTest Professional 9.1 (QTP) and your Flex 2.0.1 applications.

Note: You must install the following to use Flex Automation:

  • Mercury QuickTest Professional 9.1
  • Flex Builder 2.0.1 and Flex Data Services 2.0.1
  • Microsoft Internet Explorer, version 6 or later
  • Flash Player ActiveX control, version 9.0.28.0 or later

Compatibility issues

Flex Data Services 2 is a major upgrade from Flex 1.5 and you must migrate Flex 1.5 applications before compiling them under Flex 2. For more information, see Migrating Applications to Flex 2.

Known issues

160813 - Paging of nested collection only works when using lazy loading. When not using lazy loading, the entire nested collections are sent to the client.

168162 - Updates to a data collection object's identity column(s) is not supported but it is allowed. The result is a message that the assembler will likely not be able to handle.

170877 - If you create children directly in a nested collection, calling revert on the parent does not prevent the child inserts from being submitted to the server on a commit. Instead, you must have a separate data service instance pointing to the child destination and call revert on that.

172819 - If you are making changes to a filled collection that has paging enabled, it is possible for a client to receive results of a page request for changed items in the collection before it has received the notification from the server of these changes when you are using polling. In this case, the collection displays a mix of the old and new results until the pushed updates are received at the next poll interval.

173464 - Some classes use the flash.utils.IExternalizable interface to allow for custom serialization or certain data types. Flex Data Services 2 has corresponding Java implementations of these types that are Flex-specific. If your destination requires ArrayCollection, ObjectProxy, or ManagedObjectProxy types to be sent to a remote endpoint that uses a technology like RMI, you must have these Java implementations in your remote endpoint source path. To do this, add flex-messaging.jar to the remote endpoint's source path.

173605 - WebService treats all dateTime values as UTC regardless of whether the value contains a UTC hour offset or the 'Z' marker. In order to work with non-UTC dateTime values, modify your web service to send and receive the datetime value as a String and parse it into a non-UTC date on the client or server, as appropriate.

174538 - Calling the DataService.release() method always clears out all managed collections in addition to releasing them. If you wish to release a managed collection without clearing it, call the DataService.releaseCollection() method.

174823 - Deleting an item without first removing it from a nested association causes problems.

175519 - If you delete an item on the client, and that item is referenced by other items managed on that client, Flex Data Management Services automatically queues changes for the referenced items to clear those references. If you subsequently revert changes for just the item you deleted, it is re-added, but the references are not automatically reverted. If you revert all changes on the dataStore that is used by the DataServices involved, it does revert all of the changes including the references that were cleared to the deletedItem.

155283 - To use log4j or commons-logging with the integrated install, perform the following steps:

  1. Add a file /WEB-INF/jrun-web.xml with the following content.
    <?xml version="1.0" encoding="ISO-8859-1"?> 
    <!DOCTYPE jrun-web-app PUBLIC "-//Macromedia, Inc.//DTD jrun-web 1.0//EN" 
    "http://www.macromedia.com/dtd/jrun-web.dtd"> 
       
    <!-- ============================================================= --> 
    <!-- This XML file contains web application elements that are --> 
    <!-- specific to the JRun Application Server --> 
    <!-- ============================================================= --> 
       
    <jrun-web-app> 
    <load-system-classes-first>false</load-system-classes-first> 
    </jrun-web-app>

    This will enable the /WEB-INF/classes/commons-logging.properties file to
    be picked first.

  2. Add log4j.jar and commons-logging.jar to your application's /WEB-INF/lib directory.
    You can get the commons-logging.jar from /WEB-INF/flex/jars directory.

    These step causes the JRE to load the log4j and commons libraries from /WEB-INF/lib
  3. Add /WEB-INF/classes/commons-logging.properties with your configuration. Choose the logging implementation you would like to use. If your application uses log4j directly and not through commons-logging, then choose a logging implement for Flex Data Services 2 (for example, Jdk14Logger.)
    org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl 
    #org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog 
    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger 
    #org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

To use log4j and/or commons-logging with the JRun Axis Web services enabled, perform the following steps:

  1. Step 1, above.
  2. Place both log4j and commons-logging.jar in jrun4/servers/lib.
  3. Step 3, above.

85034 - TextArea uses UNIX-style line endings, which means that text data containing Windows-style carriage-return line-feed (that is, \r\n) formatting for new lines contain extra line breaks. You can use String.replace() with a regular expression to convert the text to UNIX-style line endings, as the following example shows:

private static const windowsCRLF:RegExp = /\r\n/gm; 

... 

myTextString = myTextString.replace(windowsCRLF, "\n"); 

192217 - Inserting and removing an item from a managed collection without committing can cause subsequent updates to result in a server side exception (Error while completing transaction: java.lang.NullPointerException) when committed. A workaround is to call dataService.revertChanges() to revert all changes instead of deleting the new item.

192253 - Child IDs are not all updated to server-generated values when parent and multiple children are inserted in the same transaction. Workarounds include:

  • Insert the parent, commit, insert the children, and commit.
  • Insert all in the same transaction and refill the parent after the result event.

192420 - When there is no conflict handler assigned, server conflicts stay in the application when FDS commits its updates. If there is any edit against the conflicting data, a dialog displays saying " There are unresolved conflicts".

No bug number - The Flex Data Services samples must run in an expanded web application structure. You cannot run them from a compressed WAR file.

No bug number - Flash Player and debugging - If you compile your Flex application with debugging enabled, run fdb, and after two minutes it returns a "Failed to connect; session timed out" error message, ensure that you are running the content debugger version of the Flash Player.

The condition can exist if you installed the standard Flash Player, version 9.0.16.0 or higher, from the Adobe download site and later installed the Flash Player that ships with Flex Data Services 2; or you installed the Flash Player from Flex Data Services 2 and then updated the Flash Player to standard Flash Player 9.0.16.0 or higher from the Adobe download site.

To resolve this issue, see the instructions at http://www.adobe.com/go/758bf58b.

No bug number - When using the secure-amf channel with Internet Explorer and HTTPS, Flex does not receive a response. There is a known issue with Internet Explorer and HTTPS requests that receive responses with no-cache HTTP headers. You can prevent a Flex Data Services 2 endpoint from sending no-cache headers in a response by specifying the following setting in the secure-amf channel-definition <properties> section:

<add-no-cache-headers>false</add-no-cache-headers>

Flex Automated Testing known issues

This section describes known issues for the Flex Automation Testing feature.

  • You must manually add "MouseMove" to the QTP script when an object becomes visible due to MouseOver of some other object. This issue occurs when recording tests with the FlexStore sample application. To avoid this issue, perform the following steps:

    1. Open the FlexStore application and start recording a test.
    2. Click the "Add to Cart" button for the Nokia 6010 product which is made visible when you dispatch a MouseOver event.
    3. Stop recording.
    4. Edit the script in Expert view and add following before the click event in the script:
      <browser>.FlexApplication("flexstore_swf").FlexPanel("Browse").FlexCanvas("products").FlexCanvas("Nokia 6010").MouseMove
  • Bitmap checkpoints do not work for the Accordion control.
  • While using bitmap checkpoints with any component, you must ensure that components are not selected and do not have focus (there is no blue rectangle around the component).
  • Replaying a test hangs if you record the use of a ContextMenu control while recording actions with TextArea or TextInput controls.
  • Smart identification is not yet supported by the QTP 9.1 SDK.
  • Internet Explorer crashes intermittently after interacting for a long time with an application under test that loads multiple SWF files using the SWFLoader component.
  • In some cases, if you have a list-based control that has multiple items that are the same, QTP plays back and selects the wrong item. This occurs when two or more items are have the same value in the list (for example, "Oranges", "Apples", "Bananas", "Apples"). If you select the second occurrence of "Apples", QTP selects the first item during playback. In this case, you should use the automationIndex property to determine which item to select.
  • If you create a checkpoint with a null value, this can cause an error during playback if there is still a null value.
  • The MenuBar control's operations do not replay when you record interaction with the control by using only the keyboard.
  • Checkpoints added after a user action that triggers an effect or tween (such as closing or opening a ComboBox control with more items) may fail. To work around this issue, you may need to manually add pauses in the playback script until the effect or tween is completed.
  • Cut and Paste using the keyboard does not replay for text-based components such as the TextArea and TextInput controls.
  • You must run the Flex Automated Testing installer to develop automated custom components.

Fixed bugs since Flex Data Services 2

  • 145911 Deploying Flex on UNIX/Linux as compressed WAR fails with NullPointerException.
  • 168730 MessageService needs to handle poll message sent by a client that isn't subscribed  
  • 168789 DataService is not aware of a subscription loss when using AMF polling  
  • 176635 JavaAdapter does not handle updating a create DataMessage identity when using an AbstractAssembler implementation  
  • 178170 FlexHibernateSessionContext stores sessions in a non-thread safe manner
  • 178426 Multiple DataServiceTransaction.updateItem() calls have no effect  
  • 178807 error if context-root is not defined at compile time
  • 181914 Managed.getProperty should handle the anonymous object case of 'undefined' lazy-loaded property 
  • 182521 when a HibernateAssembler is used and a client inserts a new record, the record is inserted but its newly created id is never correctly populated on the client
  • 183858 Flex generates incorrect SOAP request for DotNet webservice
  • 183862 Flex generates the incorrect SOAP request when using the node has only item in the array
  • 184550 amf-polling causes conflict client have stale data; ChannelSet class now supports a currentChannel property.  If that currentChannel is a PollingChannel, you can use that to manipulate the "enablePolling", "disablePolling" and "poll" methods to get finer grained control over the polling process
  • 184631 Web Service Results - Multi Ref decoding problem
  • 185774 When requesting mxml from FDS through HTTPS, Internet Explorer prompts for mixed content security warning. The HTML wrapper configuration in the web tier has two additional arguments secure-alternate-content-include and secure-alternate-content-page which are documented in flex-webtier-config.xml
  • 187391 DataService does not properly detect membership for newly added items
  • 189126 WebService WSDL load handler should use getOperation to create operations  
  • 191045 Update AC_OETags.js to output id correctly

Getting Started

 

Application Development

 

Security

 

Downloads

 

Documentation

 

Community Resources