From 6938bbcdc9bd72474a4cb25cc599e0d017471a59 Mon Sep 17 00:00:00 2001 From: yjj8353 Date: Tue, 9 Jun 2026 18:48:46 +0900 Subject: [PATCH] =?UTF-8?q?finally=EC=97=90=EC=84=9C=20=EC=9E=90=EC=9B=90?= =?UTF-8?q?=EC=9D=84=20=EC=A0=95=EB=A6=AC=ED=95=98=EB=8D=98=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=EB=A5=BC=20try-resource=20=EB=AC=B8=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/EgovPartitionFlatFileItemWriter.java | 21 +--- .../impl/EgovARIACryptoServiceImpl.java | 11 +- .../impl/EgovGeneralCryptoServiceImpl.java | 34 ++---- .../crypto/EgovGeneralCryptoServiceTest.java | 24 +--- .../fdl/excel/impl/EgovExcelServiceImpl.java | 113 +++++++----------- .../rte/fdl/excel/EgovExcelUploadTest.java | 8 +- .../rte/fdl/excel/EgovPOIExcelUploadTest.java | 12 +- .../rte/fdl/filehandling/EgovFileUtil.java | 12 +- .../filehandling/FilehandlingServiceTest.java | 10 +- .../rte/fdl/logging/util/LogFileUtil.java | 45 ++----- .../impl/EgovPropertyServiceImpl.java | 28 ++--- 11 files changed, 105 insertions(+), 213 deletions(-) diff --git a/Batch/org.egovframe.rte.bat.core/src/main/java/org/egovframe/rte/bat/core/item/file/EgovPartitionFlatFileItemWriter.java b/Batch/org.egovframe.rte.bat.core/src/main/java/org/egovframe/rte/bat/core/item/file/EgovPartitionFlatFileItemWriter.java index a217781f..26c35bdc 100755 --- a/Batch/org.egovframe.rte.bat.core/src/main/java/org/egovframe/rte/bat/core/item/file/EgovPartitionFlatFileItemWriter.java +++ b/Batch/org.egovframe.rte.bat.core/src/main/java/org/egovframe/rte/bat/core/item/file/EgovPartitionFlatFileItemWriter.java @@ -546,19 +546,14 @@ public void truncate() throws IOException { */ private void initializeBufferedWriter() throws IOException { File file = resource.getFile(); - FileUtils.setUpOutputFile(file, restarted, append, shouldDeleteIfExists); - FileOutputStream stream = null; - try { - stream = new FileOutputStream(file.getAbsolutePath(), true); + try (FileOutputStream stream = new FileOutputStream(file.getAbsolutePath(), true)) { fileChannel = stream.getChannel(); outputBufferedWriter = getBufferedWriter(fileChannel, encoding); outputBufferedWriter.flush(); - if (append) { - if (file.length() > 0) { - appending = true; - } + if (append && file.length() > 0) { + appending = true; } Assert.state(outputBufferedWriter != null, ""); @@ -571,16 +566,6 @@ private void initializeBufferedWriter() throws IOException { initialized = true; linesWritten = 0; os = stream; - stream = null; - // 2026.02.28 KISA 보안취약점 조치 - } finally { - if (stream != null) { - try { - stream.close(); - } catch (IOException e) { - LOGGER.debug("EgovPartitionFlatFileItemWriter initializeBufferedWriter() : {}", e.getClass().getName(), e.getMessage()); - } - } } } diff --git a/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/crypto/impl/EgovARIACryptoServiceImpl.java b/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/crypto/impl/EgovARIACryptoServiceImpl.java index ee2c273f..9e177ce1 100755 --- a/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/crypto/impl/EgovARIACryptoServiceImpl.java +++ b/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/crypto/impl/EgovARIACryptoServiceImpl.java @@ -66,16 +66,15 @@ public byte[] encrypt(byte[] data, String password) { } public void encrypt(File srcFile, String password, File trgtFile) { - FileInputStream fis = null; - ByteArrayOutputStream baos = null; String fileString; byte[] buffer; if (passwordEncoder.checkPassword(password)) { ARIACipher cipher = new ARIACipher(); cipher.setPassword(password); - try { - fis = new FileInputStream(srcFile); - baos = new ByteArrayOutputStream(); + try ( + FileInputStream fis = new FileInputStream(srcFile); + ByteArrayOutputStream baos = new ByteArrayOutputStream() + ) { buffer = new byte[blockSize]; LOGGER.debug("blockSize = {}", blockSize); int len = 0; @@ -95,8 +94,6 @@ public void encrypt(File srcFile, String password, File trgtFile) { FileUtils.writeStringToFile(trgtFile, encString, "UTF-8", true); } catch (IOException e) { ReflectionUtils.handleReflectionException(e); - } finally { - EgovResourceReleaser.close(fis, baos); } } else { throw new IllegalArgumentException("password not matched!!!"); diff --git a/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/crypto/impl/EgovGeneralCryptoServiceImpl.java b/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/crypto/impl/EgovGeneralCryptoServiceImpl.java index e8595302..0f7cae9c 100755 --- a/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/crypto/impl/EgovGeneralCryptoServiceImpl.java +++ b/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/crypto/impl/EgovGeneralCryptoServiceImpl.java @@ -79,10 +79,6 @@ public BigDecimal encrypt(BigDecimal number, String password) { } public void encrypt(File srcFile, String password, File trgtFile) { - FileInputStream fis = null; - FileWriter fw = null; - BufferedInputStream bis = null; - BufferedWriter bw = null; byte[] buffer = null; if (passwordEncoder.checkPassword(password)) { StandardPBEByteEncryptor cipher = new StandardPBEByteEncryptor(); @@ -90,11 +86,12 @@ public void encrypt(File srcFile, String password, File trgtFile) { cipher.setPassword(password); buffer = new byte[blockSize]; LOGGER.debug("blockSize = {}", blockSize); - try { - fis = new FileInputStream(srcFile); - bis = new BufferedInputStream(fis); - fw = new FileWriter(trgtFile); - bw = new BufferedWriter(fw); + try ( + FileInputStream fis = new FileInputStream(srcFile); + FileWriter fw = new FileWriter(trgtFile); + BufferedInputStream bis = new BufferedInputStream(fis); + BufferedWriter bw = new BufferedWriter(fw) + ) { byte[] encrypted = null; int length = 0; long size = 0L; @@ -115,8 +112,6 @@ public void encrypt(File srcFile, String password, File trgtFile) { LOGGER.debug("processed bytes = {}", size); } catch (IOException e) { ReflectionUtils.handleReflectionException(e); - } finally { - EgovResourceReleaser.close(fw, bw, fis, bis); } } else { throw new IllegalArgumentException("password not matched!!!"); @@ -146,19 +141,16 @@ public BigDecimal decrypt(BigDecimal encryptedNumber, String password) { } public void decrypt(File encryptedFile, String password, File trgtFile) { - FileReader fr = null; - FileOutputStream fos = null; - BufferedReader br = null; - BufferedOutputStream bos = null; if (passwordEncoder.checkPassword(password)) { StandardPBEByteEncryptor cipher = new StandardPBEByteEncryptor(); cipher.setAlgorithm(algorithm); cipher.setPassword(password); - try { - fr = new FileReader(encryptedFile); - br = new BufferedReader(fr); - fos = new FileOutputStream(trgtFile); - bos = new BufferedOutputStream(fos); + try ( + FileReader fr = new FileReader(encryptedFile); + FileOutputStream fos = new FileOutputStream(trgtFile); + BufferedReader br = new BufferedReader(fr); + BufferedOutputStream bos = new BufferedOutputStream(fos) + ) { byte[] encrypted = null; byte[] decrypted = null; String line = null; @@ -170,8 +162,6 @@ public void decrypt(File encryptedFile, String password, File trgtFile) { bos.flush(); } catch (IOException e) { ReflectionUtils.handleReflectionException(e); - } finally { - EgovResourceReleaser.close(fos, bos, fr, br); } } else { throw new IllegalArgumentException("password not matched!!!"); diff --git a/Foundation/org.egovframe.rte.fdl.crypto/src/test/java/org/egovframe/rte/fdl/crypto/EgovGeneralCryptoServiceTest.java b/Foundation/org.egovframe.rte.fdl.crypto/src/test/java/org/egovframe/rte/fdl/crypto/EgovGeneralCryptoServiceTest.java index 9ba6defc..4b0c3c4f 100755 --- a/Foundation/org.egovframe.rte.fdl.crypto/src/test/java/org/egovframe/rte/fdl/crypto/EgovGeneralCryptoServiceTest.java +++ b/Foundation/org.egovframe.rte.fdl.crypto/src/test/java/org/egovframe/rte/fdl/crypto/EgovGeneralCryptoServiceTest.java @@ -36,12 +36,11 @@ private byte[] getHashValue(File file) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DigestOutputStream dout = new DigestOutputStream(baos, sha); byte[] data = new byte[1024]; - FileInputStream fis = null; - BufferedInputStream is = null; - try { - fis = new FileInputStream(file); - is = new BufferedInputStream(fis); + try ( + FileInputStream fis = new FileInputStream(file); + BufferedInputStream is = new BufferedInputStream(fis) + ) { while (true) { int bytesRead = is.read(data); if (bytesRead < 0) @@ -51,21 +50,6 @@ private byte[] getHashValue(File file) throws Exception { dout.flush(); byte[] result = dout.getMessageDigest().digest(); return result; - } finally { - if (is != null) { - try { - is.close(); - } catch (Exception e) { - fail(e.getMessage()); - } - } - if (fis != null) { - try { - fis.close(); - } catch (Exception e) { - fail(e.getMessage()); - } - } } } diff --git a/Foundation/org.egovframe.rte.fdl.excel/src/main/java/org/egovframe/rte/fdl/excel/impl/EgovExcelServiceImpl.java b/Foundation/org.egovframe.rte.fdl.excel/src/main/java/org/egovframe/rte/fdl/excel/impl/EgovExcelServiceImpl.java index eaff43a7..edc16765 100755 --- a/Foundation/org.egovframe.rte.fdl.excel/src/main/java/org/egovframe/rte/fdl/excel/impl/EgovExcelServiceImpl.java +++ b/Foundation/org.egovframe.rte.fdl.excel/src/main/java/org/egovframe/rte/fdl/excel/impl/EgovExcelServiceImpl.java @@ -117,23 +117,20 @@ public void setMapBeanName(String mapBeanName) { */ @Override public Workbook createWorkbook(Workbook wb, String filepath) { + String fullPath = FilenameUtils.getFullPath(filepath); try { - LOGGER.debug("EgovExcelServiceImpl.createWorkbook 1 : templatePath is {}", FilenameUtils.getFullPath(filepath)); - if (!EgovFileUtil.isExistsFile(FilenameUtils.getFullPath(filepath))) { - LOGGER.debug("make dir {}", FilenameUtils.getFullPath(filepath)); - FileUtils.forceMkdir(new File(FilenameUtils.getFullPath(filepath))); + LOGGER.debug("EgovExcelServiceImpl.createWorkbook 1 : templatePath is {}", fullPath); + if (!EgovFileUtil.isExistsFile(fullPath)) { + LOGGER.debug("make dir {}", fullPath); + FileUtils.forceMkdir(new File(fullPath)); } - FileOutputStream fileOut = null; + LOGGER.debug("EgovExcelServiceImpl.createWorkbook 2 : templatePath is {}", filepath); - try { + try (FileOutputStream fileOut = new FileOutputStream(filepath);) { LOGGER.debug("ExcelServiceImpl filepath ..."); - fileOut = new FileOutputStream(filepath); wb.write(fileOut); - } finally { - LOGGER.debug("ExcelServiceImpl loadExcelObject End "); - if (wb != null) wb.close(); - if (fileOut != null) fileOut.close(); } + return wb; } catch (IOException e) { throw new BaseRuntimeException("IOException: createWorkbook", e); @@ -145,19 +142,13 @@ public Workbook createWorkbook(Workbook wb, String filepath) { */ @Override public Workbook loadExcelTemplate(String templateName) { - try { - FileInputStream fileIn = null; - Workbook wb = null; - LOGGER.debug("EgovExcelServiceImpl.loadExcelTemplate : templatePath is {}", templateName); - try { - LOGGER.debug("ExcelServiceImpl loadExcelTemplate ..."); - fileIn = new FileInputStream(templateName); - wb = new HSSFWorkbook(fileIn); - } finally { - LOGGER.debug("ExcelServiceImpl loadExcelTemplate End "); - if (wb != null) wb.close(); - if (fileIn != null) fileIn.close(); - } + LOGGER.debug("EgovExcelServiceImpl.loadExcelTemplate : templatePath is {}", templateName); + + try ( + FileInputStream fileIn = new FileInputStream(templateName); + Workbook wb = new HSSFWorkbook(fileIn) + ) { + LOGGER.debug("ExcelServiceImpl loadExcelTemplate ..."); return wb; } catch (IOException e) { throw new BaseRuntimeException("IOException: loadExcelTemplate(String templateName)", e); @@ -169,22 +160,21 @@ public Workbook loadExcelTemplate(String templateName) { */ @Override public XSSFWorkbook loadExcelTemplate(String templateName, XSSFWorkbook wb) { + LOGGER.debug("EgovExcelServiceImpl.loadExcelTemplate(XSSF) : templatePath is {}", templateName); + try { - FileInputStream fileIn = null; - LOGGER.debug("EgovExcelServiceImpl.loadExcelTemplate(XSSF) : templatePath is {}", templateName); - try { + try (FileInputStream fileIn = new FileInputStream(templateName)) { LOGGER.debug("ExcelServiceImpl loadExcelTemplate(XSSF) ..."); - fileIn = new FileInputStream(templateName); wb = new XSSFWorkbook(fileIn); } finally { LOGGER.debug("ExcelServiceImpl loadExcelTemplate(XSSF) End "); if (wb != null) wb.close(); - if (fileIn != null) fileIn.close(); } - return wb; } catch (IOException e) { throw new BaseRuntimeException("IOException: loadExcelTemplate(String templateName, XSSFWorkbook wb)", e); } + + return wb; } /** @@ -192,16 +182,10 @@ public XSSFWorkbook loadExcelTemplate(String templateName, XSSFWorkbook wb) { */ @Override public Workbook loadWorkbook(String filepath) { - try { - FileInputStream fileIn = null; - Workbook wb = null; - try { - fileIn = new FileInputStream(filepath); - wb = loadWorkbook(fileIn); - } finally { - if (wb != null) wb.close(); - if (fileIn != null) fileIn.close(); - } + try ( + FileInputStream fileIn = new FileInputStream(filepath); + Workbook wb = loadWorkbook(fileIn) + ) { return wb; } catch (IOException e) { throw new BaseRuntimeException("IOException: loadWorkbook(String filepath)", e); @@ -213,18 +197,19 @@ public Workbook loadWorkbook(String filepath) { */ @Override public XSSFWorkbook loadWorkbook(String filepath, XSSFWorkbook wb) { - try { - FileInputStream fileIn = null; - try { - fileIn = new FileInputStream(filepath); - wb = loadWorkbook(fileIn, wb); - } finally { - if (wb != null) wb.close(); - if (fileIn != null) fileIn.close(); - } + try (FileInputStream fileIn = new FileInputStream(filepath)) { + wb = loadWorkbook(fileIn, wb); return wb; } catch (IOException e) { throw new BaseRuntimeException("IOException: loadWorkbook(String filepath, XSSFWorkbook wb)", e); + } finally { + if (wb != null) { + try { + wb.close(); + } catch (IOException e) { + LOGGER.error("IOException: loadWorkbook(String filepath, XSSFWorkbook wb)", e); + } + } } } @@ -234,18 +219,15 @@ public XSSFWorkbook loadWorkbook(String filepath, XSSFWorkbook wb) { @Override public Workbook loadWorkbook(InputStream fileIn) { try { - POIFSFileSystem fs = null; - Workbook wb = null; - try { + try ( + POIFSFileSystem fs = new POIFSFileSystem(fileIn); + Workbook wb = new HSSFWorkbook(fs) + ) { LOGGER.debug("ExcelServiceImpl loadWorkbook ..."); - fs = new POIFSFileSystem(fileIn); - wb = new HSSFWorkbook(fs); + return wb; } finally { - if (wb != null) wb.close(); - if (fs != null) fs.close(); if (fileIn != null) fileIn.close(); } - return wb; } catch (IOException e) { throw new BaseRuntimeException("Workbook loadWorkbook(InputStream fileIn)", e); } @@ -256,23 +238,18 @@ public Workbook loadWorkbook(InputStream fileIn) { * POI XSSFWorkbook(InputStream)은 mark/reset 지원이 필요하므로, 미지원 시 BufferedInputStream으로 감싼다. */ public XSSFWorkbook loadWorkbook(InputStream fileIn, XSSFWorkbook wb) { - InputStream streamToUse = null; + if (fileIn == null) { + throw new BaseRuntimeException("FileInputStream is null"); + } + // 2026.02.28 KISA 보안취약점 조치 - try { + try (InputStream streamToUse = fileIn.markSupported() ? fileIn : new BufferedInputStream(fileIn)) { LOGGER.debug("ExcelServiceImpl loadWorkbook(XSSF) ..."); - streamToUse = (fileIn != null && fileIn.markSupported()) ? fileIn : new BufferedInputStream(fileIn); wb = new XSSFWorkbook(streamToUse); + return wb; } catch (IOException e) { throw new BaseRuntimeException("XSSFWorkbook loadWorkbook(InputStream fileIn, XSSFWorkbook wb)", e); - } finally { - if (streamToUse != null && streamToUse != fileIn) { - try { - streamToUse.close(); - } catch (IOException e) { - LOGGER.debug("Failed to close stream in loadWorkbook(XSSF): {}", e.getMessage()); - } - } } } diff --git a/Foundation/org.egovframe.rte.fdl.excel/src/test/java/org/egovframe/rte/fdl/excel/EgovExcelUploadTest.java b/Foundation/org.egovframe.rte.fdl.excel/src/test/java/org/egovframe/rte/fdl/excel/EgovExcelUploadTest.java index ab0160f4..431f33e1 100755 --- a/Foundation/org.egovframe.rte.fdl.excel/src/test/java/org/egovframe/rte/fdl/excel/EgovExcelUploadTest.java +++ b/Foundation/org.egovframe.rte.fdl.excel/src/test/java/org/egovframe/rte/fdl/excel/EgovExcelUploadTest.java @@ -50,11 +50,10 @@ public void onSetUp() throws SQLException { @Test public void testUploadExcelFile() { LOGGER.debug("### EgovExcelUploadTest testUploadExcelFile() Start "); - try { - FileInputStream fileIn = new FileInputStream(new File("testdata/testBatch.xls")); + try (FileInputStream fileIn = new FileInputStream(new File("testdata/testBatch.xls"))) { excelService.uploadExcel("insertEmpUsingBatch", fileIn); } catch (Exception e) { - LOGGER.debug("[{}] EgovExcelUploadTest testUploadExcelFile() : {}", e.getMessage()); + LOGGER.debug("[{}] EgovExcelUploadTest testUploadExcelFile() : {}", e.getClass().getName(), e.getMessage()); } finally { LOGGER.debug("### EgovExcelUploadTest testUploadExcelFile() End "); } @@ -67,8 +66,7 @@ public void testUploadExcelFile() { @Test public void testBigUploadExcelFile() { LOGGER.debug("### EgovExcelUploadTest testBigUploadExcelFile() Start "); - try { - FileInputStream fileIn = new FileInputStream(new File("testdata/zipExcel.xls")); + try (FileInputStream fileIn = new FileInputStream(new File("testdata/zipExcel.xls"))) { excelBigService.uploadExcel("insertZipUsingBatch", fileIn, 2, (long) 5000); } catch (Exception e) { LOGGER.debug("### EgovExcelUploadTest testBigUploadExcelFile() Exception : {}", e.getMessage()); diff --git a/Foundation/org.egovframe.rte.fdl.excel/src/test/java/org/egovframe/rte/fdl/excel/EgovPOIExcelUploadTest.java b/Foundation/org.egovframe.rte.fdl.excel/src/test/java/org/egovframe/rte/fdl/excel/EgovPOIExcelUploadTest.java index e5d2ed14..af7281b3 100755 --- a/Foundation/org.egovframe.rte.fdl.excel/src/test/java/org/egovframe/rte/fdl/excel/EgovPOIExcelUploadTest.java +++ b/Foundation/org.egovframe.rte.fdl.excel/src/test/java/org/egovframe/rte/fdl/excel/EgovPOIExcelUploadTest.java @@ -51,9 +51,11 @@ public void onSetUp() throws SQLException { @Test public void testUploadExcelFile() { LOGGER.debug("### EgovPOIExcelUploadTest testUploadExcelFile() Start "); - try { + try ( FileInputStream fileIn = new FileInputStream(new File("testdata/testBatch.xlsx")); - excelService.uploadExcel("insertEmpUsingBatch", fileIn, new XSSFWorkbook()); + XSSFWorkbook xwb = new XSSFWorkbook() + ) { + excelService.uploadExcel("insertEmpUsingBatch", fileIn, xwb); } catch (Exception e) { LOGGER.debug("[{}] EgovPOIExcelUploadTest testUploadExcelFile() : {}", e.getClass().getName(), e.getMessage()); } finally { @@ -68,9 +70,11 @@ public void testUploadExcelFile() { @Test public void testBigUploadExcelFile() { LOGGER.debug("### EgovPOIExcelUploadTest testBigUploadExcelFile() Start "); - try { + try ( FileInputStream fileIn = new FileInputStream(new File("testdata/zipExcel.xlsx")); - excelBigService.uploadExcel("insertZipUsingBatch", fileIn, 2, (long) 5000, new XSSFWorkbook()); + XSSFWorkbook xwb = new XSSFWorkbook() + ) { + excelBigService.uploadExcel("insertZipUsingBatch", fileIn, 2, (long) 5000, xwb); } catch (Exception e) { LOGGER.debug("[{}] EgovPOIExcelUploadTest testBigUploadExcelFile() : {}", e.getClass().getName(), e.getMessage()); } finally { diff --git a/Foundation/org.egovframe.rte.fdl.filehandling/src/main/java/org/egovframe/rte/fdl/filehandling/EgovFileUtil.java b/Foundation/org.egovframe.rte.fdl.filehandling/src/main/java/org/egovframe/rte/fdl/filehandling/EgovFileUtil.java index 633a3fa7..f2c6cc87 100755 --- a/Foundation/org.egovframe.rte.fdl.filehandling/src/main/java/org/egovframe/rte/fdl/filehandling/EgovFileUtil.java +++ b/Foundation/org.egovframe.rte.fdl.filehandling/src/main/java/org/egovframe/rte/fdl/filehandling/EgovFileUtil.java @@ -222,14 +222,10 @@ private static List readUtf8LinesLenient(File file) throws IOException { * 텍스트 내용을 파일로 쓴다. */ public static void writeFile(File file, String text) { - FileWriter writer = null; - try { - writer = new FileWriter(file); + try (FileWriter writer = new FileWriter(file)) { writer.write(text); } catch (IOException e) { LOGGER.debug("[{}] EogvFileUtil : {}", e.getClass().getName(), e.getMessage()); - } finally { - EgovResourceReleaser.close(writer); } } @@ -347,9 +343,7 @@ public static StringBuffer readTextFile(String fileName, boolean newline) throws } StringBuffer buf = new StringBuffer(); - BufferedReader in = null; - try { - in = new BufferedReader(new FileReader(file)); + try (BufferedReader in = new BufferedReader(new FileReader(file))) { String str; while ((str = in.readLine()) != null) { buf.append(str); @@ -357,8 +351,6 @@ public static StringBuffer readTextFile(String fileName, boolean newline) throws buf.append(System.lineSeparator()); } } - } finally { - EgovResourceReleaser.close(in); } return buf; diff --git a/Foundation/org.egovframe.rte.fdl.filehandling/src/test/java/org/egovframe/rte/fdl/filehandling/FilehandlingServiceTest.java b/Foundation/org.egovframe.rte.fdl.filehandling/src/test/java/org/egovframe/rte/fdl/filehandling/FilehandlingServiceTest.java index 39019602..986712b9 100755 --- a/Foundation/org.egovframe.rte.fdl.filehandling/src/test/java/org/egovframe/rte/fdl/filehandling/FilehandlingServiceTest.java +++ b/Foundation/org.egovframe.rte.fdl.filehandling/src/test/java/org/egovframe/rte/fdl/filehandling/FilehandlingServiceTest.java @@ -103,16 +103,16 @@ public void testAccessFile() throws IOException { StringBuilder sb = new StringBuilder(); FileObject writtenFile = manager.resolveFile(baseDir, "testfolder/file1.txt"); FileContent writtenContents = writtenFile.getContent(); - InputStream is = writtenContents.getInputStream(); - try { - BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)); + try ( + InputStream is = writtenContents.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)) + ) { String line; while ((line = reader.readLine()) != null) { sb.append(line); } - } finally { - EgovResourceReleaser.close(is); } + assertEquals(string, sb.toString()); } diff --git a/Foundation/org.egovframe.rte.fdl.logging/src/test/java/org/egovframe/rte/fdl/logging/util/LogFileUtil.java b/Foundation/org.egovframe.rte.fdl.logging/src/test/java/org/egovframe/rte/fdl/logging/util/LogFileUtil.java index 2915a56c..22e97a3d 100755 --- a/Foundation/org.egovframe.rte.fdl.logging/src/test/java/org/egovframe/rte/fdl/logging/util/LogFileUtil.java +++ b/Foundation/org.egovframe.rte.fdl.logging/src/test/java/org/egovframe/rte/fdl/logging/util/LogFileUtil.java @@ -63,23 +63,16 @@ public static int countLines(BufferedReader in) throws IOException { // 파일의 라인수 리턴 public static int countLines(String fileName) { - BufferedReader in = null; int numLines = 0; - try { + try ( FileReader fileReader = new FileReader(fileName); - in = new BufferedReader(fileReader); + BufferedReader in = new BufferedReader(fileReader) + ) { numLines = countLines(in); } catch (IOException e) { e.getMessage(); - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException e) { - e.getMessage(); - } - } } + return numLines; } @@ -99,23 +92,16 @@ public static Boolean contains(String str, BufferedReader in) // 단어 포함여부 확인 public static Boolean contains(String fileName, String str) { - BufferedReader in = null; Boolean bool = false; - try { + try ( FileReader fileReader = new FileReader(fileName); - in = new BufferedReader(fileReader); + BufferedReader in = new BufferedReader(fileReader) + ) { bool = contains(str, in); } catch (IOException e) { e.getMessage(); - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException e) { - e.getMessage(); - } - } } + return bool; } @@ -136,23 +122,16 @@ public static int countWords(String str, BufferedReader in) // 단어수 리턴 public static int countWords(String fileName, String str) { - BufferedReader in = null; int numWords = 0; - try { + try ( FileReader fileReader = new FileReader(fileName); - in = new BufferedReader(fileReader); + BufferedReader in = new BufferedReader(fileReader) + ) { numWords = countWords(str, in); } catch (IOException e) { e.getMessage(); - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException e) { - e.getMessage(); - } - } } + return numWords; } } diff --git a/Foundation/org.egovframe.rte.fdl.property/src/main/java/org/egovframe/rte/fdl/property/impl/EgovPropertyServiceImpl.java b/Foundation/org.egovframe.rte.fdl.property/src/main/java/org/egovframe/rte/fdl/property/impl/EgovPropertyServiceImpl.java index 59e079e0..b22d3c82 100755 --- a/Foundation/org.egovframe.rte.fdl.property/src/main/java/org/egovframe/rte/fdl/property/impl/EgovPropertyServiceImpl.java +++ b/Foundation/org.egovframe.rte.fdl.property/src/main/java/org/egovframe/rte/fdl/property/impl/EgovPropertyServiceImpl.java @@ -19,6 +19,7 @@ import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler; import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.commons.lang3.StringUtils; +import org.egovframe.rte.fdl.cmmn.exception.BaseRuntimeException; import org.egovframe.rte.fdl.cmmn.exception.FdlException; import org.egovframe.rte.fdl.property.EgovPropertyService; import org.slf4j.Logger; @@ -366,30 +367,15 @@ private void loadPropertyLoop(Resource[] resources, String encoding) { * @param encoding 인코딩정보 */ private void loadPropertyRes(Resource resource, String encoding) { - InputStream inputStream = null; - InputStreamReader inputStreamReader = null; + // 2026.02.28 KISA 보안취약점 조치 - try { - inputStream = resource.getInputStream(); - inputStreamReader = new InputStreamReader(inputStream, StringUtils.isEmpty(encoding) ? DEFAULT_ENCODING : encoding); + try ( + InputStream inputStream = resource.getInputStream(); + InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StringUtils.isEmpty(encoding) ? DEFAULT_ENCODING : encoding) + ) { egovProperties.read(inputStreamReader); } catch (ConfigurationException | IOException e) { - throw new RuntimeException(e); - } finally { - if (inputStreamReader != null) { - try { - inputStreamReader.close(); - } catch (IOException e) { - LOGGER.debug("Failed to close loadPropertyRes : {}", e.getMessage()); - } - } else if (inputStream != null) { - try { - inputStream.close(); - } catch (IOException e) { - LOGGER.debug("Failed to close loadPropertyRes : {}", e.getMessage()); - } - } + throw new BaseRuntimeException(e); } } - }