Skip to content

Commit 187f641

Browse files
committed
Polishing
1 parent ac74116 commit 187f641

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

spring-core/src/main/java/org/springframework/util/ClassUtils.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ public static Class<?> forName(String name, @Nullable ClassLoader classLoader)
305305
}
306306
catch (ClassNotFoundException ex) {
307307
int lastDotIndex = name.lastIndexOf(PACKAGE_SEPARATOR);
308-
int previousDotIndex = name.lastIndexOf(PACKAGE_SEPARATOR, lastDotIndex -1);
308+
int previousDotIndex = name.lastIndexOf(PACKAGE_SEPARATOR, lastDotIndex - 1);
309309
if (lastDotIndex != -1 && previousDotIndex != -1 && Character.isUpperCase(name.charAt(previousDotIndex + 1))) {
310310
String nestedClassName =
311311
name.substring(0, lastDotIndex) + NESTED_CLASS_SEPARATOR + name.substring(lastDotIndex + 1);

spring-core/src/test/java/a/ClassHavingNestedClass.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -19,6 +19,9 @@
1919
/**
2020
* Test class for {@code org.springframework.util.ClassUtilsTests}.
2121
*
22+
* <p>The use case for this test class requires that the package name is a single
23+
* character (i.e., length of 1).
24+
*
2225
* @author Johnny Lim
2326
*/
2427
public class ClassHavingNestedClass {

spring-core/src/test/java/org/springframework/util/ClassUtilsTests.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.util.Set;
3434
import java.util.function.Supplier;
3535

36+
import a.ClassHavingNestedClass;
3637
import org.junit.jupiter.api.BeforeEach;
3738
import org.junit.jupiter.api.Nested;
3839
import org.junit.jupiter.api.Test;
@@ -86,8 +87,11 @@ void forName() throws ClassNotFoundException {
8687
void forNameWithNestedType() throws ClassNotFoundException {
8788
assertThat(ClassUtils.forName("org.springframework.util.ClassUtilsTests$NestedClass", classLoader)).isEqualTo(NestedClass.class);
8889
assertThat(ClassUtils.forName("org.springframework.util.ClassUtilsTests.NestedClass", classLoader)).isEqualTo(NestedClass.class);
89-
assertThat(ClassUtils.forName("a.ClassHavingNestedClass$NestedClass", classLoader)).isEqualTo(a.ClassHavingNestedClass.NestedClass.class);
90-
assertThat(ClassUtils.forName("a.ClassHavingNestedClass.NestedClass", classLoader)).isEqualTo(a.ClassHavingNestedClass.NestedClass.class);
90+
91+
// Precondition: package name must have length == 1.
92+
assertThat(ClassHavingNestedClass.class.getPackageName().length()).isEqualTo(1);
93+
assertThat(ClassUtils.forName("a.ClassHavingNestedClass$NestedClass", classLoader)).isEqualTo(ClassHavingNestedClass.NestedClass.class);
94+
assertThat(ClassUtils.forName("a.ClassHavingNestedClass.NestedClass", classLoader)).isEqualTo(ClassHavingNestedClass.NestedClass.class);
9195
}
9296

9397
@Test
@@ -625,6 +629,7 @@ protected void protectedPrint() {
625629

626630
}
627631

632+
@Override
628633
public void packageAccessiblePrint() {
629634

630635
}

0 commit comments

Comments
 (0)