¿Por qué el flujo paralelo con lambda en el inicializador estático causa un punto muerto?

Me encontré con una situación extraña en la que usar una transmisión paralela con un lambda en un inicializador estático lleva una eternidad sin uso de CPU. Aquí está el código:

class Deadlock {
    static {
        IntStream.range(0, 10000).parallel().map(i -> i).count();
        System.out.println("done");
    }
    public static void main(final String[] args) {}
}

Esto parece ser un caso de prueba de reproducción mínima para este comportamiento. Si yo:

poner el bloque en el método principal en lugar de un inicializador estático,eliminar la paralelización, oquitar la lambda

El código se completa al instante. ¿Alguien puede explicar este comportamiento? ¿Es un error o está destinado?

Estoy usando OpenJDK versión 1.8.0_66-internal.

Respuestas a la pregunta(3)

Su respuesta a la pregunta