test uses executeUntilSucceeds rather than assertTrue, for something which might take a few millis to become true (Fix test failure on server)
diff --git a/core/src/test/java/brooklyn/util/task/BasicTaskExecutionTest.groovy b/core/src/test/java/brooklyn/util/task/BasicTaskExecutionTest.groovy
index 1056c22..320d999 100644
--- a/core/src/test/java/brooklyn/util/task/BasicTaskExecutionTest.groovy
+++ b/core/src/test/java/brooklyn/util/task/BasicTaskExecutionTest.groovy
@@ -17,7 +17,7 @@
 
 import brooklyn.management.ExecutionManager
 import brooklyn.management.Task
-import brooklyn.util.internal.LanguageUtils
+import brooklyn.test.TestUtils
 import brooklyn.management.ExpirationPolicy
 
 /**
@@ -91,7 +91,9 @@
         assertFalse(t.isDone())
         
         log.debug "runBasicTaskWithWaits, BasicTask status: {}", t.getStatusDetail(false)
-        assertTrue(t.getStatusDetail(false).toLowerCase().contains("waiting"), "details="+t.getStatusDetail(false))
+        
+        TestUtils.executeUntilSucceeds { t.getStatusDetail(false).toLowerCase().contains("waiting") }
+        // "details="+t.getStatusDetail(false))
         
         allowCompletion.countDown();
         assertEquals("a", t.get())