From 7e7ef5679486b4d14bc6dbb98de65f9c0d8bdec8 Mon Sep 17 00:00:00 2001 From: zhangshuai Date: Tue, 5 Nov 2024 09:55:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20job=20=E6=97=A5=E5=BF=97=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=89=8D=E6=A0=A1=E9=AA=8C=20offset?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runner/service/impl/JobServiceImpl.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/geedge/asw/module/runner/service/impl/JobServiceImpl.java b/src/main/java/net/geedge/asw/module/runner/service/impl/JobServiceImpl.java index 80e495b..194114a 100644 --- a/src/main/java/net/geedge/asw/module/runner/service/impl/JobServiceImpl.java +++ b/src/main/java/net/geedge/asw/module/runner/service/impl/JobServiceImpl.java @@ -156,13 +156,20 @@ public class JobServiceImpl extends ServiceImpl implements IJ if (logFile.exists()){ 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()){ + result.put("content", T.StrUtil.EMPTY); + result.put("length", 0); + result.put("offset", offset); + }else { + 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("queryJobLog error", e); throw new ASWException(RCode.ERROR);