--- a/jdk/test/java/rmi/testlibrary/TestLibrary.java Tue Nov 19 14:08:28 2013 +0000
+++ b/jdk/test/java/rmi/testlibrary/TestLibrary.java Tue Nov 19 14:47:48 2013 +0000
@@ -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 @@
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;
--- a/jdk/test/lib/testlibrary/jdk/testlibrary/FileUtils.java Tue Nov 19 14:08:28 2013 +0000
+++ b/jdk/test/lib/testlibrary/jdk/testlibrary/FileUtils.java Tue Nov 19 14:47:48 2013 +0000
@@ -68,6 +68,31 @@
}
}
+ /**
+ * 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
{