test/hotspot/jtreg/runtime/RedefineTests/ModifyAnonymous.java
author shade
Thu, 30 Nov 2017 17:13:33 +0100
branchepsilon-gc-branch
changeset 55934 912c55e702d6
parent 47216 71c04702a3d5
child 51636 ab722555e66d
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40635
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
     1
/*
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
     2
 * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
     4
 *
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
     7
 * published by the Free Software Foundation.
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
     8
 *
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    13
 * accompanied this code).
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    14
 *
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    18
 *
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    21
 * questions.
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    22
 */
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    23
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    24
/*
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    25
 * @test
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    26
 * @library /test/lib
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    27
 * @summary Test that retransforming and redefining anonymous classes gets UnmodifiableClassException
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    28
 * @modules java.base/jdk.internal.misc
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    29
 * @modules java.instrument
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    30
 *          jdk.jartool/sun.tools.jar
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    31
 * @run main ModifyAnonymous buildagent
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    32
 * @run main/othervm -javaagent:redefineagent.jar ModifyAnonymous
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    33
 */
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    34
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    35
import java.io.FileNotFoundException;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    36
import java.io.PrintWriter;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    37
import java.lang.RuntimeException;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    38
import java.lang.instrument.ClassDefinition;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    39
import java.lang.instrument.ClassFileTransformer;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    40
import java.lang.instrument.IllegalClassFormatException;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    41
import java.lang.instrument.Instrumentation;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    42
import java.security.ProtectionDomain;
45112
fbec2bfa3839 8180037: move jdk.test.lib.InMemoryJavaCompiler to a separate package
iignatyev
parents: 40635
diff changeset
    43
fbec2bfa3839 8180037: move jdk.test.lib.InMemoryJavaCompiler to a separate package
iignatyev
parents: 40635
diff changeset
    44
import jdk.test.lib.compiler.InMemoryJavaCompiler;
40635
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    45
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    46
public class ModifyAnonymous {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    47
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    48
    public static class LambdaTransformer implements ClassFileTransformer {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    49
        @Override
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    50
        public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined,
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    51
                                ProtectionDomain protectionDomain, byte[] classfileBuffer)
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    52
        throws IllegalClassFormatException {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    53
            return null;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    54
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    55
    }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    56
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    57
    static Instrumentation inst = null;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    58
    static volatile boolean done = false;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    59
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    60
    public static void premain(String args, Instrumentation instrumentation) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    61
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    62
        inst = instrumentation;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    63
        System.out.println("javaagent in da house!");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    64
        instrumentation.addTransformer(new LambdaTransformer());
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    65
    }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    66
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    67
    private static void buildAgent() {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    68
        try {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    69
            ClassFileInstaller.main("ModifyAnonymous");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    70
        } catch (Exception e) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    71
            throw new RuntimeException("Could not write agent classfile", e);
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    72
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    73
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    74
        try {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    75
            PrintWriter pw = new PrintWriter("MANIFEST.MF");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    76
            pw.println("Premain-Class: ModifyAnonymous");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    77
            pw.println("Agent-Class: ModifyAnonymous");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    78
            pw.println("Can-Retransform-Classes: true");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    79
            pw.println("Can-Redefine-Classes: true");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    80
            pw.close();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    81
        } catch (FileNotFoundException e) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    82
            throw new RuntimeException("Could not write manifest file for the agent", e);
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    83
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    84
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    85
        sun.tools.jar.Main jarTool = new sun.tools.jar.Main(System.out, System.err, "jar");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    86
        if (!jarTool.run(new String[] { "-cmf", "MANIFEST.MF", "redefineagent.jar", "ModifyAnonymous.class" })) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    87
            throw new RuntimeException("Could not write the agent jar file");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    88
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    89
    }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    90
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    91
    public static class InstanceMethodCallSiteApp {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    92
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    93
        public static void test() throws InterruptedException {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    94
            for (int i = 0; i < 2; i++) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    95
                InstanceMethodCallSiteApp app = new InstanceMethodCallSiteApp();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    96
                Runnable r = app::doWork;   // this creates an anonymous class
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    97
                while (!done) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    98
                    r.run();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
    99
                    Thread.sleep(10);
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   100
                }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   101
            }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   102
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   103
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   104
        public void doWork() {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   105
            System.out.print(".");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   106
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   107
    }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   108
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   109
    static void runTest() {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   110
        while (!done) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   111
            Class[] allLoadedClasses = inst.getAllLoadedClasses();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   112
            for (Class clazz : allLoadedClasses) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   113
                final String name = clazz.getName();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   114
                if (name.contains("$$Lambda$") && name.contains("App")) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   115
                    if (inst.isModifiableClass(clazz)) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   116
                        throw new RuntimeException ("Class should not be modifiable");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   117
                    }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   118
                    // Try to modify them anyway.
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   119
                    try {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   120
                        System.out.println("retransform called for " + name);
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   121
                        inst.retransformClasses(clazz);
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   122
                    } catch(java.lang.instrument.UnmodifiableClassException t) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   123
                        System.out.println("PASSED: expecting UnmodifiableClassException");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   124
                        t.printStackTrace();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   125
                    }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   126
                    try {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   127
                        System.out.println("redefine called for " + name);
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   128
                        String newclass = "class Dummy {}";
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   129
                        byte[] bytecode = InMemoryJavaCompiler.compile("Dummy", newclass);
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   130
                        ClassDefinition cld = new ClassDefinition(clazz, bytecode);
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   131
                        inst.redefineClasses(new ClassDefinition[] { cld });
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   132
                    } catch(java.lang.instrument.UnmodifiableClassException t) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   133
                        System.out.println("PASSED: expecting UnmodifiableClassException");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   134
                        t.printStackTrace();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   135
                    } catch(java.lang.ClassNotFoundException e) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   136
                        throw new RuntimeException ("ClassNotFoundException thrown");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   137
                    }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   138
                    done = true;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   139
                }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   140
            }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   141
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   142
    }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   143
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   144
    public static void main(String argv[]) throws InterruptedException, RuntimeException {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   145
        if (argv.length == 1 && argv[0].equals("buildagent")) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   146
            buildAgent();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   147
            return;
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   148
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   149
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   150
        if (inst == null) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   151
            throw new RuntimeException("Instrumentation object was null");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   152
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   153
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   154
        new Thread() {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   155
            public void run() {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   156
                runTest();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   157
            }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   158
        }.start();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   159
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   160
        // Test that NCDFE is not thrown for anonymous class:
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   161
        // ModifyAnonymous$InstanceMethodCallSiteApp$$Lambda$18
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   162
        try {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   163
            ModifyAnonymous test = new ModifyAnonymous();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   164
            InstanceMethodCallSiteApp.test();
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   165
        } catch (NoClassDefFoundError e) {
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   166
            throw new RuntimeException("FAILED: NoClassDefFoundError thrown for " + e.getMessage());
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   167
        }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   168
        System.out.println("PASSED: NoClassDefFound error not thrown");
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   169
    }
22fa174b2af8 8145964: NoClassDefFound error in transforming lambdas
coleenp
parents:
diff changeset
   170
}