From b51ffb81a3ad4efebf00154f769b03087c0ab582 Mon Sep 17 00:00:00 2001 From: Richard <49510754+f1558@users.noreply.github.com> Date: Fri, 4 Nov 2022 23:31:41 +0800 Subject: [PATCH] [Bugfix] No thread-bound request found. (#743) --- .../core/service/oprecord/impl/OpLogWrapServiceImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/oprecord/impl/OpLogWrapServiceImpl.java b/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/oprecord/impl/OpLogWrapServiceImpl.java index 3918da19..ffcc2eba 100644 --- a/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/oprecord/impl/OpLogWrapServiceImpl.java +++ b/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/oprecord/impl/OpLogWrapServiceImpl.java @@ -7,6 +7,9 @@ import com.didiglobal.logi.security.service.OplogService; import com.xiaojukeji.know.streaming.km.core.service.oprecord.OpLogWrapService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; @Service public class OpLogWrapServiceImpl implements OpLogWrapService { @@ -18,6 +21,12 @@ public class OpLogWrapServiceImpl implements OpLogWrapService { @Override public Integer saveOplogAndIgnoreException(OplogDTO oplogDTO) { try { + // fix request that cannot find thread binding (issue#743) + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (null == servletRequestAttributes) { + servletRequestAttributes = new ServletRequestAttributes(new MockHttpServletRequest()); + RequestContextHolder.setRequestAttributes(servletRequestAttributes, true); + } return oplogService.saveOplog(oplogDTO); } catch (Exception e) { log.error("method=saveOplogAndIgnoreException||oplogDTO={}||errMsg=exception.", oplogDTO, e);