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]

Reply via email to