Diferencia en el comportamiento del operador ternario en JDK8 y JDK10

Considere el siguiente código

public class JDK10Test {
    public static void main(String[] args) {
        Double d = false ? 1.0 : new HashMap<String, Double>().get("1");
        System.out.println(d);
    }
}

Cuando se ejecuta en JDK8, este código imprimenull mientras que en JDK10 este código da como resultadoNullPointerException

Exception in thread "main" java.lang.NullPointerException
    at JDK10Test.main(JDK10Test.java:5)

El código de bytes producido por los compiladores es casi idéntico, aparte de dos instrucciones adicionales producidas por el compilador JDK10 que están relacionadas con el autoboxing y parecen ser responsables del NPE.

15: invokevirtual #7                  // Method java/lang/Double.doubleValue:()D
18: invokestatic  #8                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;

Es este comportamiento un error en JDK10 o un cambio intencional para hacer el comportamiento más estricto?

JDK8:  java version "1.8.0_172"
JDK10: java version "10.0.1" 2018-04-17

Respuestas a la pregunta(2)

Su respuesta a la pregunta