Move netconf-dom-api
[netconf.git] / netconf / netconf-util / src / main / java / org / opendaylight / netconf / util / CloseableUtil.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.netconf.util;
9
10 public final class CloseableUtil {
11     private CloseableUtil() {
12
13     }
14
15     @SuppressWarnings("checkstyle:IllegalCatch")
16     public static void closeAll(Iterable<? extends AutoCloseable> autoCloseables) throws Exception {
17         Exception lastException = null;
18         for (AutoCloseable autoCloseable : autoCloseables) {
19             try {
20                 autoCloseable.close();
21             } catch (Exception e) {
22                 if (lastException == null) {
23                     lastException = e;
24                 } else {
25                     lastException.addSuppressed(e);
26                 }
27             }
28         }
29         if (lastException != null) {
30             throw lastException;
31         }
32
33     }
34 }