modules/base/src/test/java/javafx/binding/BindingsArrayTest.java

Print this page
rev 8094 : RT-27128

@@ -36,11 +36,10 @@
 import javafx.collections.ObservableFloatArray;
 import javafx.collections.ObservableIntegerArray;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import static org.junit.Assert.*;
 
 /**

@@ -145,64 +144,59 @@
     @Test(expected = NullPointerException.class)
     public void testIsNotEmpty_Null() {
         Bindings.isNotEmpty((ObservableList<Object>) null);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testValueAt_Constant() {
-        synchronized (log) {
-            log.reset();
-
             final ObjectBinding<Object> binding0 = Bindings.valueAt(property, 0);
             final ObjectBinding<Object> binding1 = Bindings.valueAt(property, 1);
             final ObjectBinding<Object> binding2 = Bindings.valueAt(property, 2);
             DependencyUtils.checkDependencies(binding0.getDependencies(), property);
             DependencyUtils.checkDependencies(binding1.getDependencies(), property);
             DependencyUtils.checkDependencies(binding2.getDependencies(), property);
             assertNull(binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertNull(binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertNull(binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.set(list1);
             assertEquals(data1, binding0.get());
             assertEquals(data2, binding1.get());
             assertNull(binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.remove(data2);
             assertEquals(data1, binding0.get());
             assertNull(binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertNull(binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.set(list2);
             assertNull(binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertNull(binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertNull(binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.addAll(data2, data2);
             assertEquals(data2, binding0.get());
             assertEquals(data2, binding1.get());
             assertNull(binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.set(null);
             assertNull(binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertNull(binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertNull(binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testValueAt_Constant_Null() {
         Bindings.valueAt(null, 0);

@@ -211,76 +205,71 @@
     @Test(expected = IllegalArgumentException.class)
     public void testValueAt_Constant_NegativeIndex() {
         Bindings.valueAt(property, -1);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testValueAt_Variable() {
-        synchronized (log) {
-            log.reset();
-
             final ObjectBinding<Object> binding = Bindings.valueAt(property, index);
             DependencyUtils.checkDependencies(binding.getDependencies(), property, index);
 
             index.set(-1);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.set(list1);
             index.set(-1);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(data1, binding.get());
             index.set(1);
             assertEquals(data2, binding.get());
             index.set(2);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.remove(data2);
             index.set(-1);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(data1, binding.get());
             index.set(1);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.set(list2);
             index.set(-1);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.addAll(data2, data2);
             index.set(-1);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(data2, binding.get());
             index.set(1);
             assertEquals(data2, binding.get());
             index.set(2);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             property.set(null);
             index.set(-1);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertNull(binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testValueAt_Variable_Null() {
         Bindings.valueAt((ObservableList<Object>)null, index);

@@ -289,16 +278,12 @@
     @Test(expected = NullPointerException.class)
     public void testValueAt_Variable_NullIndex() {
         Bindings.valueAt(property, null);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testBooleanValueAt_Constant() {
-        synchronized (log) {
-            log.reset();
-
             final boolean defaultData = false;
             final boolean localData1 = false;
             final boolean localData2 = true;
             final ListProperty<Boolean> localProperty = new SimpleListProperty<Boolean>();
             final ObservableList<Boolean> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -309,51 +294,50 @@
             final BooleanBinding binding2 = Bindings.booleanValueAt(localProperty, 2);
             DependencyUtils.checkDependencies(binding0.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding1.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding2.getDependencies(), localProperty);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             assertEquals(localData1, binding0.get());
             assertEquals(localData2, binding1.get());
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             assertEquals(localData1, binding0.get());
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             assertEquals(localData2, binding0.get());
             assertEquals(localData2, binding1.get());
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testBooleanValueAt_Constant_Null() {
         Bindings.booleanValueAt(null, 0);

@@ -363,16 +347,12 @@
     public void testBooleanValueAt_Constant_NegativeIndex() {
         final ListProperty<Boolean> localProperty = new SimpleListProperty<Boolean>();
         Bindings.booleanValueAt(localProperty, -1);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testBooleanValueAt_Variable() {
-        synchronized (log) {
-            log.reset();
-
             final boolean defaultData = false;
             final boolean localData1 = false;
             final boolean localData2 = true;
             final ListProperty<Boolean> localProperty = new SimpleListProperty<Boolean>();
             final ObservableList<Boolean> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -381,76 +361,75 @@
             final BooleanBinding binding = Bindings.booleanValueAt(localProperty, index);
             DependencyUtils.checkDependencies(binding.getDependencies(), localProperty, index);
 
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get());
             index.set(1);
             assertEquals(localData2, binding.get());
             index.set(2);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get());
             index.set(1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(0, null);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "INFO", "NullPointerException");
+        log.checkFine(NullPointerException.class);
             index.set(1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData2, binding.get());
             index.set(1);
             assertEquals(localData2, binding.get());
             index.set(2);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testBooleanValueAt_Variable_Null() {
         Bindings.booleanValueAt((ObservableList<Boolean>)null, index);

@@ -460,16 +439,12 @@
     public void testBooleanValueAt_Variable_NullIndex() {
         final ListProperty<Boolean> localProperty = new SimpleListProperty<Boolean>();
         Bindings.booleanValueAt(localProperty, null);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testDoubleValueAt_Constant() {
-        synchronized (log) {
-            log.reset();
-
             final double defaultData = 0.0;
             final double localData1 = Math.PI;
             final double localData2 = -Math.E;
             final ListProperty<Double> localProperty = new SimpleListProperty<Double>();
             final ObservableList<Double> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -480,51 +455,50 @@
             final DoubleBinding binding2 = Bindings.doubleValueAt(localProperty, 2);
             DependencyUtils.checkDependencies(binding0.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding1.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding2.getDependencies(), localProperty);
             assertEquals(defaultData, binding0.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             assertEquals(localData1, binding0.get(), EPSILON_DOUBLE);
             assertEquals(localData2, binding1.get(), EPSILON_DOUBLE);
             assertEquals(defaultData, binding2.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             assertEquals(localData1, binding0.get(), EPSILON_DOUBLE);
             assertEquals(defaultData, binding1.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             assertEquals(defaultData, binding0.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             assertEquals(localData2, binding0.get(), EPSILON_DOUBLE);
             assertEquals(localData2, binding1.get(), EPSILON_DOUBLE);
             assertEquals(defaultData, binding2.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             assertEquals(defaultData, binding0.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testDoubleValueAt_Constant_Null() {
         Bindings.doubleValueAt(null, 0);

@@ -534,16 +508,12 @@
     public void testDoubleValueAt_Constant_NegativeIndex() {
         final ListProperty<Double> localProperty = new SimpleListProperty<Double>();
         Bindings.doubleValueAt(localProperty, -1);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testDoubleValueAt_Variable() {
-        synchronized (log) {
-            log.reset();
-
             final double defaultData = 0.0;
             final double localData1 = -Math.PI;
             final double localData2 = Math.E;
             final ListProperty<Double> localProperty = new SimpleListProperty<Double>();
             final ObservableList<Double> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -552,76 +522,75 @@
             final DoubleBinding binding = Bindings.doubleValueAt(localProperty, index);
             DependencyUtils.checkDependencies(binding.getDependencies(), localProperty, index);
 
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get(), EPSILON_DOUBLE);
             index.set(1);
             assertEquals(localData2, binding.get(), EPSILON_DOUBLE);
             index.set(2);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get(), EPSILON_DOUBLE);
             index.set(1);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(0, null);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "INFO", "NullPointerException");
+        log.checkFine(NullPointerException.class);
             index.set(1);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData2, binding.get(), EPSILON_DOUBLE);
             index.set(1);
             assertEquals(localData2, binding.get(), EPSILON_DOUBLE);
             index.set(2);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get(), EPSILON_DOUBLE);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testDoubleValueAt_Variable_Null() {
         Bindings.doubleValueAt((ObservableList<Double>)null, index);

@@ -631,16 +600,12 @@
     public void testDoubleValueAt_Variable_NullIndex() {
         final ListProperty<Double> localProperty = new SimpleListProperty<Double>();
         Bindings.doubleValueAt(localProperty, null);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testFloatValueAt_Constant() {
-        synchronized (log) {
-            log.reset();
-
             final float defaultData = 0.0f;
             final float localData1 = (float)Math.PI;
             final float localData2 = (float)-Math.E;
             final ListProperty<Float> localProperty = new SimpleListProperty<Float>();
             final ObservableList<Float> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -651,51 +616,50 @@
             final FloatBinding binding2 = Bindings.floatValueAt(localProperty, 2);
             DependencyUtils.checkDependencies(binding0.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding1.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding2.getDependencies(), localProperty);
             assertEquals(defaultData, binding0.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             assertEquals(localData1, binding0.get(), EPSILON_FLOAT);
             assertEquals(localData2, binding1.get(), EPSILON_FLOAT);
             assertEquals(defaultData, binding2.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             assertEquals(localData1, binding0.get(), EPSILON_FLOAT);
             assertEquals(defaultData, binding1.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             assertEquals(defaultData, binding0.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             assertEquals(localData2, binding0.get(), EPSILON_FLOAT);
             assertEquals(localData2, binding1.get(), EPSILON_FLOAT);
             assertEquals(defaultData, binding2.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             assertEquals(defaultData, binding0.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testFloatValueAt_Constant_Null() {
         Bindings.floatValueAt((ObservableFloatArray) null, 0);

@@ -705,16 +669,12 @@
     public void testFloatValueAt_Constant_NegativeIndex() {
         final ListProperty<Float> localProperty = new SimpleListProperty<Float>();
         Bindings.floatValueAt(localProperty, -1);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testFloatValueAt_Variable() {
-        synchronized (log) {
-            log.reset();
-
             final float defaultData = 0.0f;
             final float localData1 = (float)-Math.PI;
             final float localData2 = (float)Math.E;
             final ListProperty<Float> localProperty = new SimpleListProperty<Float>();
             final ObservableList<Float> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -723,76 +683,75 @@
             final FloatBinding binding = Bindings.floatValueAt(localProperty, index);
             DependencyUtils.checkDependencies(binding.getDependencies(), localProperty, index);
 
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get(), EPSILON_FLOAT);
             index.set(1);
             assertEquals(localData2, binding.get(), EPSILON_FLOAT);
             index.set(2);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get(), EPSILON_FLOAT);
             index.set(1);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(0, null);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "INFO", "NullPointerException");
+        log.checkFine(NullPointerException.class);
             index.set(1);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData2, binding.get(), EPSILON_FLOAT);
             index.set(1);
             assertEquals(localData2, binding.get(), EPSILON_FLOAT);
             index.set(2);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             index.set(-1);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get(), EPSILON_FLOAT);
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testFloatValueAt_Variable_Null() {
         Bindings.floatValueAt((ObservableList<Float>)null, index);

@@ -802,16 +761,12 @@
     public void testFloatValueAt_Variable_NullIndex() {
         final ListProperty<Float> localProperty = new SimpleListProperty<Float>();
         Bindings.floatValueAt(localProperty, null);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testIntegerValueAt_Constant() {
-        synchronized (log) {
-            log.reset();
-
             final int defaultData = 0;
             final int localData1 = 42;
             final int localData2 = -7;
             final ListProperty<Integer> localProperty = new SimpleListProperty<Integer>();
             final ObservableList<Integer> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -822,51 +777,50 @@
             final IntegerBinding binding2 = Bindings.integerValueAt(localProperty, 2);
             DependencyUtils.checkDependencies(binding0.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding1.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding2.getDependencies(), localProperty);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             assertEquals(localData1, binding0.get());
             assertEquals(localData2, binding1.get());
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             assertEquals(localData1, binding0.get());
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             assertEquals(localData2, binding0.get());
             assertEquals(localData2, binding1.get());
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testIntegerValueAt_Constant_Null() {
         Bindings.integerValueAt((ObservableIntegerArray) null, 0);

@@ -876,16 +830,12 @@
     public void testIntegerValueAt_Constant_NegativeIndex() {
         final ListProperty<Integer> localProperty = new SimpleListProperty<Integer>();
         Bindings.integerValueAt(localProperty, -1);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testIntegerValueAt_Variable() {
-        synchronized (log) {
-            log.reset();
-
             final int defaultData = 0;
             final int localData1 = 42;
             final int localData2 = -7;
             final ListProperty<Integer> localProperty = new SimpleListProperty<Integer>();
             final ObservableList<Integer> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -894,76 +844,75 @@
             final IntegerBinding binding = Bindings.integerValueAt(localProperty, index);
             DependencyUtils.checkDependencies(binding.getDependencies(), localProperty, index);
 
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get());
             index.set(1);
             assertEquals(localData2, binding.get());
             index.set(2);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get());
             index.set(1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(0, null);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "INFO", "NullPointerException");
+        log.checkFine(NullPointerException.class);
             index.set(1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData2, binding.get());
             index.set(1);
             assertEquals(localData2, binding.get());
             index.set(2);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testIntegerValueAt_Variable_Null() {
         Bindings.integerValueAt((ObservableList<Integer>)null, index);

@@ -973,16 +922,12 @@
     public void testIntegerValueAt_Variable_NullIndex() {
         final ListProperty<Integer> localProperty = new SimpleListProperty<Integer>();
         Bindings.integerValueAt(localProperty, null);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testLongValueAt_Constant() {
-        synchronized (log) {
-            log.reset();
-
             final long defaultData = 0L;
             final long localData1 = 1234567890987654321L;
             final long localData2 = -987654321987654321L;
             final ListProperty<Long> localProperty = new SimpleListProperty<Long>();
             final ObservableList<Long> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -993,51 +938,50 @@
             final LongBinding binding2 = Bindings.longValueAt(localProperty, 2);
             DependencyUtils.checkDependencies(binding0.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding1.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding2.getDependencies(), localProperty);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             assertEquals(localData1, binding0.get());
             assertEquals(localData2, binding1.get());
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             assertEquals(localData1, binding0.get());
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             assertEquals(localData2, binding0.get());
             assertEquals(localData2, binding1.get());
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testLongValueAt_Constant_Null() {
         Bindings.longValueAt(null, 0);

@@ -1047,16 +991,12 @@
     public void testLongValueAt_Constant_NegativeIndex() {
         final ListProperty<Long> localProperty = new SimpleListProperty<Long>();
         Bindings.longValueAt(localProperty, -1);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testLongValueAt_Variable() {
-        synchronized (log) {
-            log.reset();
-
             final long defaultData = 0;
             final long localData1 = 98765432123456789L;
             final long localData2 = -1234567890123456789L;
             final ListProperty<Long> localProperty = new SimpleListProperty<Long>();
             final ObservableList<Long> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -1065,76 +1005,75 @@
             final LongBinding binding = Bindings.longValueAt(localProperty, index);
             DependencyUtils.checkDependencies(binding.getDependencies(), localProperty, index);
 
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get());
             index.set(1);
             assertEquals(localData2, binding.get());
             index.set(2);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get());
             index.set(1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(0, null);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "INFO", "NullPointerException");
+        log.checkFine(NullPointerException.class);
             index.set(1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData2, binding.get());
             index.set(1);
             assertEquals(localData2, binding.get());
             index.set(2);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testLongValueAt_Variable_Null() {
         Bindings.longValueAt((ObservableList<Long>)null, index);

@@ -1144,16 +1083,12 @@
     public void testLongValueAt_Variable_NullIndex() {
         final ListProperty<Long> localProperty = new SimpleListProperty<Long>();
         Bindings.longValueAt(localProperty, null);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testStringValueAt_Constant() {
-        synchronized (log) {
-            log.reset();
-
             final String defaultData = null;
             final String localData1 = "Hello World";
             final String localData2 = "Goodbye World";
             final ListProperty<String> localProperty = new SimpleListProperty<String>();
             final ObservableList<String> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -1164,51 +1099,50 @@
             final StringBinding binding2 = Bindings.stringValueAt(localProperty, 2);
             DependencyUtils.checkDependencies(binding0.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding1.getDependencies(), localProperty);
             DependencyUtils.checkDependencies(binding2.getDependencies(), localProperty);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             assertEquals(localData1, binding0.get());
             assertEquals(localData2, binding1.get());
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             assertEquals(localData1, binding0.get());
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             assertEquals(localData2, binding0.get());
             assertEquals(localData2, binding1.get());
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             assertEquals(defaultData, binding0.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding1.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             assertEquals(defaultData, binding2.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testStringValueAt_Constant_Null() {
         Bindings.stringValueAt(null, 0);

@@ -1218,16 +1152,12 @@
     public void testStringValueAt_Constant_NegativeIndex() {
         final ListProperty<String> localProperty = new SimpleListProperty<String>();
         Bindings.stringValueAt(localProperty, -1);
     }
 
-    @Ignore("RT-27128")
     @Test
     public void testStringValueAt_Variable() {
-        synchronized (log) {
-            log.reset();
-
             final String defaultData = null;
             final String localData1 = "Goodbye";
             final String localData2 = "Hello";
             final ListProperty<String> localProperty = new SimpleListProperty<String>();
             final ObservableList<String> localList1 = FXCollections.observableArrayList(localData1, localData2);

@@ -1236,65 +1166,64 @@
             final StringBinding binding = Bindings.stringValueAt(localProperty, index);
             DependencyUtils.checkDependencies(binding.getDependencies(), localProperty, index);
 
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList1);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get());
             index.set(1);
             assertEquals(localData2, binding.get());
             index.set(2);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.remove(1);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData1, binding.get());
             index.set(1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(localList2);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.addAll(localData2, localData2);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(ArrayIndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(localData2, binding.get());
             index.set(1);
             assertEquals(localData2, binding.get());
             index.set(2);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
 
             localProperty.set(null);
             index.set(-1);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
+        log.checkFine(IndexOutOfBoundsException.class);
             index.set(0);
             assertEquals(defaultData, binding.get());
-            log.check(0, "WARNING", 1, "IndexOutOfBoundsException");
-        }
+        log.checkFine(IndexOutOfBoundsException.class);
     }
 
     @Test(expected = NullPointerException.class)
     public void testStringValueAt_Variable_Null() {
         Bindings.stringValueAt((ObservableList<String>)null, index);