Pre Merge pull request !545 from DoubleH/update-coverity工具扫描代码之后的优化

This commit is contained in:
DoubleH 2024-05-28 06:36:42 +00:00 committed by Gitee
commit 488626f819
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
28 changed files with 66 additions and 63 deletions

View File

@ -4,6 +4,7 @@ import cn.dev33.satoken.secure.BCrypt;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -34,6 +35,8 @@ import org.dromara.web.service.IAuthStrategy;
import org.dromara.web.service.SysLoginService;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* 密码认证策略
*
@ -95,7 +98,7 @@ public class PasswordAuthStrategy implements IAuthStrategy {
* @param uuid 唯一标识
*/
private void validateCaptcha(String tenantId, String username, String code, String uuid) {
String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + StringUtils.defaultString(uuid, "");
String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + Objects.toString(uuid, StrUtil.EMPTY);
String captcha = RedisUtils.getCacheObject(verifyKey);
RedisUtils.deleteObject(verifyKey);
if (captcha == null) {

View File

@ -21,8 +21,7 @@ public class Threads {
public static void sleep(long milliseconds) {
try {
Thread.sleep(milliseconds);
} catch (InterruptedException e) {
return;
} catch (InterruptedException ignore) {
}
}

View File

@ -21,6 +21,5 @@ public enum EncodeType {
/**
* 16进制编码
*/
HEX;
HEX
}

View File

@ -14,7 +14,6 @@ import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* 数据库助手

View File

@ -2,6 +2,7 @@ package org.dromara.common.oss.core;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.IdUtil;
import lombok.Getter;
import org.dromara.common.core.constant.Constants;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.StringUtils;
@ -46,7 +47,11 @@ public class OssClient {
/**
* 服务商
* -- GETTER --
* 服务商
*/
@Getter
private final String configKey;
/**
@ -485,13 +490,6 @@ public class OssClient {
return path.replace(getUrl() + StringUtils.SLASH, "");
}
/**
* 服务商
*/
public String getConfigKey() {
return configKey;
}
/**
* 获取是否使用 HTTPS 的配置并返回相应的协议头部
*

View File

@ -2,7 +2,6 @@ package org.dromara.common.satoken.core.dao;
import cn.dev33.satoken.dao.SaTokenDao;
import cn.dev33.satoken.util.SaFoxUtil;
import cn.hutool.core.lang.Console;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.dromara.common.redis.utils.RedisUtils;
@ -99,8 +98,7 @@ public class PlusSaTokenDao implements SaTokenDao {
*/
@Override
public Object getObject(String key) {
Object o = CAFFEINE.get(key, k -> RedisUtils.getCacheObject(key));
return o;
return CAFFEINE.get(key, k -> RedisUtils.getCacheObject(key));
}
/**

View File

@ -1,5 +1,6 @@
package org.dromara.common.web.core;
import org.dromara.common.core.utils.StringUtils;
import org.springframework.web.servlet.LocaleResolver;
import jakarta.servlet.http.HttpServletRequest;
@ -17,9 +18,12 @@ public class I18nLocaleResolver implements LocaleResolver {
public Locale resolveLocale(HttpServletRequest httpServletRequest) {
String language = httpServletRequest.getHeader("content-language");
Locale locale = Locale.getDefault();
if (language != null && language.length() > 0) {
if (StringUtils.isNotBlank(language)) {
String[] split = language.split("_");
locale = new Locale(split[0], split[1]);
locale = new Locale.Builder()
.setLanguage(split[0])
.setRegion(split[1])
.build();
}
return locale;
}

View File

@ -33,13 +33,13 @@ public class RedisLockController {
@Lock4j(keys = {"#key"})
@GetMapping("/testLock4j")
public R<String> testLock4j(String key, String value) {
System.out.println("start:" + key + ",time:" + LocalTime.now().toString());
System.out.println("start:" + key + ",time:" + LocalTime.now());
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("end :" + key + ",time:" + LocalTime.now().toString());
System.out.println("end :" + key + ",time:" + LocalTime.now());
return R.ok("操作成功", value);
}

View File

@ -49,7 +49,7 @@ public class BoundedQueueController {
for (int i = 0; i < 11; i++) {
String data = "data-" + i;
boolean flag = QueueUtils.addBoundedQueueObject(queueName, data);
if (flag == false) {
if (!flag) {
log.info("通道: {} , 发送数据: {} 失败, 通道已满", queueName, data);
} else {
log.info("通道: {} , 发送数据: {}", queueName, data);

View File

@ -15,6 +15,9 @@ import org.dromara.common.excel.annotation.ExcelEnumFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.common.excel.convert.ExcelEnumConvert;
import java.io.Serial;
import java.io.Serializable;
/**
* 带有下拉选的Excel导出
*
@ -24,8 +27,9 @@ import org.dromara.common.excel.convert.ExcelEnumConvert;
@ExcelIgnoreUnannotated
@AllArgsConstructor
@NoArgsConstructor
public class ExportDemoVo {
public class ExportDemoVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**

View File

@ -28,21 +28,21 @@ public class SysConfigBo extends BaseEntity {
* 参数名称
*/
@NotBlank(message = "参数名称不能为空")
@Size(min = 0, max = 100, message = "参数名称不能超过{max}个字符")
@Size(max = 100, message = "参数名称不能超过{max}个字符")
private String configName;
/**
* 参数键名
*/
@NotBlank(message = "参数键名不能为空")
@Size(min = 0, max = 100, message = "参数键名长度不能超过{max}个字符")
@Size(max = 100, message = "参数键名长度不能超过{max}个字符")
private String configKey;
/**
* 参数键值
*/
@NotBlank(message = "参数键值不能为空")
@Size(min = 0, max = 500, message = "参数键值长度不能超过{max}个字符")
@Size(max = 500, message = "参数键值长度不能超过{max}个字符")
private String configValue;
/**

View File

@ -35,13 +35,13 @@ public class SysDeptBo extends BaseEntity {
* 部门名称
*/
@NotBlank(message = "部门名称不能为空")
@Size(min = 0, max = 30, message = "部门名称长度不能超过{max}个字符")
@Size(max = 30, message = "部门名称长度不能超过{max}个字符")
private String deptName;
/**
* 部门类别编码
*/
@Size(min = 0, max = 100, message = "部门类别编码长度不能超过{max}个字符")
@Size(max = 100, message = "部门类别编码长度不能超过{max}个字符")
private String deptCategory;
/**
@ -58,14 +58,14 @@ public class SysDeptBo extends BaseEntity {
/**
* 联系电话
*/
@Size(min = 0, max = 11, message = "联系电话长度不能超过{max}个字符")
@Size(max = 11, message = "联系电话长度不能超过{max}个字符")
private String phone;
/**
* 邮箱
*/
@Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
@Size(max = 50, message = "邮箱长度不能超过{max}个字符")
private String email;
/**

View File

@ -34,27 +34,27 @@ public class SysDictDataBo extends BaseEntity {
* 字典标签
*/
@NotBlank(message = "字典标签不能为空")
@Size(min = 0, max = 100, message = "字典标签长度不能超过{max}个字符")
@Size(max = 100, message = "字典标签长度不能超过{max}个字符")
private String dictLabel;
/**
* 字典键值
*/
@NotBlank(message = "字典键值不能为空")
@Size(min = 0, max = 100, message = "字典键值长度不能超过{max}个字符")
@Size(max = 100, message = "字典键值长度不能超过{max}个字符")
private String dictValue;
/**
* 字典类型
*/
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型长度不能超过{max}个字符")
@Size(max = 100, message = "字典类型长度不能超过{max}个字符")
private String dictType;
/**
* 样式属性其他样式扩展
*/
@Size(min = 0, max = 100, message = "样式属性长度不能超过{max}个字符")
@Size(max = 100, message = "样式属性长度不能超过{max}个字符")
private String cssClass;
/**

View File

@ -30,14 +30,14 @@ public class SysDictTypeBo extends BaseEntity {
* 字典名称
*/
@NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过{max}个字符")
@Size(max = 100, message = "字典类型名称长度不能超过{max}个字符")
private String dictName;
/**
* 字典类型
*/
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过{max}个字符")
@Size(max = 100, message = "字典类型类型长度不能超过{max}个字符")
@Pattern(regexp = RegexConstants.DICTIONARY_TYPE, message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
private String dictType;

View File

@ -37,7 +37,7 @@ public class SysMenuBo extends BaseEntity {
* 菜单名称
*/
@NotBlank(message = "菜单名称不能为空")
@Size(min = 0, max = 50, message = "菜单名称长度不能超过{max}个字符")
@Size(max = 50, message = "菜单名称长度不能超过{max}个字符")
private String menuName;
/**
@ -49,13 +49,13 @@ public class SysMenuBo extends BaseEntity {
/**
* 路由地址
*/
@Size(min = 0, max = 200, message = "路由地址不能超过{max}个字符")
@Size(max = 200, message = "路由地址不能超过{max}个字符")
private String path;
/**
* 组件路径
*/
@Size(min = 0, max = 200, message = "组件路径不能超过{max}个字符")
@Size(max = 200, message = "组件路径不能超过{max}个字符")
private String component;
/**
@ -93,7 +93,7 @@ public class SysMenuBo extends BaseEntity {
* 权限标识
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@Size(min = 0, max = 100, message = "权限标识长度不能超过{max}个字符")
@Size(max = 100, message = "权限标识长度不能超过{max}个字符")
@Pattern(regexp = RegexConstants.PERMISSION_STRING, message = "权限标识必须符合 tool:build:list 格式")
private String perms;

View File

@ -30,7 +30,7 @@ public class SysNoticeBo extends BaseEntity {
*/
@Xss(message = "公告标题不能包含脚本字符")
@NotBlank(message = "公告标题不能为空")
@Size(min = 0, max = 50, message = "公告标题不能超过{max}个字符")
@Size(max = 50, message = "公告标题不能超过{max}个字符")
private String noticeTitle;
/**

View File

@ -40,20 +40,20 @@ public class SysPostBo extends BaseEntity {
* 岗位编码
*/
@NotBlank(message = "岗位编码不能为空")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过{max}个字符")
@Size(max = 64, message = "岗位编码长度不能超过{max}个字符")
private String postCode;
/**
* 岗位名称
*/
@NotBlank(message = "岗位名称不能为空")
@Size(min = 0, max = 50, message = "岗位名称长度不能超过{max}个字符")
@Size(max = 50, message = "岗位名称长度不能超过{max}个字符")
private String postName;
/**
* 岗位类别编码
*/
@Size(min = 0, max = 100, message = "类别编码长度不能超过{max}个字符")
@Size(max = 100, message = "类别编码长度不能超过{max}个字符")
private String postCategory;
/**

View File

@ -32,14 +32,14 @@ public class SysRoleBo extends BaseEntity {
* 角色名称
*/
@NotBlank(message = "角色名称不能为空")
@Size(min = 0, max = 30, message = "角色名称长度不能超过{max}个字符")
@Size(max = 30, message = "角色名称长度不能超过{max}个字符")
private String roleName;
/**
* 角色权限字符串
*/
@NotBlank(message = "角色权限字符串不能为空")
@Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符")
@Size(max = 100, message = "权限字符长度不能超过{max}个字符")
private String roleKey;
/**

View File

@ -39,7 +39,7 @@ public class SysUserBo extends BaseEntity {
*/
@Xss(message = "用户账号不能包含脚本字符")
@NotBlank(message = "用户账号不能为空")
@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
@Size(max = 30, message = "用户账号长度不能超过{max}个字符")
private String userName;
/**
@ -47,7 +47,7 @@ public class SysUserBo extends BaseEntity {
*/
@Xss(message = "用户昵称不能包含脚本字符")
@NotBlank(message = "用户昵称不能为空")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
@Size(max = 30, message = "用户昵称长度不能超过{max}个字符")
private String nickName;
/**
@ -59,7 +59,7 @@ public class SysUserBo extends BaseEntity {
* 用户邮箱
*/
@Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
@Size(max = 50, message = "邮箱长度不能超过{max}个字符")
private String email;
/**

View File

@ -27,7 +27,7 @@ public class SysUserProfileBo extends BaseEntity {
* 用户昵称
*/
@Xss(message = "用户昵称不能包含脚本字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
@Size(max = 30, message = "用户昵称长度不能超过{max}个字符")
private String nickName;
/**
@ -35,7 +35,7 @@ public class SysUserProfileBo extends BaseEntity {
*/
@Sensitive(strategy = SensitiveStrategy.EMAIL)
@Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
@Size(max = 50, message = "邮箱长度不能超过{max}个字符")
private String email;
/**

View File

@ -1,6 +1,5 @@
package org.dromara.system.service;
import org.dromara.system.domain.SysClient;
import org.dromara.system.domain.vo.SysClientVo;
import org.dromara.system.domain.bo.SysClientBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;

View File

@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 参数配置 服务层实现
@ -147,7 +148,7 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
public String updateConfig(SysConfigBo bo) {
int row = 0;
SysConfig config = MapstructUtils.convert(bo, SysConfig.class);
if (config.getConfigId() != null) {
if (Objects.nonNull(config) && Objects.nonNull(config.getConfigId())) {
SysConfig temp = baseMapper.selectById(config.getConfigId());
if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) {
CacheUtils.evict(CacheNames.SYS_CONFIG, temp.getConfigKey());

View File

@ -105,7 +105,7 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
if (msg == null) {
msg = "";
}
return "[" + msg.toString() + "]";
return "[" + msg + "]";
}
@Override

View File

@ -4,6 +4,7 @@ import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -352,7 +353,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
rm.setMenuId(menuId);
list.add(rm);
}
if (list.size() > 0) {
if (CollectionUtil.isNotEmpty(list)) {
rows = roleMenuMapper.insertBatch(list) ? list.size() : 0;
}
return rows;
@ -373,7 +374,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
rd.setDeptId(deptId);
list.add(rd);
}
if (list.size() > 0) {
if (CollectionUtil.isNotEmpty(list)) {
rows = roleDeptMapper.insertBatch(list) ? list.size() : 0;
}
return rows;

View File

@ -13,10 +13,12 @@
package org.dromara.workflow.flowable;
import cn.hutool.core.collection.CollectionUtil;
import org.flowable.bpmn.model.Event;
import org.flowable.bpmn.model.Process;
import org.flowable.bpmn.model.*;
import org.flowable.image.ProcessDiagramGenerator;
import org.springframework.util.CollectionUtils;
import java.awt.*;
import java.awt.image.BufferedImage;
@ -69,9 +71,8 @@ public class CustomDefaultProcessDiagramGenerator implements ProcessDiagramGener
}
} else {
List<ExtensionElement> eventTypeElements = startEvent.getExtensionElements().get("eventType");
if (eventTypeElements != null && eventTypeElements.size() > 0) {
if (CollectionUtil.isNotEmpty(eventTypeElements)) {
processDiagramCanvas.drawEventRegistryStartEvent(graphicInfo, scaleFactor);
} else {
processDiagramCanvas.drawNoneStartEvent(graphicInfo);
}
@ -350,7 +351,7 @@ public class CustomDefaultProcessDiagramGenerator implements ProcessDiagramGener
} else {
List<ExtensionElement> eventTypeElements = boundaryEvent.getExtensionElements().get("eventType");
if (eventTypeElements != null && eventTypeElements.size() > 0) {
if (CollectionUtil.isNotEmpty(eventTypeElements)) {
processDiagramCanvas.drawCatchingEventRegistryEvent(flowNode.getName(), graphicInfo, boundaryEvent.isCancelActivity(), scaleFactor);
}
}
@ -634,7 +635,7 @@ public class CustomDefaultProcessDiagramGenerator implements ProcessDiagramGener
}
}
if (allGraphicInfos.size() > 0) {
if (CollectionUtil.isNotEmpty(allGraphicInfos)) {
boolean needsTranslationX = false;
boolean needsTranslationY = false;
@ -752,7 +753,7 @@ public class CustomDefaultProcessDiagramGenerator implements ProcessDiagramGener
FlowElement sourceElement = bpmnModel.getFlowElement(sourceRef);
FlowElement targetElement = bpmnModel.getFlowElement(targetRef);
List<GraphicInfo> graphicInfoList = bpmnModel.getFlowLocationGraphicInfo(sequenceFlow.getId());
if (graphicInfoList != null && graphicInfoList.size() > 0) {
if (CollectionUtil.isNotEmpty(graphicInfoList)) {
graphicInfoList = connectionPerfectionizer(processDiagramCanvas, bpmnModel, sourceElement, targetElement, graphicInfoList);
int[] xPoints = new int[graphicInfoList.size()];
int[] yPoints = new int[graphicInfoList.size()];

View File

@ -8,7 +8,6 @@ import org.flowable.engine.impl.util.CommandContextUtil;
import org.flowable.job.service.JobHandler;
import org.flowable.job.service.impl.persistence.entity.JobEntity;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.flowable.variable.api.delegate.VariableScope;
/**

View File

@ -3,7 +3,6 @@ package org.dromara.workflow.listener;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.workflow.utils.QueryUtils;
import org.flowable.engine.TaskService;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
import org.flowable.task.api.Task;

View File

@ -2,7 +2,6 @@ package org.dromara.workflow.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.workflow.domain.TestLeave;
import org.dromara.workflow.domain.bo.TestLeaveBo;
import org.dromara.workflow.domain.vo.TestLeaveVo;