changeset 1931:9353d8ea7c4b 8.0-b67

Automated merge with ssh://jpgodine@jfxsrc.us.oracle.com//javafx/8.0/MASTER/jfx/rt
author jpgodine@JPGODINE-LAP.st-users.us.oracle.com
date Tue, 04 Dec 2012 09:37:33 -0800
parents 12cce04e7847 fbce04284f89
children 4fb083d0a750 e941ae1fb3e5
files javafx-fxml/test/javafx/fxml/RT_14880.java javafx-fxml/test/javafx/fxml/RT_15524.java javafx-fxml/test/javafx/fxml/RT_16722.java javafx-fxml/test/javafx/fxml/RT_16724.java javafx-fxml/test/javafx/fxml/RT_16815.java javafx-fxml/test/javafx/fxml/RT_16977.java javafx-fxml/test/javafx/fxml/RT_17646.java javafx-fxml/test/javafx/fxml/RT_17714.java javafx-fxml/test/javafx/fxml/RT_18046.java javafx-fxml/test/javafx/fxml/RT_18218.java javafx-fxml/test/javafx/fxml/RT_18680.java javafx-fxml/test/javafx/fxml/RT_18933.java javafx-fxml/test/javafx/fxml/RT_19008.java javafx-fxml/test/javafx/fxml/RT_19112.java javafx-fxml/test/javafx/fxml/RT_19139.java javafx-fxml/test/javafx/fxml/RT_19228.java javafx-fxml/test/javafx/fxml/RT_19329.java javafx-fxml/test/javafx/fxml/RT_19870.java javafx-fxml/test/javafx/fxml/RT_20082.java javafx-fxml/test/javafx/fxml/RT_20471.java javafx-fxml/test/javafx/fxml/RT_21559.java javafx-fxml/test/javafx/fxml/RT_22864.java javafx-fxml/test/javafx/fxml/RT_22971.java javafx-fxml/test/javafx/fxml/RT_23244.java javafx-fxml/test/javafx/fxml/RT_23413.java javafx-fxml/test/javafx/fxml/RT_24380.java
diffstat 59 files changed, 1610 insertions(+), 1550 deletions(-) [+]
line wrap: on
line diff
--- a/javafx-fxml/src/javafx/fxml/doc-files/introduction_to_fxml.html	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-fxml/src/javafx/fxml/doc-files/introduction_to_fxml.html	Tue Dec 04 09:37:33 2012 -0800
@@ -217,9 +217,9 @@
 <p>Class instances can be constructed in FXML in several ways. The most common is via instance declaration elements, which simply create a new instance of a class by name. Other ways of creating class instances include referencing existing values, copying existing values, and including external FXML files. Each is discussed in more detail below.</p>
 
 <h4><a name="instance_declaration_elements">Instance Declarations</a></h4>
-<p>If an element's tag name begins with an uppercase letter (and it is not a "static" property setter, described later), it is considered an instance declaration. When the FXML loader (also introduced later) encounters such an element, it creates an instance of that class.</p>
+<p><assert id="instance_declaration" group="instance_declarations">If an element's tag name begins with an uppercase letter (and it is not a "static" property setter, described later), it is considered an instance declaration.</assert> When the FXML loader (also introduced later) encounters such an element, it creates an instance of that class.</p>
 
-<p>As in Java, class names can be fully-qualified (including the package name), or they can be imported using the "import" processing instruction (PI). For example, the following PI imports the <span class="code">javafx.scene.control.Label</span> class into the current FXML document’s namespace:</p>
+<p><assert id="fully_qualified_name" group="instance_declarations">As in Java, class names can be fully-qualified (including the package name)</assert>, <assert id="import" group="instance_declarations">or they can be imported using the "import" processing instruction (PI). For example, the following PI imports the <span class="code">javafx.scene.control.Label</span> class into the current FXML document’s namespace:</p>
 
 <pre class="code">
 &lt;?import javafx.scene.control.Label?&gt;
@@ -230,8 +230,9 @@
 <pre class="code">
 &lt;?import javafx.scene.control.*?&gt;
 </pre>
+</assert>
 
-<p>Any class that adheres to JavaBean constructor and property naming conventions can be readily instantiated and configured using FXML. The following is a simple but complete example that creates an instance of <span class="code">javafx.scene.control.Label</span> and sets its "text" property to "Hello, World!":</p>
+<p><assert id="instantiation_java_bean" group="instance_declarations">Any class that adheres to JavaBean constructor and property naming conventions can be readily instantiated and configured using FXML.</assert> The following is a simple but complete example that creates an instance of <span class="code">javafx.scene.control.Label</span> and sets its "text" property to "Hello, World!":</p>
 
 <pre class="code">
 &lt;?import javafx.scene.control.Label?&gt;
@@ -245,14 +246,14 @@
 <h5>Maps</h5>
 <p>Internally, the FXML loader uses an instance of <span class="code">com.sun.javafx.fxml.BeanAdapter</span> to wrap an instantiated object and invoke its setter methods. This (currently) private class implements the <span class="code">java.util.Map</span> interface and allows a caller to get and set Bean property values as key/value pairs.</p>
 
-<p>If an element represents a type that already implements <span class="code">Map</span> (such as <span class="code">java.util.HashMap</span>), it is not wrapped and its <span class="code">get()</span> and <span class="code">put()</span> methods are invoked directly. For example, the following FXML creates an instance of <span class="code">HashMap</span> and sets its "foo" and "bar" values to "123" and "456", respectively:
+<p><assert id="map_instantiaton" group="instance_declarations">If an element represents a type that already implements <span class="code">Map</span> (such as <span class="code">java.util.HashMap</span>), it is not wrapped and its <span class="code">get()</span> and <span class="code">put()</span> methods are invoked directly.</assert> For example, the following FXML creates an instance of <span class="code">HashMap</span> and sets its "foo" and "bar" values to "123" and "456", respectively:
 
 <pre class="code">
 &lt;HashMap foo="123" bar="456"/&gt;
 </pre>
 
 <h5>fx:value</h5>
-<p>The <span class="code">fx:value</span> attribute can be used to initialize an instance of a type that does not have a default constructor but provides a static <span class="code">valueOf(String)</span> method. For example, <span class="code">java.lang.String</span> as well as each of the primitive wrapper types define a <span class="code">valueOf()</span> method and can be constructed in FXML as follows:</p>
+<p><assert id="instantiation_no_default_constructor" group="instance_declarations">The <span class="code">fx:value</span> attribute can be used to initialize an instance of a type that does not have a default constructor but provides a static <span class="code">valueOf(String)</span> method.</assert> For example, <span class="code">java.lang.String</span> as well as each of the primitive wrapper types define a <span class="code">valueOf()</span> method and can be constructed in FXML as follows:</p>
 
 <pre class="code">
 &lt;String fx:value="Hello, World!"/&gt;
@@ -263,7 +264,7 @@
 <p>Custom classes that define a static <span class="code">valueOf(String)</span> method can also be constructed this way.</p>
 
 <h5>fx:factory</h5>
-<p>The <span class="code">fx:factory</span> attribute is another means of creating objects whose classes do not have a default constructor. The value of the attribute is the name of a static, no-arg factory method for producing class instances. For example, the following markup creates an instance of an observable array list, populated with three string values:</p>
+<p><assert id="instantiation_factory" group="instance_declarations">The <span class="code">fx:factory</span> attribute is another means of creating objects whose classes do not have a default constructor. The value of the attribute is the name of a static, no-arg factory method for producing class instances.</assert> For example, the following markup creates an instance of an observable array list, populated with three string values:</p>
 
 <pre class="code">
 &lt;FXCollections fx:factory="observableArrayList"&gt;
@@ -274,7 +275,7 @@
 </pre>
 
 <h5>Builders</h5>
-<p>A third means of creating instances of classes that do not conform to Bean conventions (such as those representing immutable values) is a "builder". The builder design pattern delegates object construction to a mutable helper class (called a "builder") that is responsible for manufacturing instances of the immutable type.</p>
+<p><assert id="instantiation_builder" group="instance_declarations">A third means of creating instances of classes that do not conform to Bean conventions (such as those representing immutable values) is a "builder".</assert> The builder design pattern delegates object construction to a mutable helper class (called a "builder") that is responsible for manufacturing instances of the immutable type.</p>
 
 <p>Builder support in FXML is provided by two interfaces. The <span class="code">javafx.util.Builder</span> interface defines a single method named <span class="code">build()</span> which is responsible for constructing the actual object:</p>
 
@@ -313,13 +314,13 @@
 <p>When processing markup for an object that will be constructed by a builder, the <span class="code">Builder</span> instances are treated like value objects - if a <span class="code">Builder</span> implements the <span class="code">Map</span> interface, the <span class="code">put()</span> method is used to set the builder's attribute values. Otherwise, the builder is wrapped in a <span class="code">BeanAdapter</span> and its properties are assumed to be exposed via standard Bean setters.</p>
 
 <h4><a name="include_elements">&lt;fx:include&gt;</a></h4>
-<p>The <span class="code">&lt;fx:include&gt;</span> tag creates an object from FXML markup defined in another file. It is used as follows:</p>
+<p><assert id="include" group="instance_declarations">The <span class="code">&lt;fx:include&gt;</span> tag creates an object from FXML markup defined in another file.</assert> It is used as follows:</p>
 
 <pre class="code">
 &lt;fx:include source="<span class="variable">filename</span>"/&gt;
 </pre>
 
-<p>where <span class="variable">filename</span> is the name of the FXML file to include. Values that begin with a leading slash character are treated as relative to the classpath. Values with no leading slash are considered relative to the path of the current document.</p>
+<p>where <span class="variable">filename</span> is the name of the FXML file to include. <assert id="leading_slash_character" group="instance_declarations">Values that begin with a leading slash character are treated as relative to the classpath.</assert> <assert id="no_leading_slash_character" group="instance_declarations">Values with no leading slash are considered relative to the path of the current document.</assert></p>
 
 <p>For example, given the following markup:</p>
 
@@ -347,7 +348,7 @@
 <p><span class="code">&lt;fx:include&gt;</span> also supports attributes for specifying the name of the resource bundle that should be used to localize the included content, as well as the character set used to encode the source file. Resource resolution is discussed in a later section.</p>
 
 <h4><a name="constant_elements">&lt;fx:constant&gt;</a></h4>
-<p>The <span class="code">&lt;fx:constant&gt;</span> element creates a reference to a class constant. For example, the following markup sets the value of the "minWidth" property of a<span class="code">Button</span> instance to the value of the <span class="code">NEGATIVE_INFINITY</span> constant defined by the <span class="code">java.lang.Double</span> class:</p>
+<p><assert id="constant" group="instance_declarations">The <span class="code">&lt;fx:constant&gt;</span> element creates a reference to a class constant.</assert> For example, the following markup sets the value of the "minWidth" property of a<span class="code">Button</span> instance to the value of the <span class="code">NEGATIVE_INFINITY</span> constant defined by the <span class="code">java.lang.Double</span> class:</p>
 
 <pre class="code">
 &lt;Button&gt;
@@ -356,7 +357,7 @@
 </pre>
 
 <h4><a name="reference_elements">&lt;fx:reference&gt;</a></h4>
-<p>The <span class="code">&lt;fx:reference&gt;</span> element creates a new reference to an existing element. Wherever this tag appears, it will effectively be replaced by the value of the named element. It is used in conjunction with either the <span class="code">fx:id</span> attribute or with a script variables, both of which are discussed in more detail in later sections. The "source" attribute of the <span class="code">&lt;fx:reference&gt;</span> element specifies the name of the object to which the new element will refer.</p>
+<p><assert id="reference" group="instance_declarations">The <span class="code">&lt;fx:reference&gt;</span> element creates a new reference to an existing element.</assert> Wherever this tag appears, it will effectively be replaced by the value of the named element. It is used in conjunction with either the <span class="code">fx:id</span> attribute or with a script variables, both of which are discussed in more detail in later sections. The "source" attribute of the <span class="code">&lt;fx:reference&gt;</span> element specifies the name of the object to which the new element will refer.</p>
 
 <p>For example, the following markup assigns a previously-defined <span class="code">Image</span> instance named "myImage" to the "image" property of an <span class="code">ImageView</span> control:</p>
 
@@ -381,12 +382,12 @@
 <p>For most other cases, using an attribute is simpler and more concise.</p>
 
 <h4><a name="copy_elements">&lt;fx:copy&gt;</a></h4>
-<p>The <span class="code">&lt;fx:copy&gt;</span> element creates a copy of an existing element. Like <span class="code">&lt;fx:reference&gt;</span>, it is used with the fx:id attribute or a script variable. The element's "source" attribute specifies the name of the object that will be copied. The source type must define a copy constructor that will be used to construct the copy from the source value.</p>
+<p><assert id="copy" group="instance_declarations">The <span class="code">&lt;fx:copy&gt;</span> element creates a copy of an existing element.</assert> Like <span class="code">&lt;fx:reference&gt;</span>, it is used with the fx:id attribute or a script variable. The element's "source" attribute specifies the name of the object that will be copied. The source type must define a copy constructor that will be used to construct the copy from the source value.</p>
 
 <p>At the moment, no JavaFX platform classes provide such a copy constructor, so this element is provided primarily for use by application developers. This may change in a future release.</p>
 
 <h4><a name="root_elements">&lt;fx:root&gt;</a></h4>
