From 37b4280b4a556c50a0fc38f45c61b5d216a5c38c Mon Sep 17 00:00:00 2001 From: coffeys Date: Tue, 19 Nov 2013 14:47:48 +0000 Subject: [PATCH] 8028583: Add helper methods to test libraries Reviewed-by: chegar --- test/java/rmi/testlibrary/TestLibrary.java | 29 ++++++++++++++++++- .../jdk/testlibrary/FileUtils.java | 25 ++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/test/java/rmi/testlibrary/TestLibrary.java b/test/java/rmi/testlibrary/TestLibrary.java index 10b84c639..87733be8e 100644 --- a/test/java/rmi/testlibrary/TestLibrary.java +++ b/test/java/rmi/testlibrary/TestLibrary.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -127,6 +127,33 @@ public class TestLibrary { bomb(null, e); } + /** + * Helper method to determine if registry has started + * + * @param port The port number to check + * @param msTimeout The amount of milliseconds to spend checking + */ + + public static boolean checkIfRegistryRunning(int port, int msTimeout) { + long stopTime = System.currentTimeMillis() + msTimeout; + do { + try { + Registry r = LocateRegistry.getRegistry(port); + String[] s = r.list(); + // no exception. We're now happy that registry is running + return true; + } catch (RemoteException e) { + // problem - not ready ? Try again + try { + Thread.sleep(500); + } catch (InterruptedException ie) { + // not expected + } + } + } while (stopTime > System.currentTimeMillis()); + return false; + } + public static String getProperty(String property, String defaultVal) { final String prop = property; final String def = defaultVal; diff --git a/test/lib/testlibrary/jdk/testlibrary/FileUtils.java b/test/lib/testlibrary/jdk/testlibrary/FileUtils.java index 161e222ed..788226227 100644 --- a/test/lib/testlibrary/jdk/testlibrary/FileUtils.java +++ b/test/lib/testlibrary/jdk/testlibrary/FileUtils.java @@ -68,6 +68,31 @@ public final class FileUtils { } } + /** + * Deletes a file, retrying if necessary. + * No exception thrown if file doesn't exist. + * + * @param path the file to delete + * + * @throws NoSuchFileException + * if the file does not exist (optional specific exception) + * @throws DirectoryNotEmptyException + * if the file is a directory and could not otherwise be deleted + * because the directory is not empty (optional specific exception) + * @throws IOException + * if an I/O error occurs + */ + public static void deleteFileIfExistsWithRetry(Path path) + throws IOException + { + try { + if(Files.exists(path)) + deleteFileWithRetry0(path); + } catch (InterruptedException x) { + throw new IOException("Interrupted while deleting.", x); + } + } + private static void deleteFileWithRetry0(Path path) throws IOException, InterruptedException { -- GitLab