diff --git a/camel-core/src/test/java/org/apache/camel/TestSupport.java b/camel-core/src/test/java/org/apache/camel/TestSupport.java
index 35b520a..48b146d 100644
--- a/camel-core/src/test/java/org/apache/camel/TestSupport.java
+++ b/camel-core/src/test/java/org/apache/camel/TestSupport.java
@@ -490,7 +490,7 @@
      */
     public static boolean isPlatform(String platform) {
         String osName = System.getProperty("os.name").toLowerCase(Locale.US);
-        return osName.indexOf(platform.toLowerCase(Locale.US)) > -1;
+        return osName.contains(platform.toLowerCase(Locale.US));
     }
 
     /**
@@ -503,7 +503,19 @@
      */
     public static boolean isJavaVendor(String vendor) {
         String javaVendor = System.getProperty("java.vendor").toLowerCase(Locale.US);
-        return javaVendor.indexOf(vendor.toLowerCase(Locale.US)) > -1;
+        return javaVendor.contains(vendor.toLowerCase(Locale.US));
     }
 
+    /**
+     * Is this version the given Java version.
+     * <p/>
+     * Uses <tt>java.version</tt> from the system properties to determine the version.
+     *
+     * @param version such as 1.6
+     * @return <tt>true</tt> if its that vendor.
+     */
+    public static boolean isJavaVersion(String version) {
+        String javaVersion = System.getProperty("java.version");
+        return javaVersion.contains(version.toLowerCase(Locale.US));
+    }
 }
diff --git a/camel-core/src/test/java/org/apache/camel/processor/SplitterWithScannerIoExceptionTest.java b/camel-core/src/test/java/org/apache/camel/processor/SplitterWithScannerIoExceptionTest.java
index b3525d5..a4e1d00 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/SplitterWithScannerIoExceptionTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/SplitterWithScannerIoExceptionTest.java
@@ -22,6 +22,10 @@
 public class SplitterWithScannerIoExceptionTest extends ContextTestSupport {
 
     public void testSplitterStreamingWithError() throws Exception {
+        if (isJavaVersion("1.7")) {
+            return;
+        }
+
         getMockEndpoint("mock:a").expectedMessageCount(252);
         getMockEndpoint("mock:b").expectedMessageCount(0);
         getMockEndpoint("mock:b").setSleepForEmptyTest(3000);
