服务端尝试更新一个不存在的线程池实例时, 通过抛异常处理. (#30)

pull/39/head
chen.ma 4 years ago
parent 7c1c29fa10
commit a631c676c7

@ -0,0 +1,40 @@
package cn.hippo4j.common.toolkit;
import java.util.Iterator;
import java.util.Map;
/**
* Collection util.
*
* @author chen.ma
* @date 2021/12/22 20:43
*/
public class CollectionUtil {
/**
* Get first.
*
* @param iterable
* @param <T>
* @return
*/
public static <T> T getFirst(Iterable<T> iterable) {
Iterator<T> iterator;
if (iterable != null && (iterator = iterable.iterator()) != null && iterator.hasNext()) {
return iterator.next();
}
return null;
}
/**
* Is not empty.
*
* @param map
* @return
*/
public static boolean isNotEmpty(Map<?, ?> map) {
return map != null && map.isEmpty() == false;
}
}

@ -0,0 +1,48 @@
package cn.hippo4j.common.toolkit;
/**
* String util.
*
* @author chen.ma
* @date 2021/12/22 20:58
*/
public class StringUtil {
public static final String EMPTY = "";
/**
* Is blank.
*
* @param str
* @return
*/
public static boolean isBlank(String str) {
int length;
if ((str == null) || ((length = str.length()) == 0)) {
return true;
}
for (int i = 0; i < length; i++) {
char c = str.charAt(i);
boolean charNotBlank = Character.isWhitespace(c) || Character.isSpaceChar(c) || c == '\ufeff' || c == '\u202a';
if (charNotBlank == false) {
return false;
}
}
return true;
}
/**
* Is not blank.
*
* @param str
* @return
*/
public static boolean isNotBlank(String str) {
return isBlank(str) == false;
}
}

@ -1,10 +1,7 @@
package cn.hippo4j.config.service.biz.impl;
import cn.hippo4j.common.config.ApplicationContextHolder;
import cn.hippo4j.common.toolkit.ConditionUtil;
import cn.hippo4j.common.toolkit.ContentUtil;
import cn.hippo4j.common.toolkit.JSONUtil;
import cn.hippo4j.common.toolkit.Md5Util;
import cn.hippo4j.common.toolkit.*;
import cn.hippo4j.config.event.LocalDataChangeEvent;
import cn.hippo4j.config.mapper.ConfigInfoMapper;
import cn.hippo4j.config.mapper.ConfigInstanceMapper;
@ -25,12 +22,15 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.LinkedTransferQueue;
import java.util.concurrent.SynchronousQueue;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static cn.hippo4j.config.service.ConfigCacheService.getContent;
/**
* Config service impl.
*
@ -100,6 +100,7 @@ public class ConfigServiceImpl implements ConfigService {
@Override
public void insertOrUpdate(String identify, ConfigAllInfo configInfo) {
verification(identify);
LambdaQueryWrapper<ConfigAllInfo> queryWrapper = Wrappers.lambdaQuery(ConfigAllInfo.class)
.eq(ConfigAllInfo::getTenantId, configInfo.getTenantId())
.eq(ConfigInfoBase::getItemId, configInfo.getItemId())
@ -123,6 +124,13 @@ public class ConfigServiceImpl implements ConfigService {
ConfigChangePublisher.notifyConfigChange(new LocalDataChangeEvent(identify, ContentUtil.getGroupKey(configInfo)));
}
private void verification(String identify) {
if (StringUtil.isNotBlank(identify)) {
Map content = getContent(identify);
Assert.isTrue(CollectionUtil.isNotEmpty(content), "线程池实例不存在, 请尝试页面刷新.");
}
}
public Long addConfigInfo(ConfigAllInfo config) {
config.setContent(ContentUtil.getPoolContent(config));
config.setMd5(Md5Util.getTpContentMd5(config));

Loading…
Cancel
Save