Skip to content

Commit b7ede0f

Browse files
committed
fix: rename lambda className failed
1 parent b88332f commit b7ede0f

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

memshell-party-common/src/main/java/com/reajason/javaweb/buddy/ClassRenameVisitorWrapper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ public ClassVisitor wrap(@NotNull TypeDescription instrumentedType,
5151
new Remapper() {
5252
@Override
5353
public String map(String typeName) {
54-
if (typeName.startsWith(originalClassName)) {
55-
return typeName.replaceFirst(originalClassName, newClassName);
54+
if (typeName.equals(originalClassName)) {
55+
return newClassName;
56+
} else if (typeName.startsWith(originalClassName)) {
57+
return typeName.replace(originalClassName, newClassName);
5658
} else {
5759
return typeName;
5860
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.reajason.javaweb.buddy;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.junit.jupiter.api.Assertions.assertEquals;
6+
7+
/**
8+
* @author ReaJason
9+
* @since 2025/9/6
10+
*/
11+
class ClassRenameVisitorWrapperTest {
12+
13+
@Test
14+
void testFullName() {
15+
String originalName = "com/apache/injector";
16+
String newName = "com/hello$Proxy$$Lambda$1";
17+
assertEquals(newName, originalName.replace(originalName, newName));
18+
}
19+
20+
@Test
21+
void testPrefix() {
22+
String originalName = "com/apache";
23+
String newName = "com/hello";
24+
String className = "com/apache/injector";
25+
assertEquals("com/hello/injector", className.replace(originalName, newName));
26+
}
27+
28+
@Test
29+
void testWrongClassName() {
30+
String className = "+/.0o0o00o9o";
31+
String originalName = className;
32+
String newName = "com/hello/injector";
33+
String expected = "com/hello/injector";
34+
assertEquals(expected, className.replace(originalName, newName));
35+
}
36+
}

0 commit comments

Comments
 (0)