JDK-8123150 : lazy deserialization of css declarations
Type:Bug
Component:javafx
Sub-Component:controls
Affected Version:8
Priority:P4
Status:Resolved
Resolution:Fixed
Submitted:2013-05-30
Updated:2015-06-17
Resolved:2013-06-03
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
Rather than deserializing declarations, hold onto bytes and deserialize only when the declarations are needed from the rule. Initially, all that is needed from Rule are the selectors.
Comments
http://hg.openjdk.java.net/openjfx/8/controls/rt/rev/b0690df037ca
http://hg.openjdk.java.net/openjfx/8/controls/rt/rev/3450a1dac4a9
When deserializing a Rule, the List<Declaration> is kept as a byte array. Later, if getDeclarations() is called, the byte array is deserialized. This means that Declarations in Rules that are never used in the application never get deserialized.
Also, sorting cascading styles was causing expansion of declarations. Now StyleMap will lazily create and sort cascading style list.