From 75a1355c310f68cf93ab91a14e1f9cc8bf726cd6 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Sun, 08 Oct 2006 23:35:31 +0000
Subject: [PATCH] Update the LDAPCompare tool to fail with an appropriate error message if the assertion value is to be read from a file but that file does not exist or is not readable.

---
 opends/src/server/org/opends/server/tools/LDAPToolUtils.java |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/LDAPToolUtils.java b/opends/src/server/org/opends/server/tools/LDAPToolUtils.java
index d630f3d..418d268 100644
--- a/opends/src/server/org/opends/server/tools/LDAPToolUtils.java
+++ b/opends/src/server/org/opends/server/tools/LDAPToolUtils.java
@@ -57,7 +57,8 @@
    * @param  argString  The argument string containing the encoded control
    *                    information.
    *
-   * @return  The control decoded from the provided string.
+   * @return  The control decoded from the provided string, or <CODE>null</CODE>
+   *          if an error occurs while parsing the argument value.
    */
   public static LDAPControl getControl(String argString)
   {
@@ -117,8 +118,15 @@
     {
       // Read data from the file.
       String fileURL = valString.substring(1, valString.length());
-      byte[] val = readBytesFromFile(fileURL);
-      controlValue = new ASN1OctetString(val);
+      try
+      {
+        byte[] val = readBytesFromFile(fileURL);
+        controlValue = new ASN1OctetString(val);
+      }
+      catch (Exception e)
+      {
+        return null;
+      }
     } else
     {
       controlValue = new ASN1OctetString(valString);
@@ -135,8 +143,12 @@
    * @param  filePath  The path to the file that should be read.
    *
    * @return  A byte array containing the contents of the requested file.
+   *
+   * @throws  IOException  If a problem occurs while trying to read the
+   *                       specified file.
    */
   public static byte[] readBytesFromFile(String filePath)
+         throws IOException
   {
       byte[] val = null;
       FileInputStream fis = null;
@@ -162,18 +174,11 @@
         }
 
         return val;
-      } catch(IOException ie)
-      {
-        System.err.println("Could not completely read file "+filePath);
-        System.err.println(ie.getMessage());
-        return null;
       } finally
       {
-        try
+        if (fis != null)
         {
           fis.close();
-        } catch(IOException ioe)
-        {
         }
       }
   }

--
Gitblit v1.10.0