1 /**
2 * Logback: the reliable, generic, fast and flexible logging framework.
3 * Copyright (C) 1999-2015, QOS.ch. All rights reserved.
4 *
5 * This program and the accompanying materials are dual-licensed under
6 * either the terms of the Eclipse Public License v1.0 as published by
7 * the Eclipse Foundation
8 *
9 * or (per the licensee's choosing)
10 *
11 * under the terms of the GNU Lesser General Public License version 2.1
12 * as published by the Free Software Foundation.
13 */
14 package ch.qos.logback.core.util;
15
16 import java.io.Closeable;
17 import java.io.IOException;
18 import java.net.ServerSocket;
19 import java.net.Socket;
20
21 /**
22 * Static utility method for {@link Closeable} objects.
23 *
24 * @author Carl Harris
25 */
26 public class CloseUtil {
27
28 /**
29 * Closes a closeable while suppressing any {@code IOException} that occurs.
30 *
31 * @param closeable the socket to close
32 */
33 public static void closeQuietly(Closeable closeable) {
34 if (closeable == null)
35 return;
36 try {
37 closeable.close();
38 } catch (IOException ex) {
39 assert true; // avoid an empty catch
40 }
41 }
42
43 /**
44 * Closes a socket while suppressing any {@code IOException} that occurs.
45 *
46 * @param socket the socket to close
47 */
48 public static void closeQuietly(Socket socket) {
49 if (socket == null)
50 return;
51 try {
52 socket.close();
53 } catch (IOException ex) {
54 assert true; // avoid an empty catch
55 }
56 }
57
58 /**
59 * Closes a server socket while suppressing any {@code IOException} that occurs.
60 *
61 * @param serverSocket the socket to close
62 */
63 public static void closeQuietly(ServerSocket serverSocket) {
64 if (serverSocket == null)
65 return;
66 try {
67 serverSocket.close();
68 } catch (IOException ex) {
69 assert true; // avoid an empty catch
70 }
71 }
72
73 }