--- old/test/java/util/logging/bundlesearch/ResourceBundleSearchTest.java 2013-07-23 14:54:29.000000000 +0200 +++ new/test/java/util/logging/bundlesearch/ResourceBundleSearchTest.java 2013-07-23 14:54:28.000000000 +0200 @@ -57,9 +57,31 @@ private static int numFail = 0; private static List msgs = new ArrayList<>(); + // This test has been falling in timeout - so we're adding some + // time stamp here and there to help diagnose whether it's a + // simple system slowness or whether there's a deeper issue, + // like a deadlock. The timeout issue should be fixed now, + // but we leave the time stamps in case it reappears. + // + static final long stamp = System.currentTimeMillis(); + private static String newDate(long time) { + long delta = time - stamp; + long min = delta/60000; + long sec = (delta - min * 60000) / 10000; + long msec = delta - min * 60000 - sec * 1000; + return (min == 0 ? "" : (min + " min. ")) + + (sec == 0 ? "" : (sec + " sec. ")) + + (msec == 0 ? "" : (msec + "ms.")); + } + public static void main(String[] args) throws Throwable { + System.out.println("ResourceBundleSearchTest starting: "+newDate(System.currentTimeMillis())); ResourceBundleSearchTest test = new ResourceBundleSearchTest(); - test.runTests(); + try { + test.runTests(); + } finally { + System.out.println("ResourceBundleSearchTest terminated: "+newDate(System.currentTimeMillis())); + } } private void runTests() throws Throwable { @@ -77,15 +99,19 @@ urls[0] = Paths.get(testDir, "resources").toUri().toURL(); URLClassLoader rbClassLoader = new URLClassLoader(urls); + int testnb = 1; + System.out.println("ResourceBundleSearchTest starting test #"+(testnb++)+": "+newDate(System.currentTimeMillis())); // Test 1 - can we find a Logger bundle from doing a stack search? // We shouldn't be able to assertFalse(testGetBundleFromStackSearch(), "1-testGetBundleFromStackSearch"); + System.out.println("ResourceBundleSearchTest starting test #"+(testnb++)+": "+newDate(System.currentTimeMillis())); // Test 2 - can we find a Logger bundle off of the Thread context class // loader? We should be able to. assertTrue(testGetBundleFromTCCL(TCCL_TEST_BUNDLE, rbClassLoader), "2-testGetBundleFromTCCL"); + System.out.println("ResourceBundleSearchTest starting test #"+(testnb++)+": "+newDate(System.currentTimeMillis())); // Test 3 - Can we find a Logger bundle from the classpath? We should be // able to. We'll first check to make sure the setup is correct and // it actually is on the classpath before checking whether logging @@ -99,21 +125,25 @@ + " on the classpath"); } + System.out.println("ResourceBundleSearchTest starting test #"+(testnb++)+": "+newDate(System.currentTimeMillis())); // Test 4 - we should be able to find a bundle from the caller's // classloader, but only one level up. assertTrue(testGetBundleFromCallersClassLoader(), "4-testGetBundleFromCallersClassLoader"); + System.out.println("ResourceBundleSearchTest starting test #"+(testnb++)+": "+newDate(System.currentTimeMillis())); // Test 5 - this ensures that getAnonymousLogger(String rbName) // can find the bundle from the caller's classloader assertTrue(testGetAnonymousLogger(), "5-testGetAnonymousLogger"); + System.out.println("ResourceBundleSearchTest starting test #"+(testnb++)+": "+newDate(System.currentTimeMillis())); // Test 6 - first call getLogger("myLogger"). // Then call getLogger("myLogger","bundleName") from a different ClassLoader // Make sure we find the bundle assertTrue(testGetBundleFromSecondCallersClassLoader(), "6-testGetBundleFromSecondCallersClassLoader"); + System.out.println("ResourceBundleSearchTest generating report"); report(); } @@ -132,6 +162,7 @@ public void assertTrue(boolean testResult, String testName) { if (testResult) { numPass++; + System.out.println("PASSED: " + testName); } else { numFail++; System.out.println("FAILED: " + testName @@ -142,6 +173,7 @@ public void assertFalse(boolean testResult, String testName) { if (!testResult) { numPass++; + System.out.println("PASSED: " + testName); } else { numFail++; System.out.println("FAILED: " + testName @@ -170,12 +202,10 @@ debug("Looking for " + bundleName + " using TCCL"); LoggingThread lr = new LoggingThread(bundleName, setOnTCCL); lr.start(); - synchronized (lr) { - try { - lr.wait(); - } catch (InterruptedException ex) { - throw ex; - } + try { + lr.join(); + } catch (InterruptedException ex) { + throw ex; } msgs.add(lr.msg); return lr.foundBundle;