Merge pull request #1550 from querydsl/safe-class-forname

Update unsafe class names test
This commit is contained in:
Timo Westkämper 2015-09-15 18:22:30 +03:00
commit ef563684da
4 changed files with 22 additions and 4 deletions

View File

@ -73,7 +73,7 @@ public final class ClassPathUtils {
*/
public static Class<?> safeClassForName(ClassLoader classLoader, String className) {
try {
if (className.startsWith("com.sun") || className.startsWith("com.apple")) {
if (className.startsWith("com.sun.") || className.startsWith("com.apple.")) {
return null;
} else {
return Class.forName(className, true, classLoader);

View File

@ -0,0 +1,4 @@
package com.applejuice;
public class ShouldBeLoaded {
}

View File

@ -13,8 +13,7 @@
*/
package com.querydsl.codegen;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.*;
import java.io.IOException;
import java.util.Set;
@ -23,7 +22,6 @@ import org.junit.Test;
import com.SomeClass;
public class ClassPathUtilsTest {
@Test
@ -40,4 +38,16 @@ public class ClassPathUtilsTest {
assertFalse(classes.isEmpty());
assertEquals("XXX", SomeOtherClass2.property);
}
@Test
public void SafeClassForName() {
assertNull(safeForName("com.sun.nio.file.ExtendedOpenOption"));
assertNotNull(safeForName("com.suntanning.ShouldBeLoaded"));
assertNotNull(safeForName("com.applejuice.ShouldBeLoaded"));
}
private Class<?> safeForName(String className) {
return ClassPathUtils.safeClassForName(ClassPathUtilsTest.class.getClassLoader(), className);
}
}

View File

@ -0,0 +1,4 @@
package com.suntanning;
public class ShouldBeLoaded {
}