-<p>The <span class="code">&lt;fx:root&gt;</span> element creates a reference to a previously defined root element. It is only valid as the root node of an FXML document. <span class="code">&lt;fx:root&gt;</span> is used primarily when creating custom controls that are backed by FXML markup. This is discussed in more detail in the <a href="#fxmlloader">FXMLLoader</a> section.</p>
+<p><assert id="root" group="instance_declarations">The <span class="code">&lt;fx:root&gt;</span> element creates a reference to a previously defined root element. It is only valid as the root node of an FXML document.</assert> <span class="code">&lt;fx:root&gt;</span> is used primarily when creating custom controls that are backed by FXML markup. This is discussed in more detail in the <a href="#fxmlloader">FXMLLoader</a> section.</p>
 
 <h3><a name="property_elements">Property Elements</a></h3>
 <p>Elements whose tag names begin with a lowercase letter represent object properties. A property element may represent one of the following:</p>
@@ -398,7 +399,7 @@
 </ul>
 
 <h4><a name="property_setter_elements">Property Setters</a></h4>
-<p>If an element represents a property setter, the contents of the element (which must be either a text node or a nested class instance element) are passed as the value to the setter for the property.</p>
+<p><assert id="property_setter" group="property_elements">If an element represents a property setter, the contents of the element (which must be either a text node or a nested class instance element) are passed as the value to the setter for the property.</assert></p>
 
 <p>For example, the following FXML creates an instance of the <span class="code">Label</span> class and sets the value of the label's "text" property to "Hello, World!":</p>
 
@@ -421,10 +422,10 @@
 <h5>Type Coercion</h5>
 <p>FXML uses "type coercion" to convert property values to the appropriate type as needed. Type coercion is required because the only data types supported by XML are elements, text, and attributes (whose values are also text). However, Java supports a number of different data types including built-in primitive value types as well as extensible reference types.</p>
 
-<p>The FXML loader uses the <span class="code">coerce()</span> method of <span class="code">BeanAdapter</span> to perform any required type conversions. This method is capable of performing basic primitive type conversions such as <span class="code">String</span> to <span class="code">boolean</span> or <span class="code">int</span> to <span class="code">double</span>, and will also convert <span class="code">String</span> to <span class="code">Class</span> or <span class="code">String</span> to <span class="code">Enum</span>. Additional conversions can be implemented by defining a static <span class="code">valueOf()</span> method on the target type.</p>
+<p>The FXML loader uses the <span class="code">coerce()</span> method of <span class="code">BeanAdapter</span> to perform any required type conversions. This method is capable of performing basic primitive type conversions such as <span class="code">String</span> to <span class="code">boolean</span> or <span class="code">int</span> to <span class="code">double</span>, and will also convert <span class="code">String</span> to <span class="code">Class</span> or <span class="code">String</span> to <span class="code">Enum</span>. <assert id="additional_conversions" group="property_elements">Additional conversions can be implemented by defining a static <span class="code">valueOf()</span> method on the target type.</assert></p>
 
 <h4><a name="read_only_list_property_elements">Read-Only List Properties</a></h4>
-<p>A read-only list property is a Bean property whose getter returns an instance of <span class="code">java.util.List</span> and has no corresponding setter method. The contents of a read-only list element are automatically added to the list as they are processed.</p>
+<p><assert id="read_only_list_property" group="property_elements">A read-only list property is a Bean property whose getter returns an instance of <span class="code">java.util.List</span> and has no corresponding setter method. The contents of a read-only list element are automatically added to the list as they are processed.</assert></p>
 
 <p>For example, the "children" property of <span class="code">javafx.scene.Group</span> is a read-only list property representing the group's child nodes:</p>
 
@@ -443,7 +444,7 @@
 <p>As each sub-element of the <span class="code">&lt;children&gt;</span> element is read, it is added to the list returned by <span class="code">Group#getChildren()</span>.
 
 <h4><a name="read_only_map_property_elements">Read-Only Map Properties</a></h4>
-<p>A read-only map property is a bean property whose getter returns an instance of <span class="code">java.util.Map</span> and has no corresponding setter method. The attributes of a read-only map element are applied to the map when the closing tag is processed.</p>
+<p><assert id="read_only_map_property" group="property_elements">A read-only map property is a bean property whose getter returns an instance of <span class="code">java.util.Map</span> and has no corresponding setter method. The attributes of a read-only map element are applied to the map when the closing tag is processed.</assert></p>
 
 <p>The "properties" property of <span class="code">javafx.scene.Node</span> is an example of a read-only map property. The following markup sets the "foo" and "bar" properties of a <span class="code">Label</span> instance to "123" and "456", respectively:</p>
 
@@ -454,10 +455,10 @@
 &lt;/Button&gt;
 </pre>
 
-<p>Note that a read-only property whose type is neither a <span class="code">List</span> nor a <span class="code">Map</span> will be treated as if it were a read-only map. The return value of the getter method will be wrapped in a <span class="code">BeanAdapter</span> and can be used in the same way as any other read-only map.</p>
+<p><assert id="read_only_property_type_treating" group="property_elements">Note that a read-only property whose type is neither a <span class="code">List</span> nor a <span class="code">Map</span> will be treated as if it were a read-only map. The return value of the getter method will be wrapped in a <span class="code">BeanAdapter</span> and can be used in the same way as any other read-only map.</assert></p>
 
 <h4><a name="default_properties">Default Properties</a></h4>
-<p>A class may define a "default property" using the <span class="code">@DefaultProperty</span> annotation defined in the <span class="code">javafx.beans</span> package. If present, the sub-element representing the default property can be omitted from the markup.</p>
+<p><assert id="default_property" group="property_elements">A class may define a "default property" using the <span class="code">@DefaultProperty</span> annotation defined in the <span class="code">javafx.beans</span> package. If present, the sub-element representing the default property can be omitted from the markup.</assert></p>
 
 <p>For example, since <span class="code">javafx.scene.layout.Pane</span> (the superclass of <span class="code">javafx.scene.layout.VBox</span>) defines a default property of "children", a <span class="code">&lt;children&gt;</span> element is not required; the loader will automatically add the sub-elements of the <span class="code">VBox</span> to the container's "children" collection:</p>
 
@@ -483,7 +484,7 @@
 <p>Taking advantage of default properties can significantly reduce the verbosity of FXML markup.</p>
 
 <h3><a name="static_property_elements">Static Properties</a></h3>
-<p>An element may also represent a "static" property (sometimes called an "attached property"). Static properties are properties that only make sense in a particular context. They are not intrinsic to the class to which they are applied, but are defined by another class (often, the parent container of a control).</p>
+<p><assert id="static_property" group="elements">An element may also represent a "static" property (sometimes called an "attached property"). Static properties are properties that only make sense in a particular context. They are not intrinsic to the class to which they are applied, but are defined by another class (often, the parent container of a control).</assert></p>
 
 <p>Static properties are prefixed with the name of class that defines them. For example, The following FXML invokes the static setter for <span class="code">GridPane</span>'s "rowIndex" and "columnIndex" properties:</p>
 
@@ -517,7 +518,7 @@
 <p>As with instance properties, static property elements are generally used when the property value cannot be efficiently represented by an attribute value. Otherwise, static property attributes (discussed in a later section) will generally produce more concise and readable markup.</p>
 
 <h3><a name="define_elements">Define Blocks</a></h3>
-<p>The <span class="code">&lt;fx:define&gt;</span> element is used to create objects that exist outside of the object hierarchy but may need to be referred to elsewhere.</p>
+<p><assert id="define" group="elements">The <span class="code">&lt;fx:define&gt;</span> element is used to create objects that exist outside of the object hierarchy but may need to be referred to elsewhere.</assert></p>
 
 <p>For example, when working with radio buttons, it is common to define a <span class="code">ToggleGroup</span> that will manage the buttons' selection state. This group is not part of the scene graph itself, so should not be added to the buttons' parent. A define block can be used to create the button group without interfering with the overall structure of the document:</p>
 
@@ -547,14 +548,14 @@
 <p>Each are discussed in more detail in the following sections.</p>
 
 <h3><a name="instance_property_attributes">Instance Properties</a></h3>
-<p>Like property elements, attributes can also be used to configure the properties of a class instance. For example, the following markup creates a <span class="code">Button</span> whose text reads "Click Me!":</p>
+<p><assert id="instance_properties" group="instance_properties">Like property elements, attributes can also be used to configure the properties of a class instance.</assert> For example, the following markup creates a <span class="code">Button</span> whose text reads "Click Me!":</p>
 
 <pre class="code">
 &lt;?import javafx.scene.control.*?&gt;
 &lt;Button text="Click Me!"/&gt;
 </pre>
 
-<p>As with property elements, property attributes support type coercion. When the following markup is processed, the "x", "y", "width", and "height" values will be converted to doubles, and the "fill" value will be converted to a <span class="code">Color</span>:</p>
+<p><assert id="attributes_type_coercion" group="instance_properties">As with property elements, property attributes support type coercion.</assert> When the following markup is processed, the "x", "y", "width", and "height" values will be converted to doubles, and the "fill" value will be converted to a <span class="code">Color</span>:</p>
 
 <pre class="code">
 &lt;Rectangle fx:id="rectangle" x="10" y="10" width="320" height="240"
@@ -572,7 +573,7 @@
 </ul>
 
 <h4><a name="location_resolution">Location Resolution</a></h4>
-<p>As strings, XML attributes cannot natively represent typed location information such as a URL. However, it is often necessary to specify such locations in markup; for example, the source of an image resource. The location resolution operator (represented by an "@" prefix to the attribute value) is used to specify that an attribute value should be treated as a location relative to the current file rather than a simple string.</p>
+<p><assert id="location_resolution" group="instance_properties">As strings, XML attributes cannot natively represent typed location information such as a URL. However, it is often necessary to specify such locations in markup; for example, the source of an image resource. The location resolution operator (represented by an "@" prefix to the attribute value) is used to specify that an attribute value should be treated as a location relative to the current file rather than a simple string.</assert></p>
 
 <p>For example, the following markup creates an ImageView and populates it with image data from <span class="filename">my_image.png</span>, which is assumed to be located at a path relative to the current FXML file:</p>
 
@@ -605,6 +606,7 @@
 </pre>
 
 <h4><a name="resource_resolution">Resource Resolution</a></h4>
+<assert id="resource_resolution" group="instance_properties">
 <p>In FXML, resource substitution can be performed at load time for localization purposes. When provided with an instance of <span class="code">java.util.ResourceBundle</span>, the FXML loader will replace instances of resource names with their locale-specific values. Resource names are identified by a "%" prefix, as shown below:</p>
 
 <pre class="code">
@@ -616,11 +618,12 @@
 <pre class="code">
 myText = This is the text!
 </pre>
+</assert>
 
 <p>the output of the FXML loader would be a <span class="code">Label</span> instance containing the text "This is the text!".</p>
 
 <h4><a name="variable_resolution">Variable Resolution</a></h4>
-<p>An FXML document defines a variable namespace in which named elements and script variables may be uniquely identified. The variable resolution operator allows a caller to replace an attribute value with an instance of a named object before the corresponding setter method is invoked. Variable references are identified by a "$" prefix, as shown below:</p>
+<p><assert id="variable_resolution" group="instance_properties">An FXML document defines a variable namespace in which named elements and script variables may be uniquely identified. The variable resolution operator allows a caller to replace an attribute value with an instance of a named object before the corresponding setter method is invoked. Variable references are identified by a "$" prefix</assert>, as shown below:</p>
 
 <pre class="code">
 &lt;fx:define&gt;
@@ -632,11 +635,11 @@
 &lt;RadioButton text="C" toggleGroup="$myToggleGroup"/&gt;
 </pre>
 
-<p>Assigning an <span class="code">fx:id</span> value to an element creates a variable in the document's namespace that can later be referred to by variable dereference attributes, such as the "toggleGroup" attribute shown above, or in script code, discussed in a later section. Additionally, if the object's type defines an "id" property, this value will also be passed to the objects <span class="code">setId()</span> method.</p>
+<p><assert id="assigning_id" group="instance_properties">Assigning an <span class="code">fx:id</span> value to an element creates a variable in the document's namespace that can later be referred to by variable dereference attributes, such as the "toggleGroup" attribute shown above, or in script code, discussed in a later section. Additionally, if the object's type defines an "id" property, this value will also be passed to the objects <span class="code">setId()</span> method.</assert></p>
 
 <h4><a name="escape_sequences">Escape Sequences</a></h4>
 
