Arrays.copyOf does not work with value type arrays

Tobias Hartmann tobias.hartmann at oracle.com
Wed Mar 15 14:51:31 UTC 2017


Hi,

I'm looking into C2 intrinsic support for value types and noticed that below code fails with:

Exception in thread "main" java.lang.BootstrapMethodError: call site initialization exception
	at java.lang.invoke.CallSite.makeSite(CallSite.java:347)
	at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:247)
	at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:237)
	at Test.main(Test.java:23)
Caused by: java.lang.ClassNotFoundException: java/util/Arrays$copyOf$433071630$${QPoint;}
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:372)
	at java.lang.invoke.GenericStaticDispatch.metafactory(GenericStaticDispatch.java:14)
	at java.lang.invoke.CallSite.makeSite(CallSite.java:308)
	... 3 more

Is this supposed to work with MVT1.0?

Thanks,
Tobias


import java.util.Arrays;

__ByValue final class Point {
    final int x;
    final int y;

    private Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public static Point createPoint(int x, int y) {
        return __Make Point(x, y);
    }
}

public class Test {

  public static void main(String[] args) {
    Point[] src = new Point[10];
    Point[] dst = Arrays.copyOf(src, 10);
  }

}


More information about the valhalla-dev mailing list