diff --git a/CHANGELOG.md b/CHANGELOG.md index d8259f1f5..6006c1758 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ * 【core 】 multipart中int改为long,解决大文件上传越界问题(issue#I27WZ3@Gitee) * 【core 】 ListUtil.page增加检查(pr#224@Gitee) * 【db 】 Db增加使用sql的page方法(issue#247@Gitee) +* 【cache 】 CacheObj的isExpired()逻辑修改(issue#1295@Github) +* 【json 】 JSONStrFormater改为JSONStrFormatter ### Bug修复 * 【cache 】 修复Cache中get重复misCount计数问题(issue#1281@Github) diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java index 1a8f08215..e8fa48348 100644 --- a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java @@ -44,9 +44,8 @@ public class CacheObj implements Serializable{ */ boolean isExpired() { if(this.ttl > 0) { - final long expiredTime = this.lastAccess + this.ttl; - // expiredTime > 0 杜绝Long类型溢出变负数问题,当当前时间超过过期时间,表示过期 - return expiredTime > 0 && expiredTime < System.currentTimeMillis(); + // 此处不考虑时间回拨 + return (System.currentTimeMillis() - this.lastAccess) > this.ttl; } return false; } diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java b/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java index fd558ae82..6f4be20a6 100644 --- a/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java @@ -115,7 +115,8 @@ public class JSONConfig implements Serializable { } /** - * 设置日期格式,null表示默认的时间戳 + * 设置日期格式,null表示默认的时间戳
+ * 此方法设置的日期格式仅对转换为JSON字符串有效,对解析JSON为bean无效。 * * @param dateFormat 日期格式,null表示默认的时间戳 * @return this diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONObject.java b/hutool-json/src/main/java/cn/hutool/json/JSONObject.java index 67a5e20ae..33a087df4 100644 --- a/hutool-json/src/main/java/cn/hutool/json/JSONObject.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONObject.java @@ -261,7 +261,8 @@ public class JSONObject implements JSON, JSONGetter, Map } /** - * 设置转为字符串时的日期格式,默认为时间戳(null值) + * 设置转为字符串时的日期格式,默认为时间戳(null值)
+ * 此方法设置的日期格式仅对转换为JSON字符串有效,对解析JSON为bean无效。 * * @param format 格式,null表示使用时间戳 * @return this @@ -341,7 +342,7 @@ public class JSONObject implements JSON, JSONGetter, Map } /** - * PUT 键值对到JSONObject中,在忽略null模式下,如果值为null,将此键移除 + * PUT 键值对到JSONObject中,在忽略null模式下,如果值为{@code null},将此键移除 * * @param key 键 * @param value 值对象. 可以是以下类型: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, or the JSONNull.NULL. @@ -356,7 +357,7 @@ public class JSONObject implements JSON, JSONGetter, Map } /** - * 设置键值对到JSONObject中,在忽略null模式下,如果值为null,将此键移除 + * 设置键值对到JSONObject中,在忽略null模式下,如果值为{@code null},将此键移除 * * @param key 键 * @param value 值对象. 可以是以下类型: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, or the JSONNull.NULL. @@ -426,7 +427,7 @@ public class JSONObject implements JSON, JSONGetter, Map * @param key 键 * @param value 被积累的值 * @return this. - * @throws JSONException 如果给定键为null或者键对应的值存在且为非JSONArray + * @throws JSONException 如果给定键为{@code null}或者键对应的值存在且为非JSONArray */ public JSONObject accumulate(String key, Object value) throws JSONException { InternalJSONUtil.testValidity(value); @@ -447,7 +448,7 @@ public class JSONObject implements JSON, JSONGetter, Map * @param key 键 * @param value 值 * @return this. - * @throws JSONException 如果给定键为null或者键对应的值存在且为非JSONArray + * @throws JSONException 如果给定键为{@code null}或者键对应的值存在且为非JSONArray */ public JSONObject append(String key, Object value) throws JSONException { InternalJSONUtil.testValidity(value); @@ -545,7 +546,7 @@ public class JSONObject implements JSON, JSONGetter, Map /** * 返回JSON字符串
- * 如果解析错误,返回null + * 如果解析错误,返回{@code null} * * @return JSON字符串 */ diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONStrFormater.java b/hutool-json/src/main/java/cn/hutool/json/JSONStrFormatter.java similarity index 95% rename from hutool-json/src/main/java/cn/hutool/json/JSONStrFormater.java rename to hutool-json/src/main/java/cn/hutool/json/JSONStrFormatter.java index 25ac94329..4a319778b 100644 --- a/hutool-json/src/main/java/cn/hutool/json/JSONStrFormater.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONStrFormatter.java @@ -9,7 +9,7 @@ import cn.hutool.core.util.StrUtil; * @author looly * @since 3.1.2 */ -public class JSONStrFormater { +public class JSONStrFormatter { /** 单位缩进字符串。*/ private static final String SPACE = " "; diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java b/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java index d91ff3afd..ad3948af2 100644 --- a/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java @@ -776,7 +776,7 @@ public final class JSONUtil { * @since 3.1.2 */ public static String formatJsonStr(String jsonStr) { - return JSONStrFormater.format(jsonStr); + return JSONStrFormatter.format(jsonStr); } /** diff --git a/hutool-json/src/test/java/cn/hutool/json/JSONStrFormaterTest.java b/hutool-json/src/test/java/cn/hutool/json/JSONStrFormaterTest.java index e9450f10e..b15a1c80c 100644 --- a/hutool-json/src/test/java/cn/hutool/json/JSONStrFormaterTest.java +++ b/hutool-json/src/test/java/cn/hutool/json/JSONStrFormaterTest.java @@ -13,21 +13,21 @@ public class JSONStrFormaterTest { @Test public void formatTest() { String json = "{'age':23,'aihao':['pashan','movies'],'name':{'firstName':'zhang','lastName':'san','aihao':['pashan','movies','name':{'firstName':'zhang','lastName':'san','aihao':['pashan','movies']}]}}"; - String result = JSONStrFormater.format(json); + String result = JSONStrFormatter.format(json); Assert.assertNotNull(result); } @Test public void formatTest2() { String json = "{\"abc\":{\"def\":\"\\\"[ghi]\"}}"; - String result = JSONStrFormater.format(json); + String result = JSONStrFormatter.format(json); Assert.assertNotNull(result); } @Test public void formatTest3() { String json = "{\"id\":13,\"title\":\"《标题》\",\"subtitle\":\"副标题z'c'z'xv'c'xv\",\"user_id\":6,\"type\":0}"; - String result = JSONStrFormater.format(json); + String result = JSONStrFormatter.format(json); Assert.assertNotNull(result); } }