-<p>If the value of an attribute begins with one of the resource resolution prefixes, the character can be escaped by prepending it with a leading backslash ("\") character. For example, the following markup creates a <span class="code">Label</span> instance whose text reads "$10.00":</p>
+<p><assert id="escape_sequences" group="instance_properties">If the value of an attribute begins with one of the resource resolution prefixes, the character can be escaped by prepending it with a leading backslash ("\") character.</assert> For example, the following markup creates a <span class="code">Label</span> instance whose text reads "$10.00":</p>
 
 <pre class="code">
 &lt;Label text="\$10.00"/&gt;
@@ -645,7 +648,7 @@
 <h4><a name="expression_binding">Expression Binding</a></h4>
 <p>Attribute variables as shown above are resolved once at load time. Later updates to the variables value are not automatically reflected in any properties to which the value was assigned. In many cases, this is sufficient; however, it is often convenient to "bind" a property value to a variable or expression such that changes to the variable are automatically propagated to the target property. Expression bindings can be used for this purpose.</p>
 
-<p>An expression binding also begins with the variable resolution operator, but is followed by a set of curly braces which wrap the expression value. For example, the following markup binds the value of a text input's "text" property to the "text" property of a <span class="code">Label</span> instance:</p>
+<p><assert id="expression_binding" group="instance_properties">An expression binding also begins with the variable resolution operator, but is followed by a set of curly braces which wrap the expression value.</assert> For example, the following markup binds the value of a text input's "text" property to the "text" property of a <span class="code">Label</span> instance:</p>
 
 <pre class="code">
 &lt;TextField fx:id="textField"/&gt;
@@ -657,7 +660,7 @@
 <p>Only simple expressions that resolve to property values or page variables are currently supported. Support for more complex expressions involving boolean or other operators may be added in the future.</p>
 
 <h3><a name="static_property_attributes">Static Properties</a></h3>
-<p>Attributes representing static properties are handled similarly to static property elements and use a similar syntax. For example, the earlier <span class="code">GridPane</span> markup shown earlier to demonstrate static property elements could be rewritten as follows:</p>
+<p><assert id="static_property_attributes" group="attributes">Attributes representing static properties are handled similarly to static property elements and use a similar syntax.</assert> For example, the earlier <span class="code">GridPane</span> markup shown earlier to demonstrate static property elements could be rewritten as follows:</p>
 
 <pre class="code">
 &lt;GridPane&gt;
@@ -667,7 +670,7 @@
 &lt;/TabPane&gt;
 </pre>
 
-<p>In addition to being more concise, static property attributes, like instance property attributes, support location, resource, and variable resolution operators, the only limitation being that it is not possible to create an expression binding to a static property.</p>
+<p><assert id="static_property_attributes_use" group="attributes">In addition to being more concise, static property attributes, like instance property attributes, support location, resource, and variable resolution operators, the only limitation being that it is not possible to create an expression binding to a static property.</assert></p>
 
 <h3><a name="event_handler_attributes">Event Handlers</a></h3>
 <p>Event handler attributes are a convenient means of attaching behaviors to document elements. Any class that defines a <span class="code">setOn<span class="variable">Event</span>()</span> method can be assigned an event handler in markup, as can any observable property (via an "on<span class="variable">Property</span>Change" attribute).</p>
@@ -675,7 +678,7 @@
 <p>FXML supports two types of event handler attributes: script event handlers and controller method event handlers. Each are discussed below.</p>
 
 <h4><a name="script_event_handlers">Script Event Handlers</a></h4>
-<p>A script event handler is an event handler that executes script code when the event is fired, similar to event handlers in HTML. For example, the following script-based handler for the button's "onAction" event uses JavaScript to write the text "You clicked me!" to the console when the user presses the button:</p>
+<p><assert id="script_event_handlers" group="event_handlers">A script event handler is an event handler that executes script code when the event is fired, similar to event handlers in HTML.</assert> For example, the following script-based handler for the button's "onAction" event uses JavaScript to write the text "You clicked me!" to the console when the user presses the button:</p>
 
 <pre class="code">
 &lt;?language javascript?&gt;
@@ -689,12 +692,12 @@
 &lt;/VBox&gt;
 </pre>
 
-<p>Note the use of the language processing instruction at the beginning of the code snippet. This PI tells the FXML loader which scripting language should be used to execute the event handler. A page language must be specified whenever inline script is used in an FXML document, and can only be specified once per document. However, this does not apply to external scripts, which may be implemented using any number of supported scripting languages. Scripting is discussed in more detail in the next section.</p>
+<p><assert id="language_processing_instruction" group="event_handlers">Note the use of the language processing instruction at the beginning of the code snippet. This PI tells the FXML loader which scripting language should be used to execute the event handler. A page language must be specified whenever inline script is used in an FXML document, and can only be specified once per document. However, this does not apply to external scripts, which may be implemented using any number of supported scripting languages.</assert> Scripting is discussed in more detail in the next section.</p>
 
 <h4><a name="controller_method_event_handlers">Controller Method Event Handlers</a></h4>
 <p>A controller method event handler is a method defined by a document's "controller". A controller is an object that is associated with the deserialized contents of an FXML document and is responsible for coordinating the behaviors of the objects (often user interface elements) defined by the document.</p>
 
-<p>A controller method event handler is specified by a leading hash symbol followed by the name of the handler method. For example:</p>
+<p><assert id="controller_method_event_handler_specification" group="event_handlers">A controller method event handler is specified by a leading hash symbol followed by the name of the handler method.</assert> For example:</p>
 
 <pre class="code">
 &lt;VBox fx:controller="com.foo.MyController"
@@ -705,7 +708,7 @@
 &lt;/VBox&gt;
 </pre>
 
-<p>Note the use of the <span class="code">fx:controller</span> attribute on the root element. This attribute is used to associate a controller class with the document. If <span class="code">MyController</span> is defined as follows:</p>
+<p><assert id="controller_attribute" group="event_handlers">Note the use of the <span class="code">fx:controller</span> attribute on the root element. This attribute is used to associate a controller class with the document.</assert> If <span class="code">MyController</span> is defined as follows:</p>
 
 <pre class="code">
 package com.foo;
@@ -719,12 +722,12 @@
 
 <p>the <span class="code">handleButtonAction()</span> will be called when the user presses the button, and the text "You clicked me!" will be written to the console.</p>
 
-<p>In general, a handler method should conform to the signature of a standard event handler; that is, it should take a single argument of a type that extends <span class="code">javafx.event.Event</span> and should return void (similar to an event delegate in C#). The event argument often carries important and useful information about the nature of the event; however, it is optional and may be omitted if desired.</p>
+<p><assert id="handler_method_signature" group="event_handlers">In general, a handler method should conform to the signature of a standard event handler; that is, it should take a single argument of a type that extends <span class="code">javafx.event.Event</span> and should return void (similar to an event delegate in C#). The event argument often carries important and useful information about the nature of the event;</assert> <assert id="handler_method_opt_arg" group="event_handlers">however, it is optional and may be omitted if desired</assert>.</p>
 
 <p>Controllers are discussed in more detail in a later section.</p>
 
 <h2><a name="scripting">Scripting</a></h2>
-The <span class="code">&lt;fx:script&gt;</span> tag allows a caller to import scripting code into or embed script within a FXML file. Any JVM scripting language can be used, including JavaScript, Groovy, and Clojure, among others. Script code is often used to define event handlers directly in markup or in an associated source file, since event handlers can often be written more concisely in more loosely-typed scripting languages than they can in a statically-typed language such as Java.</p>
+<assert id="script_tag" group="scripting">The <span class="code">&lt;fx:script&gt;</span> tag allows a caller to import scripting code into or embed script within a FXML file. Any JVM scripting language can be used, including JavaScript, Groovy, and Clojure, among others. Script code is often used to define event handlers directly in markup or in an associated source file, since event handlers can often be written more concisely in more loosely-typed scripting languages than they can in a statically-typed language such as Java.</assert></p>
 
 <p>For example, the following markup defines a function called <span class="code">handleButtonAction()</span> that is called by the action handler attached to the <span class="code">Button</span> element:</p>
 
@@ -751,7 +754,7 @@
 
 <p>Clicking the button triggers the event handler, which invokes the function, producing output identical to the previous examples.</p>
 
-<p>Script code may also be defined in external files. The previous example could be split into an FXML file and a JavaScript source file with no difference in functionality:</p>
+<p><assert id="external_script_code" group="scripting">Script code may also be defined in external files. The previous example could be split into an FXML file and a JavaScript source file with no difference in functionality</assert>:</p>
 
 <div class="caption">example.fxml</div>
 <pre class="code">
@@ -778,6 +781,7 @@
 
 <p>It is often preferable to separate code from markup in this way, since many text editors support syntax highlighting for the various scripting languages supported by the JVM. It can also help improve readability of the source code and markup.</p>
 
+<assert id="script_blocks_not_limited" group="scripting">
 <p>Note that script blocks are not limited to defining event handler functions. Script code is executed as it is processed, so it can also be used to dynamically configure the structure of the resulting output. As a simple example, the following FXML includes a script block that defines a variable named "labelText". The value of this variable is used to populate the text property of a <span class="code">Label</span> instance:</p>
 
 <pre class="code">
@@ -789,6 +793,7 @@
 
 &lt;Label text="$myText"/&gt;
 </pre>
+</assert>
 
 <h2><a name="controllers">Controllers</a></h2>
 <p>While it can be convenient to write simple event handlers in script, either inline or defined in external files, it is often preferable to define more complex application logic in a compiled, strongly-typed language such as Java. As discussed earlier, the <span class="code">fx:controller</span> attribute allows a caller to associate a "controller" class with an FXML document. A controller is a compiled class that implements the "code behind" the object hierarchy defined by the document.</p>
@@ -814,13 +819,13 @@
 }
 </pre>
 
-<p>In many cases, it is sufficient to simply declare event handlers in this manner. However, when more control over the behavior of the controller and the elements it manages is required, the controller can define an <span class="code">initialize()</span> method, which will be called once on an implementing controller when the contents of its associated document have been completely loaded:</p>
+<p><assert id="handlers_initialize" group="controllers">In many cases, it is sufficient to simply declare event handlers in this manner. However, when more control over the behavior of the controller and the elements it manages is required, the controller can define an <span class="code">initialize()</span> method, which will be called once on an implementing controller when the contents of its associated document have been completely loaded</assert>:</p>
 
 <pre class="code">
 public void initialize();
 </pre>
 
-<p>This allows the implementing class to perform any necessary post-processing on the content. It also provides the controller with access to the resources that were used to load the document and the location that was used to resolve relative paths within the document (commonly equivalent to the location of the document itself).</p>
+<p><assert id="post-processing" group="controllers">This allows the implementing class to perform any necessary post-processing on the content.</assert> It also provides the controller with access to the resources that were used to load the document and the location that was used to resolve relative paths within the document (commonly equivalent to the location of the document itself).</p>
 
 <p>For example, the following code defines an <span class="code">initialize()</span> method that attaches an action handler to a button in code rather than via an event handler attribute, as was done in the previous example. The button instance variable is injected by the loader as the document is read. The resulting application behavior is identical:</p>
 
@@ -852,7 +857,7 @@
 </pre>
 
 <h3><a name="fxml_annotation">@FXML</a></h3>
-<p>Note that, in the previous examples, the controller member fields and event handler methods were declared as public so they can be set or invoked by the loader. In practice, this is not often an issue, since a controller is generally only visible to the FXML loader that creates it. However, for developers who prefer more restricted visibility for controller fields or handler methods, the <span class="code">javafx.fxml.FXML</span> annotation can be used. This annotation marks a protected or private class member as accessible to FXML.</span>
+<p><assert id="public_controller_access" group="controllers">Note that, in the previous examples, the controller member fields and event handler methods were declared as public so they can be set or invoked by the loader.</assert> In practice, this is not often an issue, since a controller is generally only visible to the FXML loader that creates it. <assert id="FXML_controller_access" group="controllers">However, for developers who prefer more restricted visibility for controller fields or handler methods, the <span class="code">javafx.fxml.FXML</span> annotation can be used. This annotation marks a protected or private class member as accessible to FXML.</assert></span>
 
 <p>For example, the controllers from the previous examples could be rewritten as follows:</p>
 
@@ -887,10 +892,10 @@
 
 <p>In the first version, the <span class="code">handleButtonAction()</span> is tagged with <span class="code">@FXML</span> to allow markup defined in the controller's document to invoke it. In the second example, the button field is annotated to allow the loader to set its value. The <span class="code">initialize()</span> method is similarly annotated.</p>
 
-<p>Note that the <span class="code">@FXML</span> annotation can currently only be used with trusted code. Because the FXML loader relies on reflection to set member fields and invoke member methods, it must call <span class="code">setAccessible()</span> on any non-public <span class="code">Field</span>. <span class="code">setAccessible()</span> is a privileged operation that can only be executed in a secure context. This may change in a future release.</p>
+<p><assert id="trusted_code_only" group="controllers">Note that the <span class="code">@FXML</span> annotation can currently only be used with trusted code.</assert> Because the FXML loader relies on reflection to set member fields and invoke member methods, it must call <span class="code">setAccessible()</span> on any non-public <span class="code">Field</span>. <span class="code">setAccessible()</span> is a privileged operation that can only be executed in a secure context. This may change in a future release.</p>
 
 <h3><a name="nested_controllers">Nested Controllers</a></h3>
-<p>Controller instances for nested FXML documents loaded via the <span class="code">&lt;fx:include&gt;</span> element are mapped directly to member fields of the including controller. This allows a developer to easily access functionality defined by an include (such as a dialog window presented by an application's main window controller). For example, given the following code:
+<p><assert id="nested_fxml_mapping" group="controllers">Controller instances for nested FXML documents loaded via the <span class="code">&lt;fx:include&gt;</span> element are mapped directly to member fields of the including controller.</assert> This allows a developer to easily access functionality defined by an include (such as a dialog window presented by an application's main window controller). For example, given the following code:
 
 <div class="caption">main_window_content.fxml</div>
 <pre class="code">
@@ -924,10 +929,10 @@
 MyController controller = (MyController)fxmlLoader.getController();
 </pre>
 
-<p>Note that the output of an <span class="code">FXMLLoader#load()</span> operation is an instance hierarchy that reflects the actual named classes in the document, not <span class="code">org.w3c.dom</span> nodes representing those classes. Internally, <span class="code">FXMLLoader</span> uses the <span class="code">javax.xml.stream</span> API (also known as the <i>Streaming API for XML</i>, or <i>StAX</i>) to load an FXML document. StAX is an extremely efficient event-based XML parsing API that is conceptually similar to its W3C predecessor, SAX. It allows an FXML document to be processed in a single pass, rather than loaded into an intermediate DOM structure and then post-processed.</p>
+<p><assert id="loader_instance_hierarchy" group="fxml_loader">Note that the output of an <span class="code">FXMLLoader#load()</span> operation is an instance hierarchy that reflects the actual named classes in the document, not <span class="code">org.w3c.dom</span> nodes representing those classes.</assert> Internally, <span class="code">FXMLLoader</span> uses the <span class="code">javax.xml.stream</span> API (also known as the <i>Streaming API for XML</i>, or <i>StAX</i>) to load an FXML document. StAX is an extremely efficient event-based XML parsing API that is conceptually similar to its W3C predecessor, SAX. It allows an FXML document to be processed in a single pass, rather than loaded into an intermediate DOM structure and then post-processed.</p>
 
 <h3><a name="custom_components">Custom Components</a></h3>
-<p>The <span class="code">setRoot()</span> and <span class="code">setController()</span> methods of <span class="code">FXMLLoader</span> allow a caller to inject document root and controller values, respectively, into the document namespace, rather than delegating creation of these values to <span class="code">FXMLLoader</span> itself. This allows a developer to easily create reusable controls that are internally implemented using markup, but (from an API perspective) appear identically to controls implemented programmatically.</p>
+<p>The <assert id="loader_setRoot" group="fxml_loader"><span class="code">setRoot()</span></assert> and <assert id="loader_setController" group="fxml_loader"><span class="code">setController()</span></assert> methods of <span class="code">FXMLLoader</span> allow a caller to inject document root and controller values, respectively, into the document namespace, rather than delegating creation of these values to <span class="code">FXMLLoader</span> itself. This allows a developer to easily create reusable controls that are internally implemented using markup, but (from an API perspective) appear identically to controls implemented programmatically.</p>
 
 <p>For example, the following markup defines the structure of a simple custom control containing a <span class="code">TextField</span> and a <span class="code">Button</span> instance. The root container is defined as an instance of <span class="code">javafx.scene.layout.VBox</span>:</p>
 
@@ -942,7 +947,7 @@
 &lt;/fx:root&gt;
 </pre>
 
-<p>As mentioned earlier, the <span class="code">&lt;fx:root&gt;</span> tag creates a reference to a previously defined root element. The value of this element is obtained by calling the <span class="code">getRoot()</span> method of <span class="code">FXMLLoader</span>. Prior to calling <span class="code">load()</span>, the caller must specify this value via a call to <span class="code">setRoot()</span>. The caller may similarly provide a value for the document's controller by calling <span class="code">setController()</span>, which sets the value that will be used as the document's controller when the document is read. These two methods are commonly used together when creating custom FXML-based components.</p>
+<p>As mentioned earlier, the <span class="code">&lt;fx:root&gt;</span> tag creates a reference to a previously defined root element. The value of this element is obtained by calling the <span class="code">getRoot()</span> method of <span class="code">FXMLLoader</span>. <assert id="loader_setRoot_sequence" group="fxml_loader">Prior to calling <span class="code">load()</span>, the caller must specify this value via a call to <span class="code">setRoot()</span></assert>. <assert id="loader_setController_sequence" group="fxml_loader">The caller may similarly provide a value for the document's controller by calling <span class="code">setController()</span>, which sets the value that will be used as the document's controller when the document is read</assert>. These two methods are commonly used together when creating custom FXML-based components.</p>
 
 <p>In the following example, the <span class="code">CustomControl</span> class extends <span class="code">VBox</span> (the type declared by the <span class="code">&lt;fx:root&gt;</span> element), and sets itself as both the root and controller of the FXML document in its constructor. When the document is loaded, the contents of <span class="code">CustomControl</span> will be populated with the contents of the previous FXML document:</p>
 
--- a/javafx-fxml/test/javafx/fxml/RT_14880.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,253 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.util.HashMap;
-
-import org.junit.Test;
-
-import com.sun.javafx.fxml.expression.Expression;
-import com.sun.javafx.fxml.expression.KeyPath;
-
-import static com.sun.javafx.fxml.expression.Expression.*;
-import static org.junit.Assert.*;
-
-public class RT_14880 {
-    @Test
-    public void testExpression() {
-        Expression add = add(3, 4);
-        assertEquals(add.evaluate(null), 7);
-
-        Expression subtract = subtract(5, 2);
-        assertEquals(subtract.evaluate(null), 3);
-
-        Expression multiply = multiply(add, subtract);
-        assertEquals(multiply.evaluate(null), 21);
-
-        Expression divide = divide(multiply, 3);
-        assertEquals(divide.evaluate(null), 7);
-
-        Expression concatenate = add("abc", "def");
-        assertEquals(concatenate.evaluate(null), "abcdef");
-
-        assertEquals(greaterThan(divide, 3).evaluate(null), true);
-        assertEquals(greaterThan(divide, 7).evaluate(null), false);
-        assertEquals(greaterThanOrEqualTo(divide, 7).evaluate(null), true);
-
-        assertEquals(lessThan(divide, 9).evaluate(null), true);
-        assertEquals(lessThan(divide, 7).evaluate(null), false);
-        assertEquals(lessThanOrEqualTo(divide, 7).evaluate(null), true);
-
-        assertEquals(equalTo("abcd", "abcd").evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression1() {
-        Expression expression = valueOf("1 + 2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 3);
-    }
-
-    @Test
-    public void testParseExpression2a() {
-        Expression expression = valueOf("3 + 4 * 2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
-    }
-
-    @Test
-    public void testParseExpression2b() {
-        Expression expression = valueOf("3 + (4 * 2)");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
-    }
-
-    @Test
-    public void testParseExpression2c() {
-        Expression expression = valueOf("(3 + 4) * 2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 14);
-    }
-
-    @Test
-    public void testParseExpression3a() {
-        Expression expression = valueOf("'abc' == 'abc'");
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression3b() {
-        Expression expression = valueOf("'abc' != 'abc'");
-        assertEquals(expression.evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression3c() {
-        Expression expression = valueOf("'abc' == 'def'");
-        assertEquals(expression.evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression3d() {
-        Expression expression = valueOf("'abc' != 'def'");
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression3e() {
-        Expression expression = valueOf("3 > 2");
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression3f() {
-        Expression expression = valueOf("3 < 2");
-        assertEquals(expression.evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression4() {
-        assertEquals(valueOf("null").evaluate(null), null);
-        assertEquals(valueOf("true").evaluate(null), true);
-        assertEquals(valueOf("false").evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression5() {
-        HashMap<String, Object> namespace = new HashMap<String, Object>();
-
-        HashMap<String, Object> a = new HashMap<String, Object>();
-        namespace.put("a", a);
-
-        HashMap<String, Object> b = new HashMap<String, Object>();
-        a.put("b", b);
-
-        b.put("c", 5);
-
-        String path = "a['b'].c";
-
-        Expression expression = valueOf(path);
-
-        System.out.println(expression + " = " + expression.evaluate(namespace));
-        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 5);
-
-        expression = valueOf("3 * " + path + " + 2");
-        System.out.println(expression + " = " + expression.evaluate(namespace));
-        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 17);
-
-        set(namespace, KeyPath.parse(path), 10);
-        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 32);
-
-        expression = valueOf("nu['b'].c");
-        System.out.println(expression + " = " + expression.evaluate(namespace));
-        assertEquals(expression.evaluate(namespace), null);
-    }
-
-    @Test
-    public void testParseExpression6() {
-        Expression expression = valueOf("-2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), -2);
-
-        expression = valueOf("3 + -2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 1);
-        System.out.println(expression + " = " + expression.evaluate(null));
-    }
-
-    @Test
-    public void testParseExpression6a() {
-        Expression expression = valueOf("--2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 2);
-    }
-
-    @Test
-    public void testParseExpression7() {
-        Expression expression = valueOf("!false");
-        assertEquals(expression.evaluate(null), true);
-
-        expression = valueOf("true && !false");
-        System.out.println(expression + " = " + expression.evaluate(null));
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression7a() {
-        Expression expression = valueOf("!!false");
-        assertEquals(expression.evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression8a() {
-        Expression expression = valueOf("\"a\" + \"b\"");
-        assertEquals(expression.evaluate(null), "ab");
-    }
-
-    @Test
-    public void testParseExpression8b() {
-        Expression expression = valueOf("'a' + 'b'");
-        assertEquals(expression.evaluate(null), "ab");
-    }
-
-    @Test
-    public void testParseExpression8c() {
-        Expression expression = valueOf("'1' + 2");
-        assertEquals(expression.evaluate(null), "12");
-    }
-
-    @Test
-    public void testParseExpression8d() {
-        Expression expression = valueOf("1 + '2'");
-        assertEquals(expression.evaluate(null), "12");
-    }
-
-    @Test
-    public void testParseExpression8e() {
-        Expression expression = valueOf("1 + '2' == '12'");
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression8f() {
-        Expression expression = valueOf("1 + 2 + ' fiddlers'");
-        assertEquals(expression.evaluate(null), "3 fiddlers");
-    }
-
-    @Test
-    public void testParseExpression8g() {
-        Expression expression = valueOf("'fiddlers ' + 1 + 2");
-        assertEquals(expression.evaluate(null), "fiddlers 12");
-    }
-
-    @Test
-    public void testMarkup() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_14880.fxml"));
-        fxmlLoader.load();
-
-        RT_14880Controller controller = (RT_14880Controller)fxmlLoader.getController();
-
-        Widget childWidget1 = (Widget)fxmlLoader.getNamespace().get("childWidget1");
-        assertEquals(childWidget1.isEnabled(), false);
-
-        controller.setPercentage(0.85);
-        assertEquals(childWidget1.isEnabled(), true);
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_14880Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,253 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import java.util.HashMap;
+
+import org.junit.Test;
+
+import com.sun.javafx.fxml.expression.Expression;
+import com.sun.javafx.fxml.expression.KeyPath;
+
+import static com.sun.javafx.fxml.expression.Expression.*;
+import static org.junit.Assert.*;
+
+public class RT_14880Test {
+    @Test
+    public void testExpression() {
+        Expression add = add(3, 4);
+        assertEquals(add.evaluate(null), 7);
+
+        Expression subtract = subtract(5, 2);
+        assertEquals(subtract.evaluate(null), 3);
+
+        Expression multiply = multiply(add, subtract);
+        assertEquals(multiply.evaluate(null), 21);
+
+        Expression divide = divide(multiply, 3);
+        assertEquals(divide.evaluate(null), 7);
+
+        Expression concatenate = add("abc", "def");
+        assertEquals(concatenate.evaluate(null), "abcdef");
+
+        assertEquals(greaterThan(divide, 3).evaluate(null), true);
+        assertEquals(greaterThan(divide, 7).evaluate(null), false);
+        assertEquals(greaterThanOrEqualTo(divide, 7).evaluate(null), true);
+
+        assertEquals(lessThan(divide, 9).evaluate(null), true);
+        assertEquals(lessThan(divide, 7).evaluate(null), false);
+        assertEquals(lessThanOrEqualTo(divide, 7).evaluate(null), true);
+
+        assertEquals(equalTo("abcd", "abcd").evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression1() {
+        Expression expression = valueOf("1 + 2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 3);
+    }
+
+    @Test
+    public void testParseExpression2a() {
+        Expression expression = valueOf("3 + 4 * 2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
+    }
+
+    @Test
+    public void testParseExpression2b() {
+        Expression expression = valueOf("3 + (4 * 2)");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
+    }
+
+    @Test
+    public void testParseExpression2c() {
+        Expression expression = valueOf("(3 + 4) * 2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 14);
+    }
+
+    @Test
+    public void testParseExpression3a() {
+        Expression expression = valueOf("'abc' == 'abc'");
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression3b() {
+        Expression expression = valueOf("'abc' != 'abc'");
+        assertEquals(expression.evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression3c() {
+        Expression expression = valueOf("'abc' == 'def'");
+        assertEquals(expression.evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression3d() {
+        Expression expression = valueOf("'abc' != 'def'");
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression3e() {
+        Expression expression = valueOf("3 > 2");
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression3f() {
+        Expression expression = valueOf("3 < 2");
+        assertEquals(expression.evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression4() {
+        assertEquals(valueOf("null").evaluate(null), null);
+        assertEquals(valueOf("true").evaluate(null), true);
+        assertEquals(valueOf("false").evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression5() {
+        HashMap<String, Object> namespace = new HashMap<String, Object>();
+
+        HashMap<String, Object> a = new HashMap<String, Object>();
+        namespace.put("a", a);
+
+        HashMap<String, Object> b = new HashMap<String, Object>();
+        a.put("b", b);
+
+        b.put("c", 5);
+
+        String path = "a['b'].c";
+
+        Expression expression = valueOf(path);
+
+        System.out.println(expression + " = " + expression.evaluate(namespace));
+        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 5);
+
+        expression = valueOf("3 * " + path + " + 2");
+        System.out.println(expression + " = " + expression.evaluate(namespace));
+        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 17);
+
+        set(namespace, KeyPath.parse(path), 10);
+        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 32);
+
+        expression = valueOf("nu['b'].c");
+        System.out.println(expression + " = " + expression.evaluate(namespace));
+        assertEquals(expression.evaluate(namespace), null);
+    }
+
+    @Test
+    public void testParseExpression6() {
+        Expression expression = valueOf("-2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), -2);
+
+        expression = valueOf("3 + -2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 1);
+        System.out.println(expression + " = " + expression.evaluate(null));
+    }
+
+    @Test
+    public void testParseExpression6a() {
+        Expression expression = valueOf("--2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 2);
+    }
+
+    @Test
+    public void testParseExpression7() {
+        Expression expression = valueOf("!false");
+        assertEquals(expression.evaluate(null), true);
+
+        expression = valueOf("true && !false");
+        System.out.println(expression + " = " + expression.evaluate(null));
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression7a() {
+        Expression expression = valueOf("!!false");
+        assertEquals(expression.evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression8a() {
+        Expression expression = valueOf("\"a\" + \"b\"");
+        assertEquals(expression.evaluate(null), "ab");
+    }
+
+    @Test
+    public void testParseExpression8b() {
+        Expression expression = valueOf("'a' + 'b'");
+        assertEquals(expression.evaluate(null), "ab");
+    }
+
+    @Test
+    public void testParseExpression8c() {
+        Expression expression = valueOf("'1' + 2");
+        assertEquals(expression.evaluate(null), "12");
+    }
+
+    @Test
+    public void testParseExpression8d() {
+        Expression expression = valueOf("1 + '2'");
+        assertEquals(expression.evaluate(null), "12");
+    }
+
+    @Test
+    public void testParseExpression8e() {
+        Expression expression = valueOf("1 + '2' == '12'");
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression8f() {
+        Expression expression = valueOf("1 + 2 + ' fiddlers'");
+        assertEquals(expression.evaluate(null), "3 fiddlers");
+    }
+
+    @Test
+    public void testParseExpression8g() {
+        Expression expression = valueOf("'fiddlers ' + 1 + 2");
+        assertEquals(expression.evaluate(null), "fiddlers 12");
+    }
+
+    @Test
+    public void testMarkup() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_14880.fxml"));
+        fxmlLoader.load();
+
+        RT_14880Controller controller = (RT_14880Controller)fxmlLoader.getController();
+
+        Widget childWidget1 = (Widget)fxmlLoader.getNamespace().get("childWidget1");
+        assertEquals(childWidget1.isEnabled(), false);
+
+        controller.setPercentage(0.85);
+        assertEquals(childWidget1.isEnabled(), true);
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_15524.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.util.Arrays;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_15524 {
-    @Test
-    public void testListAndArray() throws IOException {
-        Widget widget = FXMLLoader.load(getClass().getResource("rt_15524.fxml"));
-
-        assertEquals(widget.getStyles(), Arrays.asList(new String[]{"a", "b", "c"}));
-        assertTrue(Arrays.equals(widget.getRatios(), new float[] {1.0f, 2.0f, 3.0f}));
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_15524Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import java.util.Arrays;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_15524Test {
+    @Test
+    public void testListAndArray() throws IOException {
+        Widget widget = FXMLLoader.load(getClass().getResource("rt_15524.fxml"));
+
+        assertEquals(widget.getStyles(), Arrays.asList(new String[]{"a", "b", "c"}));
+        assertTrue(Arrays.equals(widget.getRatios(), new float[] {1.0f, 2.0f, 3.0f}));
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_16722.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_16722 {
-    @Test
-    public void testControllerInheritance() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_16722.fxml"));
-
-        fxmlLoader.load();
-        RT_16722ControllerB controller = (RT_16722ControllerB)fxmlLoader.getController();
-
-        assertEquals(controller.getRoot().getName(), controller.getRootName());
-        assertEquals(controller.getChild().getName(), controller.getChildName());
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_16722Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_16722Test {
+    @Test
+    public void testControllerInheritance() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_16722.fxml"));
+
+        fxmlLoader.load();
+        RT_16722ControllerB controller = (RT_16722ControllerB)fxmlLoader.getController();
+
+        assertEquals(controller.getRoot().getName(), controller.getRootName());
+        assertEquals(controller.getChild().getName(), controller.getChildName());
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_16724.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class RT_16724 {
-    @Test
-    public void testControllerFactory() throws IOException {
-        FXMLLoader.load(getClass().getResource("rt_16724.fxml"), null, null,
-            new RT_16724ControllerFactory());
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_16724Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+public class RT_16724Test {
+    @Test
+    public void testControllerFactory() throws IOException {
+        FXMLLoader.load(getClass().getResource("rt_16724.fxml"), null, null,
+            new RT_16724ControllerFactory());
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_16815.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.util.ResourceBundle;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_16815 {
-    @Test
-    public void testControllerFactory() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_16815.fxml"),
-            ResourceBundle.getBundle("javafx/fxml/rt_16815"), null,
-            new RT_16815ControllerFactory());
-
-        Widget widget = (Widget)fxmlLoader.load();
-        assertEquals(widget.getName(), "My Widget");
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_16815Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import java.util.ResourceBundle;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_16815Test {
+    @Test
+    public void testControllerFactory() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_16815.fxml"),
+            ResourceBundle.getBundle("javafx/fxml/rt_16815"), null,
+            new RT_16815ControllerFactory());
+
+        Widget widget = (Widget)fxmlLoader.load();
+        assertEquals(widget.getName(), "My Widget");
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_16977.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_16977 {
-    @Test
-    public void testEmptyArrayProperty() throws Exception {
-        Widget widget = FXMLLoader.load(getClass().getResource("rt_16977.fxml"));
-        assertEquals(widget.getRatios().length, 0);
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_16977Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_16977Test {
+    @Test
+    public void testEmptyArrayProperty() throws Exception {
+        Widget widget = FXMLLoader.load(getClass().getResource("rt_16977.fxml"));
+        assertEquals(widget.getRatios().length, 0);
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_17646.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_17646 {
-    @Test(expected=UnsupportedOperationException.class)
-    public void testBidirectionalBinding() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_17646.fxml"));
-
-        Widget widget = (Widget)fxmlLoader.load();
-        RT_17646Controller controller = (RT_17646Controller)fxmlLoader.getController();
-        assertEquals(widget.getName(), controller.getName());
-
-        String name1 = "efgh";
-        controller.setName(name1);
-        assertEquals(widget.getName(), name1);
-
-        String name2 = "ijkl";
-        widget.setName(name2);
-        assertEquals(controller.getName(), name2);
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_17646Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_17646Test {
+    @Test(expected=UnsupportedOperationException.class)
+    public void testBidirectionalBinding() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_17646.fxml"));
+
+        Widget widget = (Widget)fxmlLoader.load();
+        RT_17646Controller controller = (RT_17646Controller)fxmlLoader.getController();
+        assertEquals(widget.getName(), controller.getName());
+
+        String name1 = "efgh";
+        controller.setName(name1);
+        assertEquals(widget.getName(), name1);
+
+        String name2 = "ijkl";
+        widget.setName(name2);
+        assertEquals(controller.getName(), name2);
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_17714.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_17714 {
-    @Test
-    public void testListEvents() throws Exception {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_17714.fxml"));
-        Widget widget = (Widget)fxmlLoader.load();
-        RT_17714Controller controller = (RT_17714Controller)fxmlLoader.getController();
-
-        assertEquals(widget.getChildren(), controller.getChildren());
-
-        // Test add
-        widget.getChildren().add(new Widget("Widget 4"));
-        widget.getChildren().add(new Widget("Widget 5"));
-
-        assertEquals(widget.getChildren(), controller.getChildren());
-
-        // Test update
-        widget.getChildren().set(0, new Widget("Widget 1a"));
-        widget.getChildren().set(2, new Widget("Widget 3a"));
-
-        assertEquals(widget.getChildren(), controller.getChildren());
-
-        // Test remove
-        widget.getChildren().remove(1);
-
-        assertEquals(widget.getChildren(), controller.getChildren());
-    }
-
-    @Test
-    public void testMapEvents() throws Exception {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_17714.fxml"));
-        Widget widget = (Widget)fxmlLoader.load();
-        RT_17714Controller controller = (RT_17714Controller)fxmlLoader.getController();
-
-        assertEquals(widget.getProperties(), controller.getProperties());
-
-        // Test add
-        widget.getProperties().put("d", 1000);
-        widget.getProperties().put("e", 10000);
-
-        assertEquals(widget.getProperties(), controller.getProperties());
-
-        // Test update
-        widget.getProperties().put("a", 2);
-        widget.getProperties().put("c", 200);
-
-        assertEquals(widget.getProperties(), controller.getProperties());
-
-        // Test remove
-        widget.getProperties().remove("b");
-
-        assertEquals(widget.getProperties(), controller.getProperties());
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_17714Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_17714Test {
+    @Test
+    public void testListEvents() throws Exception {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_17714.fxml"));
+        Widget widget = (Widget)fxmlLoader.load();
+        RT_17714Controller controller = (RT_17714Controller)fxmlLoader.getController();
+
+        assertEquals(widget.getChildren(), controller.getChildren());
+
+        // Test add
+        widget.getChildren().add(new Widget("Widget 4"));
+        widget.getChildren().add(new Widget("Widget 5"));
+
+        assertEquals(widget.getChildren(), controller.getChildren());
+
+        // Test update
+        widget.getChildren().set(0, new Widget("Widget 1a"));
+        widget.getChildren().set(2, new Widget("Widget 3a"));
+
+        assertEquals(widget.getChildren(), controller.getChildren());
+
+        // Test remove
+        widget.getChildren().remove(1);
+
+        assertEquals(widget.getChildren(), controller.getChildren());
+    }
+
+    @Test
+    public void testMapEvents() throws Exception {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_17714.fxml"));
+        Widget widget = (Widget)fxmlLoader.load();
+        RT_17714Controller controller = (RT_17714Controller)fxmlLoader.getController();
+
+        assertEquals(widget.getProperties(), controller.getProperties());
+
+        // Test add
+        widget.getProperties().put("d", 1000);
+        widget.getProperties().put("e", 10000);
+
+        assertEquals(widget.getProperties(), controller.getProperties());
+
+        // Test update
+        widget.getProperties().put("a", 2);
+        widget.getProperties().put("c", 200);
+
+        assertEquals(widget.getProperties(), controller.getProperties());
+
+        // Test remove
+        widget.getProperties().remove("b");
+
+        assertEquals(widget.getProperties(), controller.getProperties());
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_18046.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import com.sun.javafx.fxml.LoadListener;
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_18046 {
-    private String scriptValue = null;
-
-    @Test
-    @SuppressWarnings("deprecation")
-    public void testStaticScriptLoad() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18046.fxml"));
-        fxmlLoader.setStaticLoad(true);
-        fxmlLoader.setLoadListener(new LoadListener() {
-            private boolean script = false;
-
-            @Override
-            public void readImportProcessingInstruction(String target) {
-            }
-
-            @Override
-            public void readLanguageProcessingInstruction(String language) {
-            }
-
-            @Override
-            public void readComment(String comment) {
-            }
-
-            @Override
-            public void beginInstanceDeclarationElement(Class<?> type) {
-            }
-
-            @Override
-            public void beginUnknownTypeElement(String name) {
-            }
-
-            @Override
-            public void beginIncludeElement() {
-            }
-
-            @Override
-            public void beginReferenceElement() {
-            }
-
-            @Override
-            public void beginCopyElement() {
-            }
-
-            @Override
-            public void beginRootElement() {
-            }
-
-            @Override
-            public void beginPropertyElement(String name, Class<?> sourceType) {
-            }
-
-            @Override
-            public void beginUnknownStaticPropertyElement(String name) {
-            }
-
-            @Override
-            public void beginScriptElement() {
-                script = true;
-            }
-
-            @Override
-            public void beginDefineElement() {
-            }
-
-            @Override
-            public void readInternalAttribute(String name, String value) {
-            }
-
-            @Override
-            public void readPropertyAttribute(String name, Class<?> sourceType, String value) {
-            }
-
-            @Override
-            public void readUnknownStaticPropertyAttribute(String name, String value) {
-            }
-
-            @Override
-            public void readEventHandlerAttribute(String name, String value) {
-            }
-
-            @Override
-            public void endElement(Object value) {
-                if (script) {
-                    scriptValue = value.toString();
-                }
-
-                script = false;
-            }
-        });
-
-        fxmlLoader.load();
-        assertNotNull(scriptValue);
-    }
-}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_18046Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import com.sun.javafx.fxml.LoadListener;
+import java.io.IOException;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_18046Test {
+    private String scriptValue = null;
+
+    @Test
+    @SuppressWarnings("deprecation")
+    public void testStaticScriptLoad() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18046.fxml"));
+        fxmlLoader.setStaticLoad(true);
+        fxmlLoader.setLoadListener(new LoadListener() {
+            private boolean script = false;
+
+            @Override
+            public void readImportProcessingInstruction(String target) {
+            }
+
+            @Override
+            public void readLanguageProcessingInstruction(String language) {
+            }
+
+            @Override
+            public void readComment(String comment) {
+            }
+
+            @Override
+            public void beginInstanceDeclarationElement(Class<?> type) {
+            }
+
+            @Override
+            public void beginUnknownTypeElement(String name) {
+            }
+
+            @Override
+            public void beginIncludeElement() {
+            }
+
+            @Override
+            public void beginReferenceElement() {
+            }
+
+            @Override
+            public void beginCopyElement() {
+            }
+
+            @Override
+            public void beginRootElement() {
+            }
+
+            @Override
+            public void beginPropertyElement(String name, Class<?> sourceType) {
+            }
+
+            @Override
+            public void beginUnknownStaticPropertyElement(String name) {
+            }
+
+            @Override
+            public void beginScriptElement() {
+                script = true;
+            }
+
+            @Override
+            public void beginDefineElement() {
+            }
+
+            @Override
+            public void readInternalAttribute(String name, String value) {
+            }
+
+            @Override
+            public void readPropertyAttribute(String name, Class<?> sourceType, String value) {
+            }
+
+            @Override
+            public void readUnknownStaticPropertyAttribute(String name, String value) {
+            }
+
+            @Override
+            public void readEventHandlerAttribute(String name, String value) {
+            }
+
+            @Override
+            public void endElement(Object value) {
+                if (script) {
+                    scriptValue = value.toString();
+                }
+
+                script = false;
+            }
+        });
+
+        fxmlLoader.load();
+        assertNotNull(scriptValue);
+    }
+}
\ No newline at end of file
--- a/javafx-fxml/test/javafx/fxml/RT_18218.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import com.sun.javafx.fxml.LoadListener;
-import java.io.IOException;
-import java.util.Map;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_18218 {
-    @Test
-    @SuppressWarnings({"unchecked", "deprecation"})
-    public void testStaticScriptLoad() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18218.fxml"));
-        fxmlLoader.setStaticLoad(true);
-        fxmlLoader.setLoadListener(new LoadListener() {
-            private String unknownStaticPropertyElementName = null;
-
-            @Override
-            public void readImportProcessingInstruction(String target) {
-            }
-
-            @Override
-            public void readLanguageProcessingInstruction(String language) {
-            }
-
-            @Override
-            public void readComment(String comment) {
-            }
-
-            @Override
-            public void beginInstanceDeclarationElement(Class<?> type) {
-            }
-
-            @Override
-            public void beginUnknownTypeElement(String name) {
-            }
-
-            @Override
-            public void beginIncludeElement() {
-            }
-
-            @Override
-            public void beginReferenceElement() {
-            }
-
-            @Override
-            public void beginCopyElement() {
-            }
-
-            @Override
-            public void beginRootElement() {
-            }
-
-            @Override
-            public void beginPropertyElement(String name, Class<?> sourceType) {
-            }
-
-            @Override
-            public void beginUnknownStaticPropertyElement(String name) {
-                unknownStaticPropertyElementName = name;
-            }
-
-            @Override
-            public void beginScriptElement() {
-            }
-
-            @Override
-            public void beginDefineElement() {
-            }
-
-            @Override
-            public void readInternalAttribute(String name, String value) {
-            }
-
-            @Override
-            public void readPropertyAttribute(String name, Class<?> sourceType, String value) {
-            }
-
-            @Override
-            public void readUnknownStaticPropertyAttribute(String name, String value) {
-                assertEquals(name, "Gadget.bar");
-                assertEquals(value, "123456");
-            }
-
-            @Override
-            public void readEventHandlerAttribute(String name, String value) {
-            }
-
-            @Override
-            public void endElement(Object value) {
-                if (unknownStaticPropertyElementName != null) {
-                    if (unknownStaticPropertyElementName.equals("Gadget.bar")) {
-                        assertEquals(value, "abcdef");
-                    } else if (unknownStaticPropertyElementName.equals("Gadget.baz")) {
-                        assertEquals(value.getClass(), Widget.class);
-                    } else {
-                        throw new RuntimeException();
-                    }
-
-                    unknownStaticPropertyElementName = null;
-                }
-            }
-        });
-
-        fxmlLoader.load();
-
-        Map<String, Object> gadget = (Map<String, Object>)fxmlLoader.getNamespace().get("gadget");
-        assertNotNull(gadget);
-
-        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
-        assertNotNull(widget2);
-        assertEquals(widget2.getName(), "Widget 2");
-    }
-}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_18218Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import com.sun.javafx.fxml.LoadListener;
+import java.io.IOException;
+import java.util.Map;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_18218Test {
+    @Test
+    @SuppressWarnings({"unchecked", "deprecation"})
+    public void testStaticScriptLoad() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18218.fxml"));
+        fxmlLoader.setStaticLoad(true);
+        fxmlLoader.setLoadListener(new LoadListener() {
+            private String unknownStaticPropertyElementName = null;
+
+            @Override
+            public void readImportProcessingInstruction(String target) {
+            }
+
+            @Override
+            public void readLanguageProcessingInstruction(String language) {
+            }
+
+            @Override
+            public void readComment(String comment) {
+            }
+
+            @Override
+            public void beginInstanceDeclarationElement(Class<?> type) {
+            }
+
+            @Override
+            public void beginUnknownTypeElement(String name) {
+            }
+
+            @Override
+            public void beginIncludeElement() {
+            }
+
+            @Override
+            public void beginReferenceElement() {
+            }
+
+            @Override
+            public void beginCopyElement() {
+            }
+
+            @Override
+            public void beginRootElement() {
+            }
+
+            @Override
+            public void beginPropertyElement(String name, Class<?> sourceType) {
+            }
+
+            @Override
+            public void beginUnknownStaticPropertyElement(String name) {
+                unknownStaticPropertyElementName = name;
+            }
+
+            @Override
+            public void beginScriptElement() {
+            }
+
+            @Override
+            public void beginDefineElement() {
+            }
+
+            @Override
+            public void readInternalAttribute(String name, String value) {
+            }
+
+            @Override
+            public void readPropertyAttribute(String name, Class<?> sourceType, String value) {
+            }
+
+            @Override
+            public void readUnknownStaticPropertyAttribute(String name, String value) {
+                assertEquals(name, "Gadget.bar");
+                assertEquals(value, "123456");
+            }
+
+            @Override
+            public void readEventHandlerAttribute(String name, String value) {
+            }
+
+            @Override
+            public void endElement(Object value) {
+                if (unknownStaticPropertyElementName != null) {
+                    if (unknownStaticPropertyElementName.equals("Gadget.bar")) {
+                        assertEquals(value, "abcdef");
+                    } else if (unknownStaticPropertyElementName.equals("Gadget.baz")) {
+                        assertEquals(value.getClass(), Widget.class);
+                    } else {
+                        throw new RuntimeException();
+                    }
+
+                    unknownStaticPropertyElementName = null;
+                }
+            }
+        });
+
+        fxmlLoader.load();
+
+        Map<String, Object> gadget = (Map<String, Object>)fxmlLoader.getNamespace().get("gadget");
+        assertNotNull(gadget);
+
+        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
+        assertNotNull(widget2);
+        assertEquals(widget2.getName(), "Widget 2");
+    }
+}
\ No newline at end of file
--- a/javafx-fxml/test/javafx/fxml/RT_18680.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_18680 {
-    @Test
-    public void testEscapeSequences() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18680.fxml"));
-        fxmlLoader.load();
-
-        Widget widget1 = (Widget)fxmlLoader.getNamespace().get("widget1");
-        assertEquals(widget1.getName(), fxmlLoader.getNamespace().get("abc"));
-
-        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
-        assertEquals(widget2.getName(), "$abc");
-
-        Widget widget3 = (Widget)fxmlLoader.getNamespace().get("widget3");
-        assertEquals(widget3.getName(), "$abc");
-
-        Widget widget4 = (Widget)fxmlLoader.getNamespace().get("widget4");
-        assertEquals(widget4.getName(), "\\abc");
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_18680Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_18680Test {
+    @Test
+    public void testEscapeSequences() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18680.fxml"));
+        fxmlLoader.load();
+
+        Widget widget1 = (Widget)fxmlLoader.getNamespace().get("widget1");
+        assertEquals(widget1.getName(), fxmlLoader.getNamespace().get("abc"));
+
+        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
+        assertEquals(widget2.getName(), "$abc");
+
+        Widget widget3 = (Widget)fxmlLoader.getNamespace().get("widget3");
+        assertEquals(widget3.getName(), "$abc");
+
+        Widget widget4 = (Widget)fxmlLoader.getNamespace().get("widget4");
+        assertEquals(widget4.getName(), "\\abc");
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_18933.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class RT_18933 {
-    @Test(expected=IllegalArgumentException.class)
-    public void testDefaultListProperty() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18933.fxml"));
-        fxmlLoader.load();
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_18933Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+public class RT_18933Test {
+    @Test(expected=IllegalArgumentException.class)
+    public void testDefaultListProperty() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18933.fxml"));
+        fxmlLoader.load();
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_19008.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class RT_19008 {
-    @Test(expected=NullPointerException.class)
-    public void testMissingResource() throws IOException {
-        FXMLLoader.load(getClass().getResource("rt_19008.fxml"));
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_19008Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+public class RT_19008Test {
+    @Test(expected=NullPointerException.class)
+    public void testMissingResource() throws IOException {
+        FXMLLoader.load(getClass().getResource("rt_19008.fxml"));
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_19112.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_19112 {
-    @Test
-    public void testStaticProperty() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_19112.fxml"));
-        fxmlLoader.load();
-
-        Widget widget1 = (Widget)fxmlLoader.getNamespace().get("widget1");
-        assertEquals(Widget.getAlignment(widget1), Alignment.LEFT);
-
-        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
-        assertEquals(Widget.getAlignment(widget2), Alignment.RIGHT);
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_19112Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_19112Test {
+    @Test
+    public void testStaticProperty() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_19112.fxml"));
+        fxmlLoader.load();
+
+        Widget widget1 = (Widget)fxmlLoader.getNamespace().get("widget1");
+        assertEquals(Widget.getAlignment(widget1), Alignment.LEFT);
+
+        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
+        assertEquals(Widget.getAlignment(widget2), Alignment.RIGHT);
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_19139.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.util.Arrays;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_19139 {
-    @Test
-    public void testStaticProperty() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_19139.fxml"));
-        Widget widget = (Widget)fxmlLoader.load();
-
-        assertEquals(widget.getValues(), Arrays.asList(new String[] {"One", "Two", "Three"}));
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_19139Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import java.util.Arrays;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_19139Test {
+    @Test
+    public void testStaticProperty() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_19139.fxml"));
+        Widget widget = (Widget)fxmlLoader.load();
+
+        assertEquals(widget.getValues(), Arrays.asList(new String[] {"One", "Two", "Three"}));
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_19228.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_19228 {
-    @Test
-    public void testConstantValue() throws IOException {
-        Widget widget = (Widget)FXMLLoader.load(getClass().getResource("rt_19228.fxml"));
-        assertEquals(widget.getNumber(), Widget.TEN);
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_19228Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_19228Test {
+    @Test
+    public void testConstantValue() throws IOException {
+        Widget widget = (Widget)FXMLLoader.load(getClass().getResource("rt_19228.fxml"));
+        assertEquals(widget.getNumber(), Widget.TEN);
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_19329.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class RT_19329 {
-    @Test(expected=IOException.class)
-    public void testIncludeException() throws IOException {
-        FXMLLoader.load(getClass().getResource("rt_19329.fxml"));
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_19329Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+public class RT_19329Test {
+    @Test(expected=IOException.class)
+    public void testIncludeException() throws IOException {
+        FXMLLoader.load(getClass().getResource("rt_19329.fxml"));
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_19870.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_19870 {
-    @Test
-    public void testCustomWidget() {
-        MyWidget myWidget = new MyWidget();
-        assertTrue(myWidget.getChildWidgetEnabledChanged());
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_19870Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_19870Test {
+    @Test
+    public void testCustomWidget() {
+        MyWidget myWidget = new MyWidget();
+        assertTrue(myWidget.getChildWidgetEnabledChanged());
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_20082.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_20082 {
-    @Test
-    public void testInheritedClassLoader() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_20082.fxml"));
-        fxmlLoader.setClassLoader(new RT_20082ClassLoader());
-
-        fxmlLoader.load();
-        assertEquals(RT_20082ClassLoader.loadCount, 2);
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_20082Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_20082Test {
+    @Test
+    public void testInheritedClassLoader() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_20082.fxml"));
+        fxmlLoader.setClassLoader(new RT_20082ClassLoader());
+
+        fxmlLoader.load();
+        assertEquals(RT_20082ClassLoader.loadCount, 2);
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_20471.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ResourceBundle;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_20471 {
-    @Test
-    public void testControllerInjection() throws IOException {
-        URL location = getClass().getResource("rt_20471.fxml");
-        ResourceBundle resources = ResourceBundle.getBundle("javafx.fxml.rt_20471");
-        FXMLLoader fxmlLoader = new FXMLLoader(location, resources);
-
-        fxmlLoader.load();
-        RT_20471Controller controller = fxmlLoader.getController();
-        assertEquals(controller.getLocation(), location);
-        assertEquals(controller.getResources(), resources);
-        assertTrue(controller.isInitialized());
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_20471Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ResourceBundle;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_20471Test {
+    @Test
+    public void testControllerInjection() throws IOException {
+        URL location = getClass().getResource("rt_20471.fxml");
+        ResourceBundle resources = ResourceBundle.getBundle("javafx.fxml.rt_20471");
+        FXMLLoader fxmlLoader = new FXMLLoader(location, resources);
+
+        fxmlLoader.load();
+        RT_20471Controller controller = fxmlLoader.getController();
+        assertEquals(controller.getLocation(), location);
+        assertEquals(controller.getResources(), resources);
+        assertTrue(controller.isInitialized());
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_22971.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.net.URL;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_22971 {
-    @Test
-    public void testResourcesInjection() throws IOException {
-        URL location = getClass().getResource("rt_22971.fxml");
-        FXMLLoader fxmlLoader = new FXMLLoader(location);
-        fxmlLoader.load();
-        RT_22971Controller controller = fxmlLoader.getController();
-        assertEquals(controller.getFoo(), "bar");
-    }
-}
--- a/javafx-fxml/test/javafx/fxml/RT_22971Controller.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-fxml/test/javafx/fxml/RT_22971Controller.java	Tue Dec 04 09:37:33 2012 -0800
@@ -31,7 +31,7 @@
     private ResourceBundle resources;
 
     public RT_22971Controller() {
-        resources = ResourceBundle.getBundle(RT_22971.class.getPackage().getName()
+        resources = ResourceBundle.getBundle(RT_22971Test.class.getPackage().getName()
             + ".rt_22971");
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_22971Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+import java.net.URL;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_22971Test {
+    @Test
+    public void testResourcesInjection() throws IOException {
+        URL location = getClass().getResource("rt_22971.fxml");
+        FXMLLoader fxmlLoader = new FXMLLoader(location);
+        fxmlLoader.load();
+        RT_22971Controller controller = fxmlLoader.getController();
+        assertEquals(controller.getFoo(), "bar");
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_23413.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.fxml.FXMLLoader;
-
-import java.net.URL;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_23413 {
-    private static URL LOCATION = RT_23413.class.getResource("rt_23413.fxml");
-    private static final int COUNT = 500;
-
-    @Test
-    public void testTemplate() throws Exception {
-        assertTrue(testTemplate(true) < testTemplate(false));
-    }
-
-    private long testTemplate(boolean template) throws Exception {
-        FXMLLoader loader = new FXMLLoader(LOCATION);
-        loader.setTemplate(template);
-
-        long t0 = System.currentTimeMillis();
-        for (int i = 0; i < COUNT; i++) {
-            if (!template) {
-                loader.setRoot(null);
-            }
-
-            loader.load();
-        }
-
-        long t1 = System.currentTimeMillis();
-
-        long duration = t1 - t0;
-        long average = duration / COUNT;
-
-        System.out.printf("template:%b duration:%dms average:%d\n", template, duration, average);
-
-        return average;
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_23413Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.net.URL;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+public class RT_23413Test {
+    private static URL LOCATION = RT_23413Test.class.getResource("rt_23413.fxml");
+    private static final int COUNT = 500;
+    
+    @Test
+    public void testTemplate() throws Exception {
+        //warmup
+        System.out.println("Warmup ...");
+        testTemplate(false);
+        
+        System.out.println("Testing now ...");
+        assertTrue(testTemplate(true) < testTemplate(false));
+    }
+    
+    private long testTemplate(boolean template) throws Exception {
+        FXMLLoader loader = new FXMLLoader(LOCATION);
+        loader.setTemplate(template);
+
+        long t0 = System.currentTimeMillis();
+        for (int i = 0; i < COUNT; i++) {
+            if (!template) {
+                loader.setRoot(null);
+            }
+
+            loader.load();
+        }
+
+        long t1 = System.currentTimeMillis();
+
+        long duration = t1 - t0;
+        long average = duration / COUNT;
+
+        System.out.printf("template:%b duration:%dms average:%d\n", template, duration, average);
+
+        return duration;
+    }
+}
--- a/javafx-fxml/test/javafx/fxml/RT_24380.java	Thu Nov 29 22:12:44 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-
-import org.junit.Test;
-
-public class RT_24380 {
-    @Test
-    public void testProtectedInitializeMethod() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_24380.fxml"));
-        fxmlLoader.load();
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javafx-fxml/test/javafx/fxml/RT_24380Test.java	Tue Dec 04 09:37:33 2012 -0800
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javafx.fxml;
+
+import java.io.IOException;
+
+import org.junit.Test;
+
+public class RT_24380Test {
+    @Test
+    public void testProtectedInitializeMethod() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_24380.fxml"));
+        fxmlLoader.load();
+    }
+}
--- a/javafx-ui-common/src/com/sun/javafx/scene/text/TextLayout.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-common/src/com/sun/javafx/scene/text/TextLayout.java	Tue Dec 04 09:37:33 2012 -0800
@@ -17,7 +17,8 @@
     static final int FLAGS_HAS_COMPLEX      = 1 << 4;
     static final int FLAGS_HAS_EMBEDDED     = 1 << 5;
     static final int FLAGS_WRAPPED          = 1 << 6;
-    static final int FLAGS_LAST             = 1 << 7;
+    static final int FLAGS_RTL_BASE         = 1 << 7;
+    static final int FLAGS_LAST             = 1 << 8;
 
     static final int ANALYSIS_MASK = FLAGS_LAST - 1;
 
--- a/javafx-ui-common/src/javafx/animation/ParallelTransition.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-common/src/javafx/animation/ParallelTransition.java	Tue Dec 04 09:37:33 2012 -0800
@@ -123,7 +123,7 @@
             if (oldValue.doubleValue() * newValue.doubleValue() < 0) {
                 for (int i = 0; i < cachedChildren.length; ++i) {
                     Animation child = cachedChildren[i];
-                    child.setRate(rates[i] * Math.signum(newValue.doubleValue()));
+                    child.clipEnvelope.setRate(rates[i] * Math.signum(getCurrentRate()));
                 }
                 toggledRate = true;
             }
@@ -288,7 +288,7 @@
     private boolean startChild(Animation child, int index) {
         final boolean forceSync = forceChildSync[index];
         if (child.impl_startable(forceSync)) {
-            child.setRate(rates[index] * Math.signum(getCurrentRate()));
+            child.clipEnvelope.setRate(rates[index] * Math.signum(getCurrentRate()));
             child.impl_start(forceSync);
             forceChildSync[index] = false;
             return true;
@@ -351,7 +351,7 @@
     void impl_start(boolean forceSync) {
         super.impl_start(forceSync);
         toggledRate = false;
-        currentRateProperty().addListener(rateListener);
+        rateProperty().addListener(rateListener);
     }
 
     @Override
@@ -365,7 +365,7 @@
         if (childrenChanged) {
             setCycleDuration(computeCycleDuration());
         }
-        currentRateProperty().removeListener(rateListener);
+        rateProperty().removeListener(rateListener);
     }
 
 
@@ -453,7 +453,10 @@
      * @deprecated This is an internal API that is not intended for use and will be removed in the next version
      */
     @Deprecated
-    @Override public void impl_jumpTo(long currentTicks, long cycleTicks) {
+    @Override public void impl_jumpTo(long currentTicks, long cycleTicks, boolean forceJump) {
+        if (getStatus() == Status.STOPPED && !forceJump) {
+            return;
+        }
         impl_sync(false);
         final double frac = calculateFraction(currentTicks, cycleTicks);
         final long newTicks = Math.max(0, Math.min(getCachedInterpolator().interpolate(0, cycleTicks, frac), cycleTicks));
@@ -491,7 +494,6 @@
     }
     
     private long calcTimePulse(long ticks, int index) {
-        long r =  Math.round(ticks * Math.abs(rates[index])) -  offsetTicks[index];
-        return r > 0 ? r : 0;
+        return sub(ticks, offsetTicks[index]);
     }
 }
--- a/javafx-ui-common/src/javafx/animation/SequentialTransition.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-common/src/javafx/animation/SequentialTransition.java	Tue Dec 04 09:37:33 2012 -0800
@@ -130,7 +130,7 @@
             if (oldValue.doubleValue() * newValue.doubleValue() < 0) {
                 for (int i = 0; i < cachedChildren.length; ++i) {
                     Animation child = cachedChildren[i];
-                    child.setRate(rates[i] * Math.signum(newValue.doubleValue()));
+                    child.clipEnvelope.setRate(rates[i] * Math.signum(getCurrentRate()));
                 }
                 toggledRate = true;
             }
@@ -346,7 +346,7 @@
     void impl_start(boolean forceSync) {
         super.impl_start(forceSync);
         toggledRate = false;
-        currentRateProperty().addListener(rateListener);
+        rateProperty().addListener(rateListener);
         curIndex = (getCurrentRate() > 0) ? BEFORE : end;
         offsetTicks = 0L;
     }
@@ -385,13 +385,13 @@
         if (childrenChanged) {
             setCycleDuration(computeCycleDuration());
         }
-        currentRateProperty().removeListener(rateListener);
+        rateProperty().removeListener(rateListener);
     }
 
     private boolean startChild(Animation child, int index) {
         final boolean forceSync = forceChildSync[index];
         if (child.impl_startable(forceSync)) {
-            child.setRate(rates[index] * Math.signum(getCurrentRate()));
+            child.clipEnvelope.setRate(rates[index] * Math.signum(getCurrentRate()));
             child.impl_start(forceSync);
             forceChildSync[index] = false;
             return true;
@@ -585,7 +585,10 @@
         oldTicks = newTicks;
     }
 
-    @Override void impl_jumpTo(long currentTicks, long cycleTicks) {
+    @Override void impl_jumpTo(long currentTicks, long cycleTicks, boolean forceJump) {
+        if (getStatus() == Status.STOPPED && !forceJump) {
+            return;
+        }
         impl_sync(false);
         final Status status = getStatus();
         final double frac = calculateFraction(currentTicks, cycleTicks);
@@ -593,6 +596,7 @@
         final int oldIndex = curIndex;
         curIndex = findNewIndex(newTicks);
         final Animation newAnimation = cachedChildren[curIndex];
+        final double currentRate = getCurrentRate();
         if (curIndex != oldIndex) {
             if (status != Status.STOPPED) {
                 if ((oldIndex != BEFORE) && (oldIndex != end)) {
@@ -601,6 +605,15 @@
                         cachedChildren[oldIndex].impl_stop();
                     }
                 }
+                if (currentRate >= 0 && curIndex < oldIndex) {
+                    for (int i = oldIndex == end ? end - 1 : oldIndex; i > curIndex; --i) {
+                        cachedChildren[i].impl_jumpTo(0, durations[i], true);
+                    }
+                } else if (currentRate <= 0 && curIndex > oldIndex) {
+                    for (int i = oldIndex == BEFORE ? 0 : oldIndex; i < curIndex; ++i) {
+                        cachedChildren[i].impl_jumpTo(durations[i], durations[i], true);
+                    }
+                }
                 startChild(newAnimation, curIndex);
                 if (status == Status.PAUSED) {
                     newAnimation.impl_pause();
@@ -608,7 +621,7 @@
             }
         }
         // TODO: This does probably not work if animation is paused (getCurrentRate() == 0)
-        offsetTicks = (getCurrentRate() < 0)? sub(startTimes[curIndex+1], newTicks) : sub(newTicks, add(startTimes[curIndex], delays[curIndex]));
+        offsetTicks = (currentRate < 0)? sub(startTimes[curIndex+1], newTicks) : sub(newTicks, add(startTimes[curIndex], delays[curIndex]));
         newAnimation.jumpTo(toDuration(sub(newTicks, add(startTimes[curIndex], delays[curIndex])), rates[curIndex]));
         oldTicks = newTicks;
     }
@@ -622,7 +635,6 @@
     }
 
     private long calcTimePulse(long ticks) {
-         long r =  Math.round(ticks * Math.abs(rates[curIndex])) -  offsetTicks;
-        return r > 0 ? r : 0;
+        return sub(ticks, offsetTicks);
     }
 }
--- a/javafx-ui-common/src/javafx/animation/Transition.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-common/src/javafx/animation/Transition.java	Tue Dec 04 09:37:33 2012 -0800
@@ -212,8 +212,9 @@
     }
 
     @Override
-    void impl_jumpTo(long currentTicks, long cycleTicks) {
-        if (getStatus() != Status.STOPPED) {
+    void impl_jumpTo(long currentTicks, long cycleTicks, boolean forceJump) {
+        if (getStatus() != Status.STOPPED || forceJump) {
+            impl_sync(false);
             interpolate(calculateFraction(currentTicks, cycleTicks));
         }
     }
--- a/javafx-ui-common/src/javafx/scene/layout/BorderConverter.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-common/src/javafx/scene/layout/BorderConverter.java	Tue Dec 04 09:37:33 2012 -0800
@@ -37,7 +37,7 @@
 
 /**
  */
-public class BorderConverter extends StyleConverter<ParsedValue[], Border> {
+class BorderConverter extends StyleConverter<ParsedValue[], Border> {
 
     private static final BorderConverter BORDER_IMAGE_CONVERTER =
             new BorderConverter();
--- a/javafx-ui-common/src/javafx/scene/layout/Region.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-common/src/javafx/scene/layout/Region.java	Tue Dec 04 09:37:33 2012 -0800
@@ -1046,29 +1046,6 @@
         }
         return centerShape;
     }
-    /**
-     * Defines whether the shape is centered within the Region's width or height.
-     * {@code true} means the shape centered within the Region's width and height,
-     * {@code false} means the shape is positioned at its source position.
-     *
-     * @default true
-     * @css position-shape      true | false
-     */
-    private BooleanProperty cacheShape = null;
-    public final void setCacheShape(boolean value) { cacheShapeProperty().set(value); }
-    public final boolean isCacheShape() { return cacheShape == null ? true : cacheShape.get(); }
-    private BooleanProperty cacheShapeProperty() {
-        if (cacheShape == null) {
-            cacheShape = new StyleableBooleanProperty(true) {
-                @Override public Object getBean() { return Region.this; }
-                @Override public String getName() { return "cacheShape"; }
-                @Override public StyleableProperty getStyleableProperty() {
-                    return StyleableProperties.CACHE_SHAPE;
-                }
-            };
-        }
-        return cacheShape;
-    }
 
     /***************************************************************************
      *                                                                         *
@@ -2335,19 +2312,6 @@
             }
         };
 
-         private static final StyleableProperty<Region,Boolean> CACHE_SHAPE =
-             new StyleableProperty<Region,Boolean>("-fx-cache-shape",
-                 BooleanConverter.getInstance(), Boolean.TRUE){
-
-            @Override public boolean isSettable(Region node) {
-                return node.cacheShape == null || !node.cacheShape.isBound();
-            }
-
-            @Override public WritableValue<Boolean> getWritableValue(Region node) {
-                return node.cacheShapeProperty();
-            }
-        };
-
          private static final StyleableProperty<Region, Boolean> SNAP_TO_PIXEL =
              new StyleableProperty<Region,Boolean>("-fx-snap-to-pixel",
                  BooleanConverter.getInstance(), Boolean.TRUE){
@@ -2375,7 +2339,6 @@
                     SHAPE,
                     SCALE_SHAPE,
                     POSITION_SHAPE,
-                    CACHE_SHAPE,
                     SNAP_TO_PIXEL
             );
             STYLEABLES = Collections.unmodifiableList(styleables);
--- a/javafx-ui-common/src/javafx/scene/text/Text.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-common/src/javafx/scene/text/Text.java	Tue Dec 04 09:37:33 2012 -0800
@@ -138,7 +138,6 @@
      * Creates an empty instance of Text.
      */
     public Text() {
-        setNodeOrientation(NodeOrientation.LEFT_TO_RIGHT);
         InvalidationListener listener = new InvalidationListener() {
             @Override public void invalidated(Observable observable) {
                 checkSpan();
@@ -180,6 +179,29 @@
         isSpan = isManaged() && getParent() instanceof TextFlow;
     }
 
+    @Deprecated
+    public void impl_transformsChanged() {
+        super.impl_transformsChanged();
+        if (!isSpan()) {
+            /* Using impl_transformsChanged to detect for orientation change.
+             * This can be improved if EffectiveNodeOrientation becomes a
+             * property. See http://javafx-jira.kenai.com/browse/RT-26140
+             */
+            NodeOrientation orientation = getEffectiveNodeOrientation();
+            boolean rtl =  orientation == NodeOrientation.RIGHT_TO_LEFT;
+            int dir = rtl ? TextLayout.DIRECTION_RTL : TextLayout.DIRECTION_LTR;
+            TextLayout layout = getTextLayout();
+            if (layout.setDirection(dir)) {
+                needsTextLayout();
+            }
+        }
+    }
+
+    @Override
+    public boolean isAutomaticallyMirrored() {
+        return false;
+    }
+
     private void needsFullTextLayout() {
         if (isSpan()) {
             /* Create new text span every time the font or text changes
@@ -232,9 +254,16 @@
             layout = factory.createLayout();
             String string = getTextInternal();
             Object font = getFontInternal();
+            TextAlignment alignment = getTextAlignment();
+            if (alignment == null) alignment = DEFAULT_TEXT_ALIGNMENT;
             layout.setContent(string, font);
-            layout.setAlignment(getTextAlignment().ordinal());
+            layout.setAlignment(alignment.ordinal());
             layout.setWrapWidth((float)getWrappingWidth());
+            if (getEffectiveNodeOrientation() == NodeOrientation.RIGHT_TO_LEFT) {
+                layout.setDirection(TextLayout.DIRECTION_RTL);
+            } else {
+                layout.setDirection(TextLayout.DIRECTION_LTR);
+            }
         }
         return layout;
     }
@@ -1008,6 +1037,7 @@
 
     private float getYAdjustment(BaseBounds bounds) {
         VPos origin = getTextOrigin();
+        if (origin == null) origin = DEFAULT_TEXT_ORIGIN;
         switch (origin) {
         case TOP: return -bounds.getMinY();
         case BASELINE: return 0;
@@ -1022,6 +1052,7 @@
         BaseBounds bounds = getLogicalBounds();
 
         VPos origin = getTextOrigin();
+        if (origin == null) origin = DEFAULT_TEXT_ORIGIN;
         if (getBoundsType() == TextBoundsType.VISUAL) {
             BaseBounds vBounds = getVisualBounds();
             float delta = vBounds.getMinY() - bounds.getMinY();
@@ -1335,7 +1366,9 @@
         if (impl_isDirty(DirtyBits.TEXT_ATTRS)) {
             peer.setUnderline(isUnderline());
             peer.setStrikethrough(isStrikethrough());
-            peer.setFontSmoothingType(getFontSmoothingType().ordinal());
+            FontSmoothingType smoothing = getFontSmoothingType();
+            if (smoothing == null) smoothing = FontSmoothingType.GRAY;
+            peer.setFontSmoothingType(smoothing.ordinal());
         }
         if (impl_isDirty(DirtyBits.TEXT_FONT)) {
             peer.setFont(getFontInternal());
@@ -1520,9 +1553,14 @@
                     }
                     @Override public void invalidated() {
                         if (!isSpan()) {
+                            TextAlignment alignment = get();
+                            if (alignment == null) {
+                                alignment = DEFAULT_TEXT_ALIGNMENT;
+                            }
                             TextLayout layout = getTextLayout();
-                            layout.setAlignment(get().ordinal());
-                            needsTextLayout();
+                            if (layout.setAlignment(alignment.ordinal())) {
+                                needsTextLayout();
+                            }
                         }
                     }
                 };
--- a/javafx-ui-common/test/unit/javafx/animation/AnimationMock.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-common/test/unit/javafx/animation/AnimationMock.java	Tue Dec 04 09:37:33 2012 -0800
@@ -39,7 +39,7 @@
 	}
 
 	@Override
-	public void impl_jumpTo(long currentTicks, long cycleTicks) {
+	public void impl_jumpTo(long currentTicks, long cycleTicks, boolean forceJump) {
 		// TODO Auto-generated method stub
 
 	}
--- a/javafx-ui-common/test/unit/javafx/animation/TransitionTest.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-common/test/unit/javafx/animation/TransitionTest.java	Tue Dec 04 09:37:33 2012 -0800
@@ -128,31 +128,31 @@
     @Test
     public void testJumpTo() {
         // not running
-        transition.impl_jumpTo(0, 2);
+        transition.impl_jumpTo(0, 2, false);
         assertEquals(0.0, transition.frac, EPSILON);
-        transition.impl_jumpTo(1, 2);
+        transition.impl_jumpTo(1, 2, false);
         assertEquals(0.0, transition.frac, EPSILON);
-        transition.impl_jumpTo(2, 2);
+        transition.impl_jumpTo(2, 2, false);
         assertEquals(0.0, transition.frac, EPSILON);
 
         // running with linear interpolator
         transition.setInterpolator(Interpolator.LINEAR);
         assertTrue(transition.impl_startable(true));
         transition.impl_start(true);
-        transition.impl_jumpTo(0, 2);
+        transition.impl_jumpTo(0, 2, false);
         assertEquals(0.0, transition.frac, EPSILON);
-        transition.impl_jumpTo(1, 2);
+        transition.impl_jumpTo(1, 2, false);
         assertEquals(0.5, transition.frac, EPSILON);
-        transition.impl_jumpTo(2, 2);
+        transition.impl_jumpTo(2, 2, false);
         assertEquals(1.0, transition.frac, EPSILON);
 
         // paused with linear interpolator
         transition.impl_pause();
-        transition.impl_jumpTo(0, 2);
+        transition.impl_jumpTo(0, 2, false);
         assertEquals(0.0, transition.frac, EPSILON);
-        transition.impl_jumpTo(1, 2);
+        transition.impl_jumpTo(1, 2, false);
         assertEquals(0.5, transition.frac, EPSILON);
-        transition.impl_jumpTo(2, 2);
+        transition.impl_jumpTo(2, 2, false);
         assertEquals(1.0, transition.frac, EPSILON);
         transition.impl_finished();
 
@@ -160,24 +160,59 @@
         transition.setInterpolator(Interpolator.DISCRETE);
         assertTrue(transition.impl_startable(true));
         transition.impl_start(true);
-        transition.impl_jumpTo(0, 2);
+        transition.impl_jumpTo(0, 2, false);
         assertEquals(0.0, transition.frac, EPSILON);
-        transition.impl_jumpTo(1, 2);
+        transition.impl_jumpTo(1, 2, false);
         assertEquals(0.0, transition.frac, EPSILON);
-        transition.impl_jumpTo(2, 2);
+        transition.impl_jumpTo(2, 2, false);
         assertEquals(1.0, transition.frac, EPSILON);
 
         // paused with discrete interpolator
         transition.impl_pause();
-        transition.impl_jumpTo(0, 2);
+        transition.impl_jumpTo(0, 2, false);
         assertEquals(0.0, transition.frac, EPSILON);
-        transition.impl_jumpTo(1, 2);
+        transition.impl_jumpTo(1, 2, false);
         assertEquals(0.0, transition.frac, EPSILON);
-        transition.impl_jumpTo(2, 2);
+        transition.impl_jumpTo(2, 2, false);
         assertEquals(1.0, transition.frac, EPSILON);
         transition.impl_finished();
     }
 
+
+
+    @Test
+    public void testForcedJumpTo() {
+        transition.setInterpolator(Interpolator.LINEAR);
+        // not running
+        transition.impl_jumpTo(0, 2, true);
+        assertEquals(0.0, transition.frac, EPSILON);
+        transition.impl_jumpTo(1, 2, true);
+        assertEquals(0.5, transition.frac, EPSILON);
+        transition.impl_jumpTo(2, 2, true);
+        assertEquals(1.0, transition.frac, EPSILON);
+
+        // running with linear interpolator
+        assertTrue(transition.impl_startable(true));
+        transition.impl_start(true);
+        transition.impl_jumpTo(0, 2, true);
+        assertEquals(0.0, transition.frac, EPSILON);
+        transition.impl_jumpTo(1, 2, true);
+        assertEquals(0.5, transition.frac, EPSILON);
+        transition.impl_jumpTo(2, 2, true);
+        assertEquals(1.0, transition.frac, EPSILON);
+
+        // paused with linear interpolator
+        transition.impl_pause();
+        transition.impl_jumpTo(0, 2, true);
+        assertEquals(0.0, transition.frac, EPSILON);
+        transition.impl_jumpTo(1, 2, true);
+        assertEquals(0.5, transition.frac, EPSILON);
+        transition.impl_jumpTo(2, 2, true);
+        assertEquals(1.0, transition.frac, EPSILON);
+        transition.impl_finished();
+
+    }
+
     private static class TransitionImpl extends Transition {
         private double frac;
 
--- a/javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/javafx-ui-controls/src/com/sun/javafx/scene/control/skin/FXVKSkin.java	Tue Dec 04 09:37:33 2012 -0800
@@ -294,7 +294,9 @@
                         }
 
                         if (oldNode == null || oldNode.getScene() != attachedNode.getScene()) {
-//                             fxvk.setPrefWidth(VK_WIDTH);
+                            if (!inScene) { 
+                                fxvk.setPrefWidth(VK_WIDTH);
+                            }
                             fxvk.setMinWidth(USE_PREF_SIZE);
                             fxvk.setMaxWidth(USE_PREF_SIZE);
                             fxvk.setPrefHeight(VK_HEIGHT);
--- a/test-stub-toolkit/src/com/sun/javafx/pgstub/StubTextLayout.java	Thu Nov 29 22:12:44 2012 -0800
+++ b/test-stub-toolkit/src/com/sun/javafx/pgstub/StubTextLayout.java	Tue Dec 04 09:37:33 2012 -0800
@@ -41,7 +41,7 @@
 
     @Override
     public boolean setContent(TextSpan[] spans) {
-        return false;
+        return true;
     }
 
     private String text;
@@ -50,22 +50,22 @@
     public boolean setContent(String text, Object font) {
         this.text = text;
         this.font = (Font)font;
-        return false;
+        return true;
     }
 
     @Override
     public boolean setAlignment(int alignment) {
-        return false;
+        return true;
     }
 
     @Override
     public boolean setWrapWidth(float wrapWidth) {
-        return false;
+        return true;
     }
 
     @Override
     public boolean setDirection(int direction) {
-        return false;
+        return true;
     }
 
     @Override