From 7677f237676d8b321b1d57b50660e101d539cd2c Mon Sep 17 00:00:00 2001 From: curry772 Date: Fri, 28 Aug 2026 10:43:54 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AA=A8=EB=8B=88=ED=84=B0=EB=A7=81=20?= =?UTF-8?q?=ED=83=80=EC=9E=84=EC=95=84=EC=9B=83=20=EB=B6=84=EB=A5=98=20?= =?UTF-8?q?=EB=B0=8F=20=EC=9D=91=EB=8B=B5=EC=97=90=EB=9F=AC=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EB=84=90=20=EC=95=88=EC=A0=84=EC=84=B1=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - EAIServiceMonitor: timeOutCodes.indexOf 판정을 '> 0' -> '>= 0' 으로 수정 (목록 첫 번째 코드가 타임아웃이 아닌 시스템에러로 분류되던 문제) - EAIServiceMonitor: getLogRspErrCd() null 대비 defaultString 적용, 리터럴 비교 순서 변경 - EAILogDAO, EAIFileLogger: 응답에러코드 substring(1,2) 를 널 안전한 StringUtils.substring 으로 교체 --- .../java/com/eactive/eai/common/logger/EAIFileLogger.java | 3 ++- .../java/com/eactive/eai/common/logger/EAILogDAO.java | 8 ++++---- .../com/eactive/eai/common/monitor/EAIServiceMonitor.java | 7 ++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/eactive/eai/common/logger/EAIFileLogger.java b/src/main/java/com/eactive/eai/common/logger/EAIFileLogger.java index e665082..7451a72 100644 --- a/src/main/java/com/eactive/eai/common/logger/EAIFileLogger.java +++ b/src/main/java/com/eactive/eai/common/logger/EAIFileLogger.java @@ -717,7 +717,8 @@ public class EAIFileLogger sb.appendAndDelimeter( NullControl.addSpace(message.getRspnsChngMsgType())); // 응답변환유형 // log level 'E' or 'F' - if ("E".equals(logRspErrCd.substring(1, 2)) || "F".equals(logRspErrCd.substring(1, 2))) { + String logErrLvl = StringUtils.substring(logRspErrCd, 1, 2); + if ("E".equals(logErrLvl) || "F".equals(logErrLvl)) { sb.appendAndDelimeter( NullControl.addSpace(logRspErrCd)); //EAI에러코드 sb.appendAndDelimeter( StringUtil.chunkString(message.getRspErrMsg(),1000)); //EAI에러내용 } diff --git a/src/main/java/com/eactive/eai/common/logger/EAILogDAO.java b/src/main/java/com/eactive/eai/common/logger/EAILogDAO.java index 6130554..902e63f 100644 --- a/src/main/java/com/eactive/eai/common/logger/EAILogDAO.java +++ b/src/main/java/com/eactive/eai/common/logger/EAILogDAO.java @@ -661,8 +661,8 @@ public class EAILogDAO { eaiLog.setRspnschngmsgtype(message.getRspnsChngMsgType()); // log level 'E' or 'F' - if ("E".equals(logRspErrCd.substring(1, 2)) - || "F".equals(logRspErrCd.substring(1, 2))) { + String logErrLvl = StringUtils.substring(logRspErrCd, 1, 2); + if ("E".equals(logErrLvl) || "F".equals(logErrLvl)) { // EAI에러코드 eaiLog.setEaierrcd(logRspErrCd); // EAI에러내용 @@ -770,8 +770,8 @@ public class EAILogDAO { // 수동시스템어댑터업무그룹명 eaiErrorLog.setPsvsysadptrbzwkgroupname(message.getCurrentSvcMsg().getPsvSysItfTp()); - if ("E".equals(logRspErrCd.substring(1, 2)) - || "F".equals(logRspErrCd.substring(1, 2))) { + String logErrLvl = StringUtils.substring(logRspErrCd, 1, 2); + if ("E".equals(logErrLvl) || "F".equals(logErrLvl)) { // EAI에러코드 eaiErrorLog.setEaierrcd(logRspErrCd); // EAI에러내용 diff --git a/src/main/java/com/eactive/eai/common/monitor/EAIServiceMonitor.java b/src/main/java/com/eactive/eai/common/monitor/EAIServiceMonitor.java index f8342c1..37310a1 100644 --- a/src/main/java/com/eactive/eai/common/monitor/EAIServiceMonitor.java +++ b/src/main/java/com/eactive/eai/common/monitor/EAIServiceMonitor.java @@ -292,7 +292,7 @@ public class EAIServiceMonitor implements Lifecycle { msgPssTm = msg.getMsgPssTm(); msgRcvTm = msg.getMsgRcvTm(); logPssSno = msg.getLogPssSno(); - rspErrCd = msg.getLogRspErrCd(); + rspErrCd = StringUtils.defaultString(msg.getLogRspErrCd()); eaiSvcCd = msg.getEAISvcCd(); svcOgNo = msg.getSvcOgNo(); bwkCls = msg.getBwkCls(); @@ -317,7 +317,7 @@ public class EAIServiceMonitor implements Lifecycle { error = rspErrCd.substring(1, 2); } - if (rspErrCd.equals("RECEAIINA001")) { + if ("RECEAIINA001".equals(rspErrCd)) { error = "S"; } @@ -326,7 +326,8 @@ public class EAIServiceMonitor implements Lifecycle { iErrorCode = 1; // Timeout - if (timeOutCodes.indexOf(rspErrCd) > 0) { + // 목록 첫 번째 코드는 indexOf 가 0 이므로 '> 0' 이면 매칭되지 않는다. (isTimeOutCodes() 와 동일하게 '>= 0') + if (timeOutCodes.indexOf(rspErrCd) >= 0) { iErrorCode = 2; } // 업무에러코드에 없을 경우 통신(시스템)에러로 처리함