From 4affc832d6f631163bd8cbe31dcf5f83faab7817 Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 24 Mar 2025 08:51:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?`StrUtil.isBlank`=E5=A2=9E=E5=8A=A0`\u200c`?= =?UTF-8?q?=E5=88=A4=E6=96=AD=EF=BC=88issue#3903@Github=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/dromara/hutool/core/text/CharUtil.java | 2 ++ .../java/org/dromara/hutool/core/text/CharUtilTest.java | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/CharUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/CharUtil.java index 323c7911d..a7d761487 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/CharUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/CharUtil.java @@ -278,6 +278,8 @@ public class CharUtil implements CharPool { || c == '\u3164' // Braille Pattern Blank || c == '\u2800' + // Zero Width Non-Joiner, ZWNJ + || c == '\u200c' // MONGOLIAN VOWEL SEPARATOR || c == '\u180e'; } diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/text/CharUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/text/CharUtilTest.java index 4e583c431..0bd4e4734 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/text/CharUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/text/CharUtilTest.java @@ -19,6 +19,8 @@ package org.dromara.hutool.core.text; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; + public class CharUtilTest { @Test @@ -56,7 +58,10 @@ public class CharUtilTest { Assertions.assertTrue(CharUtil.isBlankChar(a3)); final char a4 = '\u0000'; - Assertions.assertTrue(CharUtil.isBlankChar(a4)); + assertTrue(CharUtil.isBlankChar(a4)); + + final char a6 = '\u200c'; + assertTrue(CharUtil.isBlankChar(a6)); } @Test From 6245de00a391246d71733a3fac138c1f8e70badf Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 24 Mar 2025 12:29:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96`CombinationAnnotationEle?= =?UTF-8?q?ment`=E6=B3=A8=E8=A7=A3=E6=95=B0=E7=BB=84=E6=80=A7=E8=83=BD?= =?UTF-8?q?=EF=BC=88pr#1323@Gitee=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../annotation/elements/CombinationAnnotatedElement.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/annotation/elements/CombinationAnnotatedElement.java b/hutool-core/src/main/java/org/dromara/hutool/core/annotation/elements/CombinationAnnotatedElement.java index 56d7ad9ef..46a7c9201 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/annotation/elements/CombinationAnnotatedElement.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/annotation/elements/CombinationAnnotatedElement.java @@ -24,7 +24,6 @@ import org.dromara.hutool.core.map.TableMap; import java.io.Serializable; import java.lang.annotation.*; import java.lang.reflect.AnnotatedElement; -import java.util.Arrays; import java.util.Collection; import java.util.Map; import java.util.Set; @@ -135,7 +134,10 @@ public class CombinationAnnotatedElement implements AnnotatedElement, Serializab parseDeclared(declaredAnnotations); final Annotation[] annotations = element.getAnnotations(); - if (Arrays.equals(declaredAnnotations, annotations)) { +// if (Arrays.equals(declaredAnnotations, annotations)) { + // pr#1323 如果子类重写了父类的注解,虽然两者数组内部元素一样的,但是数组中的顺序可能不一样 + // getAnnotations()的包含父类,getDeclaredAnnotations()不包含父类。他们两是一个包含关系,只会存在后者的注解元素大于等于前者的情况。 + if (declaredAnnotations.length == annotations.length) { this.annotationMap = this.declaredAnnotationMap; } else { this.annotationMap = new TableMap<>();