jdk/test/java/lang/String/concat/WithSecurityManager.java
changeset 38861 e567cc17866d
parent 37684 38b7cb606a05
child 40261 86a49ba76f52
equal deleted inserted replaced
38860:3d557a5713eb 38861:e567cc17866d
    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 }