Also, When you say not called. Did you trace it through the debugger? Could there also be some optimization going on here?
jfk -----Original Message----- From: Jim Cox [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 20, 2008 11:05 AM To: Tomcat Users List Subject: Re: OT: a java question - static initialization On Feb 20, 2008 10:47 AM, Dave <[EMAIL PROTECTED]> wrote: > class Foo { > > private static int; > > static { > a = 100; > } > > Foo() { > > } > > } > > Class.forName("package.Foo").newInstance(); > > The static init block of Foo is not called. > > I am using Java 1.5 update14. It is a bug? FWIW, appears to work here under 1.6 (Linux) and 1.4.2 (Solaris): [EMAIL PROTECTED]:~/tmp/jstatic$ java -version java version "1.6.0" Java(TM) SE Runtime Environment (build 1.6.0-b105) Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing) [EMAIL PROTECTED]:~/tmp/jstatic$ cat test.java public class test { public static void main(String [] args) throws Exception { Object o = Class.forName("foo").newInstance() ; } } [EMAIL PROTECTED]:~/tmp/jstatic$ cat foo.java public class foo { private static int a ; static { a = 100 ; System.out.println("a set to " + a) ; } foo() { } } [EMAIL PROTECTED]:~/tmp/jstatic$ javac test.java [EMAIL PROTECTED]:~/tmp/jstatic$ javac foo.java [EMAIL PROTECTED]:~/tmp/jstatic$ java -classpath "." test a set to 100 And under 1.4.2: [EMAIL PROTECTED]:~/tmp/jstatic$ java -version java version "1.4.2" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28) Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode) [EMAIL PROTECTED]:~/tmp/jstatic$ javac test.java [EMAIL PROTECTED]:~/tmp/jstatic$ javac foo.java [EMAIL PROTECTED]:~/tmp/jstatic$ java -classpath "." test a set to 100 --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]