You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Mark (JIRA)" <ji...@apache.org> on 2016/03/10 16:52:40 UTC

[jira] [Updated] (IO-500) IOUtils: plz include close* functions from lucene util's IOUtils class

     [ https://issues.apache.org/jira/browse/IO-500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark updated IO-500:
--------------------
    Description: 
{code}

  /**
   * Closes all given <tt>Closeable</tt>s.  Some of the
   * <tt>Closeable</tt>s may be null; they are
   * ignored.  After everything is closed, the method either
   * throws the first exception it hit while closing, or
   * completes normally if there were no exceptions.
   * 
   * @param objects
   *          objects to call <tt>close()</tt> on
   */
  public static void close(Closeable... objects) throws IOException {
    close(Arrays.asList(objects));
  }
  
  /**
   * Closes all given <tt>Closeable</tt>s.
   * @see #close(Closeable...)
   */
  public static void close(Iterable<? extends Closeable> objects) throws IOException {
    Throwable th = null;

    for (Closeable object : objects) {
      try {
        if (object != null) {
          object.close();
        }
      } catch (Throwable t) {
        addSuppressed(th, t);
        if (th == null) {
          th = t;
        }
      }
    }

    reThrow(th);
  }

  /**
   * Closes all given <tt>Closeable</tt>s, suppressing all thrown exceptions.
   * Some of the <tt>Closeable</tt>s may be null, they are ignored.
   * 
   * @param objects
   *          objects to call <tt>close()</tt> on
   */
  public static void closeWhileHandlingException(Closeable... objects) {
    closeWhileHandlingException(Arrays.asList(objects));
  }
  
  /**
   * Closes all given <tt>Closeable</tt>s, suppressing all thrown exceptions.
   * @see #closeWhileHandlingException(Closeable...)
   */
  public static void closeWhileHandlingException(Iterable<? extends Closeable> objects) {
    for (Closeable object : objects) {
      try {
        if (object != null) {
          object.close();
        }
      } catch (Throwable t) {
      }
    }
  }
  
  /** adds a Throwable to the list of suppressed Exceptions of the first Throwable
   * @param exception this exception should get the suppressed one added
   * @param suppressed the suppressed exception
   */
  private static void addSuppressed(Throwable exception, Throwable suppressed) {
    if (exception != null && suppressed != null) {
      exception.addSuppressed(suppressed);
    }
  }
  {code}

  was:
  /**
   * Closes all given <tt>Closeable</tt>s.  Some of the
   * <tt>Closeable</tt>s may be null; they are
   * ignored.  After everything is closed, the method either
   * throws the first exception it hit while closing, or
   * completes normally if there were no exceptions.
   * 
   * @param objects
   *          objects to call <tt>close()</tt> on
   */
  public static void close(Closeable... objects) throws IOException {
    close(Arrays.asList(objects));
  }
  
  /**
   * Closes all given <tt>Closeable</tt>s.
   * @see #close(Closeable...)
   */
  public static void close(Iterable<? extends Closeable> objects) throws IOException {
    Throwable th = null;

    for (Closeable object : objects) {
      try {
        if (object != null) {
          object.close();
        }
      } catch (Throwable t) {
        addSuppressed(th, t);
        if (th == null) {
          th = t;
        }
      }
    }

    reThrow(th);
  }

  /**
   * Closes all given <tt>Closeable</tt>s, suppressing all thrown exceptions.
   * Some of the <tt>Closeable</tt>s may be null, they are ignored.
   * 
   * @param objects
   *          objects to call <tt>close()</tt> on
   */
  public static void closeWhileHandlingException(Closeable... objects) {
    closeWhileHandlingException(Arrays.asList(objects));
  }
  
  /**
   * Closes all given <tt>Closeable</tt>s, suppressing all thrown exceptions.
   * @see #closeWhileHandlingException(Closeable...)
   */
  public static void closeWhileHandlingException(Iterable<? extends Closeable> objects) {
    for (Closeable object : objects) {
      try {
        if (object != null) {
          object.close();
        }
      } catch (Throwable t) {
      }
    }
  }
  
  /** adds a Throwable to the list of suppressed Exceptions of the first Throwable
   * @param exception this exception should get the suppressed one added
   * @param suppressed the suppressed exception
   */
  private static void addSuppressed(Throwable exception, Throwable suppressed) {
    if (exception != null && suppressed != null) {
      exception.addSuppressed(suppressed);
    }
  }
  


> IOUtils: plz include close* functions from lucene util's IOUtils class
> ----------------------------------------------------------------------
>
>                 Key: IO-500
>                 URL: https://issues.apache.org/jira/browse/IO-500
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>            Reporter: Mark
>            Priority: Minor
>
> {code}
>   /**
>    * Closes all given <tt>Closeable</tt>s.  Some of the
>    * <tt>Closeable</tt>s may be null; they are
>    * ignored.  After everything is closed, the method either
>    * throws the first exception it hit while closing, or
>    * completes normally if there were no exceptions.
>    * 
>    * @param objects
>    *          objects to call <tt>close()</tt> on
>    */
>   public static void close(Closeable... objects) throws IOException {
>     close(Arrays.asList(objects));
>   }
>   
>   /**
>    * Closes all given <tt>Closeable</tt>s.
>    * @see #close(Closeable...)
>    */
>   public static void close(Iterable<? extends Closeable> objects) throws IOException {
>     Throwable th = null;
>     for (Closeable object : objects) {
>       try {
>         if (object != null) {
>           object.close();
>         }
>       } catch (Throwable t) {
>         addSuppressed(th, t);
>         if (th == null) {
>           th = t;
>         }
>       }
>     }
>     reThrow(th);
>   }
>   /**
>    * Closes all given <tt>Closeable</tt>s, suppressing all thrown exceptions.
>    * Some of the <tt>Closeable</tt>s may be null, they are ignored.
>    * 
>    * @param objects
>    *          objects to call <tt>close()</tt> on
>    */
>   public static void closeWhileHandlingException(Closeable... objects) {
>     closeWhileHandlingException(Arrays.asList(objects));
>   }
>   
>   /**
>    * Closes all given <tt>Closeable</tt>s, suppressing all thrown exceptions.
>    * @see #closeWhileHandlingException(Closeable...)
>    */
>   public static void closeWhileHandlingException(Iterable<? extends Closeable> objects) {
>     for (Closeable object : objects) {
>       try {
>         if (object != null) {
>           object.close();
>         }
>       } catch (Throwable t) {
>       }
>     }
>   }
>   
>   /** adds a Throwable to the list of suppressed Exceptions of the first Throwable
>    * @param exception this exception should get the suppressed one added
>    * @param suppressed the suppressed exception
>    */
>   private static void addSuppressed(Throwable exception, Throwable suppressed) {
>     if (exception != null && suppressed != null) {
>       exception.addSuppressed(suppressed);
>     }
>   }
>   {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)