From 88d4638c27c1f996ea884c2b890c4a0c1d25a76d Mon Sep 17 00:00:00 2001 From: zhangshuai Date: Tue, 5 Nov 2024 09:46:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=8E=B7=E5=8F=96=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=89=8D=E6=A0=A1=E9=AA=8C=20=20offset?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../geedge/api/controller/APIController.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/geedge/api/controller/APIController.java b/src/main/java/net/geedge/api/controller/APIController.java index 75e3bc0..8d04d32 100644 --- a/src/main/java/net/geedge/api/controller/APIController.java +++ b/src/main/java/net/geedge/api/controller/APIController.java @@ -317,7 +317,7 @@ public class APIController { throw new APIException(RCode.BAD_REQUEST); } Map result = Constant.PLAYBOOK_RUN_RESULT.get(id); - if (!T.MapUtil.getStr(result, "status").equals("running")){ + if (T.MapUtil.isNotEmpty(result) && !T.MapUtil.getStr(result, "status").equals("running")){ Constant.PLAYBOOK_RUN_RESULT.remove(id); } return R.ok().putData(result); @@ -333,14 +333,17 @@ public class APIController { // log file File logFile = T.FileUtil.file(Constant.TEMP_PATH, id, "result.log"); HashMap result = T.MapUtil.newHashMap(false); + try (RandomAccessFile raf = new RandomAccessFile(logFile, "r")) { - raf.seek(offset); - byte[] bytes = new byte[(int)raf.length() - offset]; - raf.readFully(bytes); - String content = new String(bytes); - result.put("content", content); - result.put("length", bytes.length); - result.put("offset", offset + bytes.length); + if (offset < raf.length()) { + raf.seek(offset); + byte[] bytes = new byte[(int)raf.length() - offset]; + raf.readFully(bytes); + String content = new String(bytes); + result.put("content", content); + result.put("length", bytes.length); + result.put("offset", offset + bytes.length); + } } catch (IOException e) { log.error("getJobResultLog error", e); throw new APIException(RCode.ERROR);