Browse Source

fix isExpired bug

Looly 5 years ago
parent
commit
c33e2d8971

+ 9 - 0
CHANGELOG.md

@@ -3,6 +3,15 @@
 
 
 -------------------------------------------------------------------------------------------------------------
 -------------------------------------------------------------------------------------------------------------
 
 
+## 5.1.2
+
+### 新特性
+
+### Bug修复
+* 【core 】     修复isExpired的bug(issue#733@Gtihub)
+
+-------------------------------------------------------------------------------------------------------------
+
 ## 5.1.1
 ## 5.1.1
 
 
 ### 新特性
 ### 新特性

+ 4 - 2
hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java

@@ -1776,11 +1776,13 @@ public class DateUtil {
 	 *
 	 *
 	 * @param startDate  开始时间
 	 * @param startDate  开始时间
 	 * @param dateField  时间单位
 	 * @param dateField  时间单位
-	 * @param timeLength 经过时长
+	 * @param timeLength 实际经过时长
 	 * @param endDate    被比较的时间,即有效期的截止时间。如果经过时长后的时间晚于截止时间,就表示过期
 	 * @param endDate    被比较的时间,即有效期的截止时间。如果经过时长后的时间晚于截止时间,就表示过期
 	 * @return 是否过期
 	 * @return 是否过期
 	 * @since 3.1.1
 	 * @since 3.1.1
+	 * @deprecated 此方法存在一定的歧义,容易产生误导,废弃。
 	 */
 	 */
+	@Deprecated
 	public static boolean isExpired(Date startDate, DateField dateField, int timeLength, Date endDate) {
 	public static boolean isExpired(Date startDate, DateField dateField, int timeLength, Date endDate) {
 		final Date offsetDate = offset(startDate, dateField, timeLength);
 		final Date offsetDate = offset(startDate, dateField, timeLength);
 		return offsetDate.after(endDate);
 		return offsetDate.after(endDate);
@@ -1801,7 +1803,7 @@ public class DateUtil {
 	 * @since 5.1.1
 	 * @since 5.1.1
 	 */
 	 */
 	public static boolean isExpired(Date startDate, Date endDate, Date checkDate) {
 	public static boolean isExpired(Date startDate, Date endDate, Date checkDate) {
-		return betweenMs(startDate, checkDate) > betweenMs(startDate, checkDate);
+		return betweenMs(startDate, checkDate) > betweenMs(startDate, endDate);
 	}
 	}
 
 
 	/**
 	/**

+ 8 - 4
hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java

@@ -2,6 +2,7 @@ package cn.hutool.core.lang;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.EnumerationIter;
 import cn.hutool.core.collection.EnumerationIter;
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.IORuntimeException;
 import cn.hutool.core.io.IORuntimeException;
 import cn.hutool.core.io.resource.ResourceUtil;
 import cn.hutool.core.io.resource.ResourceUtil;
@@ -77,10 +78,10 @@ public class ClassScanner implements Serializable {
 	}
 	}
 
 
 	/**
 	/**
-	 * 扫描指定包路径下所有指定类或接口的子类或实现类
+	 * 扫描指定包路径下所有指定类或接口的子类或实现类,不包括指定父类本身
 	 *
 	 *
 	 * @param packageName 包路径
 	 * @param packageName 包路径
-	 * @param superClass  父类或接口
+	 * @param superClass  父类或接口(不包括)
 	 * @return 类集合
 	 * @return 类集合
 	 */
 	 */
 	public static Set<Class<?>> scanPackageBySuper(String packageName, final Class<?> superClass) {
 	public static Set<Class<?>> scanPackageBySuper(String packageName, final Class<?> superClass) {
@@ -244,8 +245,11 @@ public class ClassScanner implements Serializable {
 				}
 				}
 			}
 			}
 		} else if (file.isDirectory()) {
 		} else if (file.isDirectory()) {
-			for (File subFile : file.listFiles()) {
-				scanFile(subFile, (null == rootDir) ? subPathBeforePackage(file) : rootDir);
+			final File[] files = file.listFiles();
+			if(null != files){
+				for (File subFile : files) {
+					scanFile(subFile, (null == rootDir) ? subPathBeforePackage(file) : rootDir);
+				}
 			}
 			}
 		}
 		}
 	}
 	}

+ 1 - 0
hutool-extra/src/test/java/cn/hutool/extra/spring/SpringUtilTest.java

@@ -10,6 +10,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 
 @RunWith(SpringJUnit4ClassRunner.class)
 @RunWith(SpringJUnit4ClassRunner.class)
 @SpringBootTest(classes = {SpringUtil.class, SpringUtilTest.Demo2.class})
 @SpringBootTest(classes = {SpringUtil.class, SpringUtilTest.Demo2.class})
+//@Import(cn.hutool.extra.spring.SpringUtil.class)
 public class SpringUtilTest {
 public class SpringUtilTest {
 
 
 	@Test
 	@Test