package egovframework.com.cmm.util; import java.io.Closeable; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Wrapper; /** * Utility class to support to close resources * @author Vincent Han * @since 2014.09.18 * @version 1.0 * @see * *
 * << 개정이력(Modification Information) >>
 *   
 *   수정일        수정자       수정내용
 *  -------       --------    ---------------------------
 *   2014.09.18	표준프레임워크센터	최초 생성
 *
 * 
*/ public class EgovResourceCloseHelper { /** * Resource close 처리. * @param resources */ public static void close(Closeable ... resources) { for (Closeable resource : resources) { if (resource != null) { try { resource.close(); } catch (IOException ignore) {//KISA 보안약점 조치 (2018-10-29, 윤창원) EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!"); } catch (Exception ignore) { EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); } } } } /** * JDBC 관련 resource 객체 close 처리 * @param objects */ public static void closeDBObjects(Wrapper ... objects) { for (Object object : objects) { if (object != null) { if (object instanceof ResultSet) { try { ((ResultSet)object).close(); } catch (SQLException ignore) {//KISA 보안약점 조치 (2018-10-29, 윤창원) EgovBasicLogger.ignore("Occurred SQLException to close resource is ingored!!"); } catch (Exception ignore) { EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); } } else if (object instanceof Statement) { try { ((Statement)object).close(); } catch (SQLException ignore) {//KISA 보안약점 조치 (2018-10-29, 윤창원) EgovBasicLogger.ignore("Occurred SQLException to close resource is ingored!!"); } catch (Exception ignore) { EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); } } else if (object instanceof Connection) { try { ((Connection)object).close(); } catch (SQLException ignore) { EgovBasicLogger.ignore("Occurred SQLException to close resource is ingored!!"); } catch (Exception ignore) { EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); } } else { throw new IllegalArgumentException("Wrapper type is not found : " + object.toString()); } } } } /** * Socket 관련 resource 객체 close 처리 * @param objects */ public static void closeSocketObjects(Socket socket, ServerSocket server) { if (socket != null) { try { socket.shutdownOutput(); } catch (IOException ignore) { EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!"); } catch (Exception ignore) { EgovBasicLogger.ignore("Occurred Exception to shutdown ouput is ignored!!"); } try { socket.close(); } catch (IOException ignore) { EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!"); } catch (Exception ignore) { EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!"); } } if (server != null) { try { server.close(); } catch (IOException ignore) { EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!"); } catch (Exception ignore) { EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!"); } } } /** * Socket 관련 resource 객체 close 처리 * * @param sockets */ public static void closeSockets(Socket ... sockets) { for (Socket socket : sockets) { if (socket != null) { try { socket.shutdownOutput(); } catch (IOException ignore) { EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!"); } catch (Exception ignore) { EgovBasicLogger.ignore("Occurred Exception to shutdown ouput is ignored!!"); } try { socket.close(); } catch (IOException ignore) { EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!"); } catch (Exception ignore) { EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!"); } } } } }