# HG changeset patch # User kshefov # Date 1455539204 -3600 # Node ID 96ae0e7ed4fa01b4084b540a2c0277f187272c26 # Parent 54f407187922c9ea3db92866987093acda23402f# Parent fa41217d975b32216d2072db8a809de234d27e67 Merge diff -r 54f407187922 -r 96ae0e7ed4fa hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java --- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java Mon Feb 15 11:52:51 2016 +0100 +++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java Mon Feb 15 13:26:44 2016 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,6 +26,7 @@ import static jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayIndexScale; import java.lang.reflect.Array; +import java.util.Objects; import jdk.vm.ci.common.JVMCIError; import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.Option; @@ -70,13 +71,13 @@ } else if (x instanceof HotSpotObjectConstantImpl) { return y instanceof HotSpotObjectConstantImpl && ((HotSpotObjectConstantImpl) x).object() == ((HotSpotObjectConstantImpl) y).object(); } else { - return x.equals(y); + return Objects.equals(x, y); } } @Override public Integer readArrayLength(JavaConstant array) { - if (array.getJavaKind() != JavaKind.Object || array.isNull()) { + if (array == null || array.getJavaKind() != JavaKind.Object || array.isNull()) { return null; } @@ -133,12 +134,12 @@ @Override public JavaConstant readArrayElement(JavaConstant array, int index) { - if (array.getJavaKind() != JavaKind.Object || array.isNull()) { + if (array == null || array.getJavaKind() != JavaKind.Object || array.isNull()) { return null; } Object a = ((HotSpotObjectConstantImpl) array).object(); - if (index < 0 || index >= Array.getLength(a)) { + if (!a.getClass().isArray() || index < 0 || index >= Array.getLength(a)) { return null; } @@ -184,7 +185,7 @@ @Override public JavaConstant boxPrimitive(JavaConstant source) { - if (!source.getJavaKind().isPrimitive() || !isBoxCached(source)) { + if (source == null || !source.getJavaKind().isPrimitive() || !isBoxCached(source)) { return null; } return HotSpotObjectConstantImpl.forObject(source.asBoxedPrimitive()); @@ -192,7 +193,7 @@ @Override public JavaConstant unboxPrimitive(JavaConstant source) { - if (!source.getJavaKind().isObject()) { + if (source == null || !source.getJavaKind().isObject()) { return null; } if (source.isNull()) {