fix: rename lambda className failed
Dev Deploy / Build Jar (push) Has been cancelled
Dev Deploy / Docker Push (push) Has been cancelled
Dev Deploy / Deploy to Maven Central (push) Has been cancelled
Dev Deploy / Deploy to Northflank (push) Has been cancelled

This commit is contained in:
ReaJason
2025-09-06 18:45:09 +08:00
parent 231869dee7
commit 225e3e8c0c
2 changed files with 40 additions and 2 deletions
@@ -51,8 +51,10 @@ public class ClassRenameVisitorWrapper implements AsmVisitorWrapper {
new Remapper() {
@Override
public String map(String typeName) {
if (typeName.startsWith(originalClassName)) {
return typeName.replaceFirst(originalClassName, newClassName);
if (typeName.equals(originalClassName)) {
return newClassName;
} else if (typeName.startsWith(originalClassName)) {
return typeName.replace(originalClassName, newClassName);
} else {
return typeName;
}
@@ -0,0 +1,36 @@
package com.reajason.javaweb.buddy;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author ReaJason
* @since 2025/9/6
*/
class ClassRenameVisitorWrapperTest {
@Test
void testFullName() {
String originalName = "com/apache/injector";
String newName = "com/hello$Proxy$$Lambda$1";
assertEquals(newName, originalName.replace(originalName, newName));
}
@Test
void testPrefix() {
String originalName = "com/apache";
String newName = "com/hello";
String className = "com/apache/injector";
assertEquals("com/hello/injector", className.replace(originalName, newName));
}
@Test
void testWrongClassName() {
String className = "+/.0o0o00o9o";
String originalName = className;
String newName = "com/hello/injector";
String expected = "com/hello/injector";
assertEquals(expected, className.replace(originalName, newName));
}
}