| package org.codehaus.groovy.runtime; |
| |
| import groovy.lang.GroovyClassLoader; |
| import junit.framework.TestCase; |
| |
| import java.lang.reflect.Field; |
| |
| class X { |
| |
| public static int field = 0; |
| |
| static { |
| StaticInitTest.failed = true; |
| System.out.println("INIT"); |
| } |
| } |
| |
| public class StaticInitTest extends TestCase { |
| |
| static boolean failed; |
| |
| public void testInitOrder () throws NoSuchFieldException, IllegalAccessException, ClassNotFoundException { |
| System.out.println("GET FIELD"); |
| final Field f = new GroovyClassLoader().loadClass("org.codehaus.groovy.runtime.X", false, false, false).getField("field"); |
| System.out.println(failed); |
| assertTrue(!failed); |
| f.getInt(null); |
| System.out.println(failed); |
| assertTrue(failed); |
| } |
| } |