From d7258adb1d9a236f824c6cefe9b277db4e5f03e1 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 20 Oct 2015 13:07:36 +0000
Subject: [PATCH] Fixed random test in SchemaBackendTestCase: testRemoveAttributeTypeReferencedByNameForm() always failed when run after testRemoveObjectClassReferencedByNameForm() which does not properly cleanup schema changes.

---
 opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java |  123 +++++++++++++++++------------------------
 1 files changed, 51 insertions(+), 72 deletions(-)

diff --git a/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java b/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java
index a4b39de..c89cc7f 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java
@@ -369,15 +369,10 @@
         // Update the install.loc file
         File installLoc = new File(testInstallRoot + File.separator + "instance.loc");
         installLoc.deleteOnExit();
-        FileWriter w = new FileWriter(installLoc);
-        try
+        try (FileWriter w = new FileWriter(installLoc))
         {
           w.write(testInstanceRoot.getAbsolutePath());
         }
-        finally
-        {
-          w.close();
-        }
 
         if (opendmkJar.exists())
         {
@@ -421,26 +416,24 @@
           + "config-changes.ldif";
       String configChangeFile = System.getProperty(
           PROPERTY_CONFIG_CHANGE_FILE, defaultConfigChangeFile);
-      BufferedReader reader = new BufferedReader(new FileReader(
-                                                 new File(configChangeFile)));
-      FileOutputStream outFile = new FileOutputStream(
-          new File(testConfigDir, "config-changes.ldif"));
-      PrintStream writer = new PrintStream(outFile);
 
-      String line = reader.readLine();
-      while(line != null)
+      try (BufferedReader reader = new BufferedReader(new FileReader(new File(configChangeFile)));
+          FileOutputStream outFile = new FileOutputStream(new File(testConfigDir, "config-changes.ldif"));
+          PrintStream writer = new PrintStream(outFile))
       {
-        line = line.replaceAll("#ldapport#", String.valueOf(serverLdapPort));
-        line = line.replaceAll("#adminport#", String.valueOf(serverAdminPort));
-        line = line.replaceAll("#jmxport#", String.valueOf(serverJmxPort));
-        line = line.replaceAll("#ldapsport#", String.valueOf(serverLdapsPort));
+        String line;
+        while ((line = reader.readLine()) != null)
+        {
+          line = line
+              .replaceAll("#ldapport#", String.valueOf(serverLdapPort))
+              .replaceAll("#adminport#", String.valueOf(serverAdminPort))
+              .replaceAll("#jmxport#", String.valueOf(serverJmxPort))
+              .replaceAll("#ldapsport#", String.valueOf(serverLdapsPort));
 
-        writer.println(line);
-        line = reader.readLine();
+          writer.println(line);
+        }
       }
 
-      close(writer, outFile, reader);
-
       // Create a configuration for the server.
       DirectoryEnvironmentConfig config = new DirectoryEnvironmentConfig();
       config.setServerRoot(testInstallRoot);
@@ -468,9 +461,10 @@
       DebugLogger.getInstance().addPublisherIfRequired(DEBUG_TEXT_WRITER);
 
       // Writing the buildinfo with the current version.
-      final FileWriter buildInfoWriter = new FileWriter (new File(testConfigDir, "buildinfo"));
-      buildInfoWriter.write(BuildVersion.binaryVersion().toString());
-      buildInfoWriter.close();
+      try (final FileWriter buildInfoWriter = new FileWriter(new File(testConfigDir, "buildinfo")))
+      {
+        buildInfoWriter.write(BuildVersion.binaryVersion().toString());
+      }
 
       EmbeddedUtils.startServer(config);
 
@@ -711,12 +705,9 @@
    */
   public static SocketAddress findFreeSocketAddress()
   {
-    try
+    try (ServerSocket serverLdapSocket = bindFreePort())
     {
-      ServerSocket serverLdapSocket = bindFreePort();
-      final SocketAddress address = serverLdapSocket.getLocalSocketAddress();
-      serverLdapSocket.close();
-      return address;
+      return serverLdapSocket.getLocalSocketAddress();
     }
     catch (IOException e)
     {
@@ -1032,16 +1023,17 @@
   private static void copyOrAppend(File src, File dst, boolean append)
       throws IOException
   {
-    InputStream in = new FileInputStream(src);
-    OutputStream out = new FileOutputStream(dst, append);
-
-    // Transfer bytes from in to out
-    byte[] buf = new byte[8192];
-    int len;
-    while ((len = in.read(buf)) > 0) {
-      out.write(buf, 0, len);
+    try (InputStream in = new FileInputStream(src);
+        OutputStream out = new FileOutputStream(dst, append))
+    {
+      // Transfer bytes from in to out
+      byte[] buf = new byte[8192];
+      int len;
+      while ((len = in.read(buf)) > 0)
+      {
+        out.write(buf, 0, len);
+      }
     }
-    close(in, out);
   }
 
 
@@ -1149,16 +1141,17 @@
   public static List<Entry> entriesFromLdifString(String ldif) throws Exception {
     LDIFImportConfig ldifImportConfig = new LDIFImportConfig(new StringReader(ldif));
     ldifImportConfig.setValidateSchema(false);
-    LDIFReader reader = new LDIFReader(ldifImportConfig);
 
-    List<Entry> entries = new ArrayList<>();
-    Entry entry;
-    while ((entry = reader.readEntry()) != null) {
-      entries.add(entry);
+    try (LDIFReader reader = new LDIFReader(ldifImportConfig))
+    {
+      List<Entry> entries = new ArrayList<>();
+      Entry entry;
+      while ((entry = reader.readEntry()) != null)
+      {
+        entries.add(entry);
+      }
+      return entries;
     }
-
-    reader.close();
-    return entries;
   }
 
   /**
@@ -1308,9 +1301,8 @@
   public static boolean canBind(String dn, String pw) throws Exception
   {
     // Check that the user can bind.
-    Socket s = null;
-    try {
-      s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
+    try (Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());)
+    {
       TestCaseUtils.configureSocket(s);
       ASN1Reader r = ASN1.getReader(s.getInputStream());
       ASN1Writer w = ASN1.getWriter(s.getOutputStream());
@@ -1325,15 +1317,11 @@
 
       message = LDAPReader.readMessage(r);
       BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
-      if (bindResponse.getResultCode() == 0) {
-        return true;
-      }
+      return bindResponse.getResultCode() == 0;
     } catch (Exception t) {
       t.printStackTrace();
-    } finally {
-      close(s);
+      return false;
     }
-    return false;
   }
 
 
@@ -1496,13 +1484,13 @@
     f.deleteOnExit();
 
     final String EOL = System.getProperty("line.separator");
-
-    FileWriter w = new FileWriter(f);
-    for (String s : lines)
+    try (FileWriter w = new FileWriter(f))
     {
-      w.write(s + EOL);
+      for (String s : lines)
+      {
+        w.write(s + EOL);
+      }
     }
-    w.close();
 
     return f.getAbsolutePath();
   }
@@ -1749,12 +1737,9 @@
 
   /** Store the contents of a String in a file. */
   public static void writeFile(String path, byte[] contents) throws IOException {
-    FileOutputStream fos = null;
-    try {
-      fos = new FileOutputStream(path);
+    try (FileOutputStream fos = new FileOutputStream(path))
+    {
       fos.write(contents);
-    } finally {
-      close(fos);
     }
   }
 
@@ -1927,20 +1912,14 @@
   public static void generateThreadDump(String id)
   {
     String date = new SimpleDateFormat("yyyyMMdd_hhmmss").format(new Date().getTime());
-    BufferedWriter writer = null;
-    try
+    try (BufferedWriter writer = new BufferedWriter(new FileWriter("/tmp/thread_dump_" + id + "_" + date)))
     {
-      writer = new BufferedWriter(new FileWriter("/tmp/thread_dump_" + id + "_" + date));
       writer.write(generateThreadDump());
     }
     catch (Exception e)
     {
       // do nothing
     }
-    finally
-    {
-      close(writer);
-    }
   }
 
    /** Generates a thread dump programmatically. */

--
Gitblit v1.10.0