diff -r 2e0f3af1f34b javafx-ui-common/src/javafx/scene/Node.java --- a/javafx-ui-common/src/javafx/scene/Node.java Mon Jul 23 13:11:42 2012 +1200 +++ b/javafx-ui-common/src/javafx/scene/Node.java Mon Jul 23 14:17:56 2012 -0700 @@ -7332,8 +7332,9 @@ */ @Deprecated // SB-dependency: RT-21206 has been filed to track this public void impl_processCSS(boolean reapply) { - - StyleHelper styleHelper = null; + if (!reapply && cssFlag == CSSFlags.CLEAN) return; + + StyleHelper styleHelper; // Create a new StyleHelper either if I am told I need to reapply // or if my own flag indicates I need to reapply if (reapply || (cssFlag == CSSFlags.REAPPLY)) { diff -r 2e0f3af1f34b javafx-ui-common/src/javafx/scene/Parent.java --- a/javafx-ui-common/src/javafx/scene/Parent.java Mon Jul 23 13:11:42 2012 +1200 +++ b/javafx-ui-common/src/javafx/scene/Parent.java Mon Jul 23 14:17:56 2012 -0700 @@ -1142,6 +1142,8 @@ */ @Deprecated @Override public void impl_processCSS(boolean reapply) { + if (!reapply && cssFlag == CSSFlags.CLEAN) return; + // Determine whether we will need to reapply from here on down boolean flag = reapply || cssFlag == CSSFlags.REAPPLY; // Let the super implementation handle CSS for this node diff -r 2e0f3af1f34b javafx-ui-controls/src/com/sun/javafx/scene/control/skin/VirtualFlow.java --- a/javafx-ui-controls/src/com/sun/javafx/scene/control/skin/VirtualFlow.java Mon Jul 23 13:11:42 2012 +1200 +++ b/javafx-ui-controls/src/com/sun/javafx/scene/control/skin/VirtualFlow.java Mon Jul 23 14:17:56 2012 -0700 @@ -839,15 +839,13 @@ // we may not perform a layout here, meaning that the cell will likely // 'jump' (in height normally) when the user drags the virtual thumb as // that is the first time the layout would occur otherwise. - Cell cell; boolean cellNeedsLayout = false; - for (int i = 0; i < cells.size(); i++) { - cell = cells.get(i); + for (int i=0, max=cells.size(); i factory = getCreateCell(); + if (accumCell == null && factory != null) { + accumCell = factory.call(this); accumCellParent.getChildren().add(accumCell); } setCellIndex(accumCell, index); @@ -1615,11 +1618,12 @@ // Fix for RT-12822. We try to retrieve the cell from the pile rather // than just grab a random cell from the pile (or create another cell). - for (int i = 0; i < pile.size(); i++) { - IndexedCell _cell = pile.get(i); + for (int i=0, max=pile.size(); i