24 import java.security.Permission; |
24 import java.security.Permission; |
25 |
25 |
26 /** |
26 /** |
27 * @test |
27 * @test |
28 * @summary String concatenation fails with a custom SecurityManager that uses concatenation |
28 * @summary String concatenation fails with a custom SecurityManager that uses concatenation |
29 * @bug 8155090 |
29 * @bug 8155090 8158851 |
30 * |
30 * |
31 * @compile WithSecurityManager.java |
31 * @compile WithSecurityManager.java |
32 * |
32 * |
33 * @run main/othervm -Xverify:all WithSecurityManager |
33 * @run main/othervm -Xverify:all WithSecurityManager |
34 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=BC_SB WithSecurityManager |
34 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=BC_SB WithSecurityManager |
35 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=BC_SB_SIZED WithSecurityManager |
35 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=BC_SB_SIZED WithSecurityManager |
36 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=MH_SB_SIZED WithSecurityManager |
36 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=MH_SB_SIZED WithSecurityManager |
37 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=BC_SB_SIZED_EXACT WithSecurityManager |
37 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=BC_SB_SIZED_EXACT WithSecurityManager |
38 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=MH_SB_SIZED_EXACT WithSecurityManager |
38 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=MH_SB_SIZED_EXACT WithSecurityManager |
39 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=MH_INLINE_SIZED_EXACT WithSecurityManager |
39 * @run main/othervm -Xverify:all -Djava.lang.invoke.stringConcat=MH_INLINE_SIZED_EXACT WithSecurityManager |
|
40 * |
|
41 * @run main/othervm -Xverify:all -limitmods java.base WithSecurityManager |
|
42 * @run main/othervm -Xverify:all -limitmods java.base -Djava.lang.invoke.stringConcat=BC_SB WithSecurityManager |
|
43 * @run main/othervm -Xverify:all -limitmods java.base -Djava.lang.invoke.stringConcat=BC_SB_SIZED WithSecurityManager |
|
44 * @run main/othervm -Xverify:all -limitmods java.base -Djava.lang.invoke.stringConcat=MH_SB_SIZED WithSecurityManager |
|
45 * @run main/othervm -Xverify:all -limitmods java.base -Djava.lang.invoke.stringConcat=BC_SB_SIZED_EXACT WithSecurityManager |
|
46 * @run main/othervm -Xverify:all -limitmods java.base -Djava.lang.invoke.stringConcat=MH_SB_SIZED_EXACT WithSecurityManager |
|
47 * @run main/othervm -Xverify:all -limitmods java.base -Djava.lang.invoke.stringConcat=MH_INLINE_SIZED_EXACT WithSecurityManager |
40 */ |
48 */ |
41 public class WithSecurityManager { |
49 public class WithSecurityManager { |
42 public static void main(String[] args) throws Throwable { |
50 public static void main(String[] args) throws Throwable { |
43 SecurityManager sm = new SecurityManager() { |
51 // First time should succeed to bootstrap everything |
44 @Override |
52 { |
45 public void checkPermission(Permission perm) { |
53 SecurityManager sm = new SecurityManager() { |
46 String abc = "abc"; |
54 @Override |
47 String full = abc + "def"; |
55 public void checkPermission(Permission perm) { |
48 } |
56 String abc = "abc"; |
49 }; |
57 String full = abc + "def"; |
50 System.setSecurityManager(sm); |
58 } |
51 ClassLoader cl = new ClassLoader() {}; |
59 }; |
|
60 System.setSecurityManager(sm); |
|
61 ClassLoader cl = new ClassLoader() { |
|
62 }; |
|
63 } |
|
64 |
|
65 // Second time should succeed to run after bootstrapping |
|
66 { |
|
67 SecurityManager sm = new SecurityManager() { |
|
68 @Override |
|
69 public void checkPermission(Permission perm) { |
|
70 String abc = "abc"; |
|
71 String full = abc + "def"; |
|
72 } |
|
73 }; |
|
74 System.setSecurityManager(sm); |
|
75 ClassLoader cl = new ClassLoader() { |
|
76 }; |
|
77 } |
52 } |
78 } |
53 } |
79 } |