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
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
- duplicates
-
JDK-4407197 64-bit merlin build fails to run JCK vm tests correctly
-
- Closed
-