Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4411127

java.lang.reflect.Constructor.newInstance mangles double args

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 1.4.0
    • 1.4.0
    • hotspot
    • None
    • beta
    • sparc
    • solaris_7, solaris_8

      java.lang.reflect.Constructor.newInstance mangles double args.


      Source:

      import java.lang.reflect.*;

      public class Mangle {

          public static void main(String[] args) throws Exception {
              Mangle m = new Mangle();
              m.go();
          }

          public void go() throws Exception {
              Constructor cons;
              Class clazz = Class.forName("Blah");
              cons = clazz.getDeclaredConstructor(new Class[] {double.class});
              double d = 1.2;
              Object o = cons.newInstance(new Object[] {new Double(d)});
          }
      }

      class Blah {
          Blah(double d) {
              System.out.println("double received is "+d);
          }
      }


      Output:

      /export/merlin> /export/merlin/build64/solaris-sparc/bin/java -d64 -version
      java version "1.4.0-internal"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-internal-madbot-010129-10:55)
      Java HotSpot(TM) 64-Bit Server VM (build 1.4beta-B50, mixed mode)
      /export/merlin> /export/merlin/build64/solaris-sparc/bin/java -d64 Mangle
      double received is 2.0723885E-317


      works ok in 32 bit build:
      /export/merlin> /export/merlin/build32/solaris-sparc/bin/java Mangle
      double received is 1.2

            phh Paul Hohensee
            mmcclosksunw Michael Mccloskey (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: