# HG changeset patch # User Jaroslav Tulach # Date 1383229016 -3600 # Node ID 8120793cc75609add25e8973002486dd6290400b # Parent e896bc6879840ec7a53531f7b7a22b0310ad8d25 Allow idempotent setting of system classloader diff -r e896bc687984 -r 8120793cc756 rt/emul/compact/src/main/java/java/lang/Thread.java --- a/rt/emul/compact/src/main/java/java/lang/Thread.java Thu Oct 31 15:01:35 2013 +0100 +++ b/rt/emul/compact/src/main/java/java/lang/Thread.java Thu Oct 31 15:16:56 2013 +0100 @@ -1165,7 +1165,7 @@ * @since 1.2 */ public ClassLoader getContextClassLoader() { - return null; + return ClassLoader.getSystemClassLoader(); } /** @@ -1191,6 +1191,9 @@ * @since 1.2 */ public void setContextClassLoader(ClassLoader cl) { + if (cl == ClassLoader.getSystemClassLoader()) { + return; + } throw new SecurityException(); } diff -r e896bc687984 -r 8120793cc756 rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/ClassLoaderTest.java --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/ClassLoaderTest.java Thu Oct 31 15:01:35 2013 +0100 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/ClassLoaderTest.java Thu Oct 31 15:16:56 2013 +0100 @@ -29,6 +29,11 @@ @Compare public Object unknownResource() { return ClassLoader.getSystemResource("really/unknown/resource.txt"); } + + @Compare public boolean indenpotentSetOfClassloaderIsOK() { + Thread.currentThread().setContextClassLoader(ClassLoader.getSystemClassLoader()); + return Thread.currentThread().getContextClassLoader() == ClassLoader.getSystemClassLoader(); + } @Factory public static Object[] create() { return VMTest.create(ClassLoaderTest.class);