--- old/modules/graphics/src/test/java/test/javafx/scene/Parent_structure_sync_Test.java 2015-09-27 21:40:31.000000000 -0700 +++ new/modules/graphics/src/test/java/test/javafx/scene/Parent_structure_sync_Test.java 2015-09-27 21:40:31.000000000 -0700 @@ -33,6 +33,7 @@ import javafx.scene.Parent; import javafx.scene.ParentShim; import javafx.scene.Scene; +import javafx.scene.layout.BorderPane; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import org.junit.Before; @@ -338,4 +339,35 @@ sync(); assertTrue(ParentShim.test_getRemoved(parent2).isEmpty()); } + + @Test + public void validateParentsRemovedList2() { + BorderPane borderPane = new BorderPane(r1); + Group parent2 = new Group(); + ParentShim.getChildren(parent2).addAll(r2); + ParentShim.getChildren(parent).add(parent2); + sync(); + ParentShim.getChildren(parent2).remove(r2); + borderPane.setCenter(null); + assertNotNull(ParentShim.test_getRemoved(parent2)); + assertFalse(ParentShim.test_getRemoved(parent2).isEmpty()); + assertNotNull(ParentShim.test_getRemoved(borderPane)); + assertTrue(ParentShim.test_getRemoved(borderPane).isEmpty()); + sync(); + assertTrue(ParentShim.test_getRemoved(parent2).isEmpty()); + assertTrue(ParentShim.test_getRemoved(borderPane).isEmpty()); + } + + @Test + public void validateParentsRemovedList3() { + BorderPane borderPane = new BorderPane(r1); + parent.getScene().setRoot(borderPane); + sync(); + borderPane.getScene().setRoot(parent); + borderPane.setCenter(null); + assertNotNull(ParentShim.test_getRemoved(borderPane)); + assertTrue(ParentShim.test_getRemoved(borderPane).isEmpty()); + sync(); + assertTrue(ParentShim.test_getRemoved(borderPane).isEmpty()); + } }