diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/version/MultiVersionBeanUtils.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/version/MultiVersionBeanUtils.java index 294de8973..a6393917d 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/version/MultiVersionBeanUtils.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/version/MultiVersionBeanUtils.java @@ -28,7 +28,7 @@ public class MultiVersionBeanUtils { throw new NullPointerException("no beans of type " + clazz.getName()); } if (StringUtils.isEmpty(version)) { - T t = beans.values().stream().filter(bean -> bean.getVersion() == null).findFirst().orElse(null); + T t = beans.values().stream().filter(bean -> bean.getVersion() == null || bean.getVersion() == UNKNOWN_VERSION).findFirst().orElse(null); if (t != null) { return t; } @@ -42,7 +42,8 @@ public class MultiVersionBeanUtils { }).collect(Collectors.toList()); DefaultArtifactVersion targetVersion = new DefaultArtifactVersion(version); for (int i = sortedList.size() - 1; i >= 0; i--) { - int flag = sortedList.get(i).getVersion().compareTo(targetVersion); + DefaultArtifactVersion classVersion = sortedList.get(i).getVersion() == null ? UNKNOWN_VERSION : sortedList.get(i).getVersion(); + int flag = classVersion.compareTo(targetVersion); if (flag <= 0) { return sortedList.get(i); }